]> andersk Git - moira.git/blobdiff - server/mr_sauth.c
fixup pobox access checking & make id assignment more paranoid (wesommer)
[moira.git] / server / mr_sauth.c
index 2a0a8db04c7c9040d831e22efed6645e435e4b0b..313f8738a9526db140ac8d366895620b4c790688 100644 (file)
@@ -6,9 +6,21 @@
  *     Copyright (C) 1987 by the Massachusetts Institute of Technology
  *
  *     $Log$
- *     Revision 1.3  1987-06-21 16:40:10  wesommer
- *     Performance work, rearrangement of include files.
+ *     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.
  * 
@@ -22,7 +34,6 @@ static char *rcsid_sms_sauth_c = "$Header$";
 #endif lint
 
 extern int krb_err_base;
-#include <krb.h>
 #include <strings.h>
 #include "sms_server.h"
 
@@ -48,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;
        
@@ -60,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, ".");
@@ -74,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.060812 seconds and 4 git commands to generate.