For future portability reasons MIT is moving all macros to function
calls.  This patch allows compilation either way.

*** kssl.c.orig Tue Oct 16 21:02:38 2001
--- kssl.c Thu Nov 22 21:43:18 2001
***************
*** 115,124 ****
  #define krb5_rd_req              kssl_krb5_rd_req               
  #define krb5_kt_default          kssl_krb5_kt_default           
  #define krb5_kt_resolve          kssl_krb5_kt_resolve           
  #define krb5_auth_con_init       kssl_krb5_auth_con_init        
  
  #define krb5_principal_compare   kssl_krb5_principal_compare
- /* macro  #define krb5_kt_get_entry        kssl_krb5_kt_get_entry  */
  #define krb5_decrypt_tkt_part    kssl_krb5_decrypt_tkt_part
  #define krb5_timeofday           kssl_krb5_timeofday
  #define krb5_rc_default           kssl_krb5_rc_default
--- 115,130 ----
  #define krb5_rd_req              kssl_krb5_rd_req               
  #define krb5_kt_default          kssl_krb5_kt_default           
  #define krb5_kt_resolve          kssl_krb5_kt_resolve           
+ /* macros in mit 1.2.2 and earlier; functions in mit 1.2.3 and greater */
+ #ifndef krb5_kt_close
+ #define krb5_kt_close            kssl_krb5_kt_close
+ #endif /* krb5_kt_close */
+ #ifndef krb5_kt_get_entry
+ #define krb5_kt_get_entry        kssl_krb5_kt_get_entry
+ #endif /* krb5_kt_get_entry */
  #define krb5_auth_con_init       kssl_krb5_auth_con_init
  
  #define krb5_principal_compare   kssl_krb5_principal_compare
  #define krb5_decrypt_tkt_part    kssl_krb5_decrypt_tkt_part
  #define krb5_timeofday           kssl_krb5_timeofday
  #define krb5_rc_default           kssl_krb5_rc_default
***************
*** 254,259 ****
--- 260,271 ----
  static krb5_error_code (* p_krb5_auth_con_getrcache)(krb5_context, 
                                                        krb5_auth_context,
                                                        krb5_rcache *)=NULL;
+ static krb5_error_code (_stdcall * p_krb5_kt_close)(krb5_context context, 
+                                                     krb5_keytab keytab)=NULL;
+ static krb5_error_code (_stdcall * p_krb5_kt_get_entry)(krb5_context context, 
+                                                         krb5_keytab keytab,
+                        krb5_const_principal principal, krb5_kvno vno,
+                        krb5_enctype enctype, krb5_keytab_entry *entry)=NULL;
  static int krb5_loaded = 0;     /* only attempt to initialize func ptrs once */
  
  /* Function to Load the Kerberos 5 DLL and initialize function pointers */
***************
*** 323,328 ****
--- 335,344 ----
                  GetProcAddress( hKRB5_32, "krb5_get_server_rcache" );
          (FARPROC) p_krb5_auth_con_getrcache =
                  GetProcAddress( hKRB5_32, "krb5_auth_con_getrcache" );
+         (FARPROC) p_krb5_kt_close =
+                 GetProcAddress( hKRB5_32, "krb5_kt_close" );
+         (FARPROC) p_krb5_kt_get_entry =
+                 GetProcAddress( hKRB5_32, "krb5_kt_get_entry" );
        }
  
  /* Stubs for each function to be dynamicly loaded */
***************
*** 721,726 ****
--- 737,762 ----
          {
                   if ( p_krb5_auth_con_getrcache )
                           return(p_krb5_auth_con_getrcache(con,acon, prcache));
+                  else
+                          return KRB5KRB_ERR_GENERIC;
+         }
+ 
+ krb5_error_code
+ kssl_krb5_kt_close(krb5_context context, krb5_keytab keytab)
+ {
+     if ( p_krb5_kt_close )
+         return(p_krb5_kt_close(context,keytab));
+     else 
+         return KRB5KRB_ERR_GENERIC;
+ }
+ 
+ krb5_error_code
+ kssl_krb5_kt_get_entry(krb5_context context, krb5_keytab keytab,
+                        krb5_const_principal principal, krb5_kvno vno,
+                        krb5_enctype enctype, krb5_keytab_entry *entry)
+ {
+     if ( p_krb5_kt_get_entry )
+         return(p_krb5_kt_get_entry(context,keytab,principal,vno,enctype,entry));
      else
          return KRB5KRB_ERR_GENERIC;
  }


 Jeffrey Altman * Sr.Software Designer      C-Kermit 8.0 Beta available
 The Kermit Project @ Columbia University   includes Secure Telnet and FTP
 http://www.kermit-project.org/             using Kerberos, SRP, and 
 [EMAIL PROTECTED]          OpenSSL.  SSH soon to follow.
______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
Development Mailing List                       [EMAIL PROTECTED]
Automated List Manager                           [EMAIL PROTECTED]

Reply via email to