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

Diff for /src/usr.bin/ssh/monitor.c between version 1.44 and 1.45

version 1.44, 2003/06/24 08:23:46 version 1.45, 2003/07/22 13:35:22
Line 116 
Line 116 
 int mm_answer_sesskey(int, Buffer *);  int mm_answer_sesskey(int, Buffer *);
 int mm_answer_sessid(int, Buffer *);  int mm_answer_sessid(int, Buffer *);
   
 #ifdef KRB4  
 int mm_answer_krb4(int, Buffer *);  
 #endif  
 #ifdef KRB5  #ifdef KRB5
 int mm_answer_krb5(int, Buffer *);  int mm_answer_krb5(int, Buffer *);
 #endif  #endif
Line 200 
Line 197 
     {MONITOR_REQ_SKEYQUERY, MON_ISAUTH, mm_answer_skeyquery},      {MONITOR_REQ_SKEYQUERY, MON_ISAUTH, mm_answer_skeyquery},
     {MONITOR_REQ_SKEYRESPOND, MON_AUTH, mm_answer_skeyrespond},      {MONITOR_REQ_SKEYRESPOND, MON_AUTH, mm_answer_skeyrespond},
 #endif  #endif
 #ifdef KRB4  
     {MONITOR_REQ_KRB4, MON_ONCE|MON_AUTH, mm_answer_krb4},  
 #endif  
 #ifdef KRB5  #ifdef KRB5
     {MONITOR_REQ_KRB5, MON_ONCE|MON_AUTH, mm_answer_krb5},      {MONITOR_REQ_KRB5, MON_ONCE|MON_AUTH, mm_answer_krb5},
 #endif  #endif
Line 1283 
Line 1277 
   
         return (success);          return (success);
 }  }
   
 #ifdef KRB4  
 int  
 mm_answer_krb4(int socket, Buffer *m)  
 {  
         KTEXT_ST auth, reply;  
         char  *client, *p;  
         int success;  
         u_int alen;  
   
         reply.length = auth.length = 0;  
   
         p = buffer_get_string(m, &alen);  
         if (alen >=  MAX_KTXT_LEN)  
                  fatal("%s: auth too large", __func__);  
         memcpy(auth.dat, p, alen);  
         auth.length = alen;  
         memset(p, 0, alen);  
         xfree(p);  
   
         success = options.kerberos_authentication &&  
             authctxt->valid &&  
             auth_krb4(authctxt, &auth, &client, &reply);  
   
         memset(auth.dat, 0, alen);  
         buffer_clear(m);  
         buffer_put_int(m, success);  
   
         if (success) {  
                 buffer_put_cstring(m, client);  
                 buffer_put_string(m, reply.dat, reply.length);  
                 if (client)  
                         xfree(client);  
                 if (reply.length)  
                         memset(reply.dat, 0, reply.length);  
         }  
   
         debug3("%s: sending result %d", __func__, success);  
         mm_request_send(socket, MONITOR_ANS_KRB4, m);  
   
         auth_method = "kerberos";  
   
         /* Causes monitor loop to terminate if authenticated */  
         return (success);  
 }  
 #endif  
   
 #ifdef KRB5  #ifdef KRB5
 int  int

Legend:
Removed from v.1.44  
changed lines
  Added in v.1.45