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

Diff for /src/usr.bin/ssh/auth2.c between version 1.96 and 1.96.2.2

version 1.96, 2003/02/06 21:22:43 version 1.96.2.2, 2004/03/04 18:18:15
Line 36 
Line 36 
 #include "pathnames.h"  #include "pathnames.h"
 #include "monitor_wrap.h"  #include "monitor_wrap.h"
   
   #ifdef GSSAPI
   #include "ssh-gss.h"
   #endif
   
 /* import */  /* import */
 extern ServerOptions options;  extern ServerOptions options;
 extern u_char *session_id2;  extern u_char *session_id2;
 extern int session_id2_len;  extern u_int session_id2_len;
   
 Authctxt *x_authctxt = NULL;  
   
 /* methods */  /* methods */
   
 extern Authmethod method_none;  extern Authmethod method_none;
Line 50 
Line 52 
 extern Authmethod method_passwd;  extern Authmethod method_passwd;
 extern Authmethod method_kbdint;  extern Authmethod method_kbdint;
 extern Authmethod method_hostbased;  extern Authmethod method_hostbased;
   #ifdef GSSAPI
   extern Authmethod method_gssapi;
   #endif
   
 Authmethod *authmethods[] = {  Authmethod *authmethods[] = {
         &method_none,          &method_none,
         &method_pubkey,          &method_pubkey,
   #ifdef GSSAPI
           &method_gssapi,
   #endif
         &method_passwd,          &method_passwd,
         &method_kbdint,          &method_kbdint,
         &method_hostbased,          &method_hostbased,
Line 69 
Line 77 
 static Authmethod *authmethod_lookup(const char *);  static Authmethod *authmethod_lookup(const char *);
 static char *authmethods_get(void);  static char *authmethods_get(void);
 int user_key_allowed(struct passwd *, Key *);  int user_key_allowed(struct passwd *, Key *);
 int hostbased_key_allowed(struct passwd *, const char *, char *, Key *);  
   
 /*  /*
  * loop until authctxt->success == TRUE   * loop until authctxt->success == TRUE
  */   */
   
 Authctxt *  void
 do_authentication2(void)  do_authentication2(Authctxt *authctxt)
 {  {
         Authctxt *authctxt = authctxt_new();  
   
         x_authctxt = authctxt;          /*XXX*/  
   
         /* challenge-response is implemented via keyboard interactive */          /* challenge-response is implemented via keyboard interactive */
         if (options.challenge_response_authentication)          if (options.challenge_response_authentication)
                 options.kbd_interactive_authentication = 1;                  options.kbd_interactive_authentication = 1;
Line 89 
Line 92 
         dispatch_init(&dispatch_protocol_error);          dispatch_init(&dispatch_protocol_error);
         dispatch_set(SSH2_MSG_SERVICE_REQUEST, &input_service_request);          dispatch_set(SSH2_MSG_SERVICE_REQUEST, &input_service_request);
         dispatch_run(DISPATCH_BLOCK, &authctxt->success, authctxt);          dispatch_run(DISPATCH_BLOCK, &authctxt->success, authctxt);
   
         return (authctxt);  
 }  }
   
 static void  static void
Line 153 
Line 154 
                         authctxt->valid = 1;                          authctxt->valid = 1;
                         debug2("input_userauth_request: setting up authctxt for %s", user);                          debug2("input_userauth_request: setting up authctxt for %s", user);
                 } else {                  } else {
                         log("input_userauth_request: illegal user %s", user);                          logit("input_userauth_request: illegal user %s", user);
                           authctxt->pw = fakepw();
                 }                  }
                 setproctitle("%s%s", authctxt->pw ? user : "unknown",                  setproctitle("%s%s", authctxt->pw ? user : "unknown",
                     use_privsep ? " [net]" : "");                      use_privsep ? " [net]" : "");
Line 170 
Line 172 
         }          }
         /* reset state */          /* reset state */
         auth2_challenge_stop(authctxt);          auth2_challenge_stop(authctxt);
   
   #ifdef GSSAPI
           dispatch_set(SSH2_MSG_USERAUTH_GSSAPI_TOKEN, NULL);
           dispatch_set(SSH2_MSG_USERAUTH_GSSAPI_EXCHANGE_COMPLETE, NULL);
   #endif
   
         authctxt->postponed = 0;          authctxt->postponed = 0;
   
         /* try to authenticate user */          /* try to authenticate user */
Line 225 
Line 233 
                 packet_write_wait();                  packet_write_wait();
                 xfree(methods);                  xfree(methods);
         }          }
 }  
   
 /* get current user */  
   
 struct passwd*  
 auth_get_user(void)  
 {  
         return (x_authctxt != NULL && x_authctxt->valid) ? x_authctxt->pw : NULL;  
 }  }
   
 #define DELIM   ","  #define DELIM   ","

Legend:
Removed from v.1.96  
changed lines
  Added in v.1.96.2.2