Add things missing from previous commit to add realm_name to the service name.
authorMargaret Wasserman <mrw@painless-security.com>
Wed, 22 Jan 2014 14:43:02 +0000 (09:43 -0500)
committerMargaret Wasserman <mrw@painless-security.com>
Wed, 22 Jan 2014 14:43:02 +0000 (09:43 -0500)
gsscon/gsscon_passive.c
include/gsscon.h

index 262a768..d02186b 100755 (executable)
 
 const char *gServiceName = NULL;
 
-int gsscon_passive_authenticate (int           inSocket, 
-                                gss_buffer_desc inNameBuffer,
-                                gss_name_t inServiceName,
-                                gss_ctx_id_t *outGSSContext,
-                                client_cb_fn clientCb,
-                                void *clientCbData)
+int gsscon_passive_authenticate (int               inSocket, 
+                                gss_buffer_desc    inNameBuffer,
+                                gss_ctx_id_t      *outGSSContext,
+                                client_cb_fn       clientCb,
+                                void              *clientCbData)
 {
     int err = 0;
     OM_uint32 majorStatus;
     OM_uint32 minorStatus = 0;
     gss_ctx_id_t gssContext = GSS_C_NO_CONTEXT;
-    gss_name_t clientName = GSS_C_NO_NAME;
+    gss_name_t clientName = GSS_C_NO_NAME, serviceName = GSS_C_NO_NAME;
     gss_cred_id_t acceptorCredentials = NULL;
     gss_buffer_desc clientDisplayName = {0, NULL};
     char *inputTokenBuffer = NULL;
@@ -78,14 +77,14 @@ int gsscon_passive_authenticate (int           inSocket,
     if (!outGSSContext) { err = EINVAL; }
 
     if (!err)
-      majorStatus = gss_import_name (&minorStatus, &inNameBuffer, (gss_OID) GSS_KRB5_NT_PRINCIPAL_NAME, &inServiceName); 
+      majorStatus = gss_import_name (&minorStatus, &inNameBuffer, (gss_OID) GSS_KRB5_NT_PRINCIPAL_NAME, &serviceName); 
     if (majorStatus != GSS_S_COMPLETE) {
-       gsscon_print_gss_errors ("gss_import_name(inServiceName)", majorStatus, minorStatus);
+       gsscon_print_gss_errors ("gss_import_name(serviceName)", majorStatus, minorStatus);
        err = minorStatus ? minorStatus : majorStatus; 
       }
 
     if (!err) {
-      majorStatus = gss_acquire_cred ( &minorStatus, inServiceName,
+      majorStatus = gss_acquire_cred ( &minorStatus, serviceName,
                                       GSS_C_INDEFINITE, GSS_C_NO_OID_SET,
                                       GSS_C_ACCEPT, &acceptorCredentials,
                                       NULL /*mechs out*/, NULL /*time out*/);
@@ -182,7 +181,7 @@ if (clientName != GSS_C_NO_NAME)
   gss_release_name(&minorStatus, &clientName);
 if (clientDisplayName.value != NULL)
   gss_release_buffer(&minorStatus, &clientDisplayName);
- gss_release_name( &minorStatus, &inServiceName);
+ gss_release_name( &minorStatus, &serviceName);
  gss_release_cred( &minorStatus, &acceptorCredentials);
         
     return err;
index 35ff039..e122eb6 100644 (file)
@@ -109,6 +109,7 @@ int gsscon_connect (const char *inHost,
                    gss_ctx_id_t *outGSSContext);
 
 int gsscon_passive_authenticate (int           inSocket, 
+                                gss_buffer_desc inNameBuffer,
                                 gss_ctx_id_t *outGSSContext,
                                 client_cb_fn client_cb,
                                 void *client_cb_data);