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

Diff for /src/usr.bin/ssh/gss-serv.c between version 1.20 and 1.21

version 1.20, 2006/08/03 03:34:42 version 1.21, 2007/06/12 08:20:00
Line 25 
Line 25 
  */   */
   
 #include <sys/types.h>  #include <sys/types.h>
   #include <sys/param.h>
   
 #ifdef GSSAPI  #ifdef GSSAPI
   
Line 59 
Line 60 
 #endif  #endif
         &gssapi_null_mech,          &gssapi_null_mech,
 };  };
   
   
   /*
    * Acquire credentials for a server running on the current host.
    * Requires that the context structure contains a valid OID
    */
   
   /* Returns a GSSAPI error code */
   /* Privileged (called from ssh_gssapi_server_ctx) */
   static OM_uint32
   ssh_gssapi_acquire_cred(Gssctxt *ctx)
   {
           OM_uint32 status;
           char lname[MAXHOSTNAMELEN];
           gss_OID_set oidset;
   
           gss_create_empty_oid_set(&status, &oidset);
           gss_add_oid_set_member(&status, ctx->oid, &oidset);
   
           if (gethostname(lname, MAXHOSTNAMELEN)) {
                   gss_release_oid_set(&status, &oidset);
                   return (-1);
           }
   
           if (GSS_ERROR(ssh_gssapi_import_name(ctx, lname))) {
                   gss_release_oid_set(&status, &oidset);
                   return (ctx->major);
           }
   
           if ((ctx->major = gss_acquire_cred(&ctx->minor,
               ctx->name, 0, oidset, GSS_C_ACCEPT, &ctx->creds, NULL, NULL)))
                   ssh_gssapi_error(ctx);
   
           gss_release_oid_set(&status, &oidset);
           return (ctx->major);
   }
   
   /* Privileged */
   OM_uint32
   ssh_gssapi_server_ctx(Gssctxt **ctx, gss_OID oid)
   {
           if (*ctx)
                   ssh_gssapi_delete_ctx(ctx);
           ssh_gssapi_build_ctx(ctx);
           ssh_gssapi_set_oid(*ctx, oid);
           return (ssh_gssapi_acquire_cred(*ctx));
   }
   
 /* Unprivileged */  /* Unprivileged */
 void  void

Legend:
Removed from v.1.20  
changed lines
  Added in v.1.21