]> andersk Git - moira.git/blobdiff - server/mr_sauth.c
added script command, removed duplicate quit
[moira.git] / server / mr_sauth.c
index f723c0027c3c9f4219d13504eac0e6c58697490c..313f8738a9526db140ac8d366895620b4c790688 100644 (file)
@@ -6,9 +6,24 @@
  *     Copyright (C) 1987 by the Massachusetts Institute of Technology
  *
  *     $Log$
- *     Revision 1.2  1987-06-04 01:34:35  wesommer
- *     Added logging of arguments for some perverse reason.
+ *     Revision 1.7  1987-09-12 20:42:05  wesommer
+ *     Be paranoid.
  *
+ * Revision 1.6  87/08/04  02:40:47  wesommer
+ * Clean up messages.
+ * 
+ * Revision 1.5  87/07/14  00:40:18  wesommer
+ * Rearranged logging.
+ * 
+ * Revision 1.4  87/06/30  20:03:46  wesommer
+ * Put parsed kerberos principal name into the per-client structure.
+ * 
+ * Revision 1.3  87/06/21  16:40:10  wesommer
+ * Performance work, rearrangement of include files.
+ * 
+ * Revision 1.2  87/06/04  01:34:35  wesommer
+ * Added logging of arguments for some perverse reason.
+ * 
  * Revision 1.1  87/06/02  20:06:57  wesommer
  * Initial revision
  * 
@@ -19,9 +34,7 @@ static char *rcsid_sms_sauth_c = "$Header$";
 #endif lint
 
 extern int krb_err_base;
-#include <krb.h>
 #include <strings.h>
-#include "sms_private.h"
 #include "sms_server.h"
 
 extern char buf1[];
@@ -46,11 +59,13 @@ do_auth(cl)
        char buf[REALM_SZ+INST_SZ+ANAME_SZ];
        extern int krb_err_base;
        
-       com_err(whoami, 0, "Processing auth: ");
-       log_args(cl->args->sms_argc, cl->args->sms_argv);
-
+       if (cl->clname) {
+               free(cl->clname);
+               cl->clname = 0;
+               bzero(&cl->kname, sizeof(cl->kname));
+       }
+       
        auth.length = cl->args->sms_argl[0];
-
        bcopy(cl->args->sms_argv[0], (char *)auth.dat, auth.length);
        auth.mbz = 0;
        
@@ -58,9 +73,14 @@ do_auth(cl)
                                 &ad, "")) != KSUCCESS) {
                status += krb_err_base;
                cl->reply.sms_status = status;
-               com_err(whoami, status, "(authentication failed)");
+               if (log_flags & LOG_RES)
+                       com_err(whoami, status, "(authentication failed)");
                return;
        }
+       bcopy(ad.pname, cl->kname.name, ANAME_SZ);
+       bcopy(ad.pinst, cl->kname.inst, INST_SZ);
+       bcopy(ad.prealm, cl->kname.realm, REALM_SZ);
+       
        (void) strcpy(buf, ad.pname);
        if(ad.pinst[0]) {
                (void) strcat(buf, ".");
@@ -72,6 +92,8 @@ do_auth(cl)
        
        cl->clname = (char *)malloc((unsigned)(strlen(buf)+1));
        (void) strcpy(cl->clname, buf);
-       (void) sprintf(buf1, "Authenticated to %s", cl->clname);
-       com_err(whoami, 0, buf1);
+       bzero(&ad, sizeof(ad)); /* Clean up session key, etc. */
+       if (log_flags & LOG_RES) {
+               com_err(whoami, 0, "Authenticated to %s", cl->clname);
+       }
 }
This page took 0.04212 seconds and 4 git commands to generate.