[BACK]Return to auth2-chall.c CVS log [TXT][DIR] Up to [local] / src / usr.bin / ssh

Diff for /src/usr.bin/ssh/auth2-chall.c between version 1.17 and 1.17.2.1

version 1.17, 2002/03/18 17:50:31 version 1.17.2.1, 2002/06/26 15:30:37
Line 63 
Line 63 
         char *devices;          char *devices;
         void *ctxt;          void *ctxt;
         KbdintDevice *device;          KbdintDevice *device;
           u_int nreq;
 };  };
   
 static KbdintAuthctxt *  static KbdintAuthctxt *
Line 90 
Line 91 
         debug("kbdint_alloc: devices '%s'", kbdintctxt->devices);          debug("kbdint_alloc: devices '%s'", kbdintctxt->devices);
         kbdintctxt->ctxt = NULL;          kbdintctxt->ctxt = NULL;
         kbdintctxt->device = NULL;          kbdintctxt->device = NULL;
           kbdintctxt->nreq = 0;
   
         return kbdintctxt;          return kbdintctxt;
 }  }
Line 209 
Line 211 
         KbdintAuthctxt *kbdintctxt;          KbdintAuthctxt *kbdintctxt;
         char *name, *instr, **prompts;          char *name, *instr, **prompts;
         int i;          int i;
         u_int numprompts, *echo_on;          u_int *echo_on;
   
         kbdintctxt = authctxt->kbdintctxt;          kbdintctxt = authctxt->kbdintctxt;
         if (kbdintctxt->device->query(kbdintctxt->ctxt,          if (kbdintctxt->device->query(kbdintctxt->ctxt,
             &name, &instr, &numprompts, &prompts, &echo_on))              &name, &instr, &kbdintctxt->nreq, &prompts, &echo_on))
                 return 0;                  return 0;
   
         packet_start(SSH2_MSG_USERAUTH_INFO_REQUEST);          packet_start(SSH2_MSG_USERAUTH_INFO_REQUEST);
         packet_put_cstring(name);          packet_put_cstring(name);
         packet_put_cstring(instr);          packet_put_cstring(instr);
         packet_put_cstring("");         /* language not used */          packet_put_cstring("");         /* language not used */
         packet_put_int(numprompts);          packet_put_int(kbdintctxt->nreq);
         for (i = 0; i < numprompts; i++) {          for (i = 0; i < kbdintctxt->nreq; i++) {
                 packet_put_cstring(prompts[i]);                  packet_put_cstring(prompts[i]);
                 packet_put_char(echo_on[i]);                  packet_put_char(echo_on[i]);
         }          }
         packet_send();          packet_send();
         packet_write_wait();          packet_write_wait();
   
         for (i = 0; i < numprompts; i++)          for (i = 0; i < kbdintctxt->nreq; i++)
                 xfree(prompts[i]);                  xfree(prompts[i]);
         xfree(prompts);          xfree(prompts);
         xfree(echo_on);          xfree(echo_on);
Line 256 
Line 258 
   
         authctxt->postponed = 0;        /* reset */          authctxt->postponed = 0;        /* reset */
         nresp = packet_get_int();          nresp = packet_get_int();
           if (nresp != kbdintctxt->nreq)
                   fatal("input_userauth_info_response: wrong number of replies");
           if (nresp > 100)
                   fatal("input_userauth_info_response: too many replies");
         if (nresp > 0) {          if (nresp > 0) {
                 response = xmalloc(nresp * sizeof(char*));                  response = xmalloc(nresp * sizeof(char*));
                 for (i = 0; i < nresp; i++)                  for (i = 0; i < nresp; i++)

Legend:
Removed from v.1.17  
changed lines
  Added in v.1.17.2.1