]> andersk Git - moira.git/blobdiff - reg_svr/reg_svr.c
added access_host() and access_ahal()
[moira.git] / reg_svr / reg_svr.c
index edcfdd6baae3babc08587cdda3975e4299d33b90..60dd1006241068c2051b3a8eaa6c035c87f9e1c1 100644 (file)
@@ -64,6 +64,7 @@ main(argc,argv)
     init_ureg_err_tbl();
     init_krb_err_tbl();
     init_kadm_err_tbl();
+    initialize_gdss_error_table();
     
     /* Use com_err or output to stderr for all log messages. */    
 #ifdef DEBUG
@@ -852,6 +853,7 @@ char *retval;
        }
        q_argv[U_NAME+1] = login;
        q_argv[U_STATE+1] = "7";
+       q_argv[U_SIGNATURE+1] = "";
        status = mr_query("update_user_account", U_MODTIME+1, q_argv,
                           null_callproc, NULL);
        switch (status)
@@ -860,6 +862,7 @@ char *retval;
            status = SUCCESS;
            break;
          case MR_IN_USE:
+         case MR_NOT_UNIQUE:
            status = UREG_LOGIN_USED;
            break;
          case MR_DEADLOCK:
@@ -931,7 +934,7 @@ char *retval;
        com_err(whoami, status, " while getting user info");
        return(status);
     }
-    if (atoi(argv[U_SECURE]))
+    if (atoi(argv[U_SECURE + 1]))
       return UREG_ALREADY_REGISTERED;
     return SUCCESS;
 }
@@ -1018,9 +1021,15 @@ char *retval;
 #endif
 
     if (strcmp(id, argv[U_MITID + 1])) {
-       status = UREG_USER_NOT_FOUND;
-       com_err(whoami, status, "IDs mismatch: %s, %s", id, argv[U_MITID + 1]);
-       return status;
+       char buf[32];
+
+       EncryptID(buf, id, argv[U_FIRST+1], argv[U_LAST+1]);
+       if (strcmp(buf, argv[U_MITID + 1])) {
+           status = UREG_USER_NOT_FOUND;
+           com_err(whoami, status, "IDs mismatch: %s (%s), %s", id, buf,
+                   argv[U_MITID + 1]);
+           return status;
+       }
     }
 
     /* now do actual password setting stuff */
@@ -1038,7 +1047,7 @@ char *retval;
     kv.key_low = htonl(lkey[0]);
     kv.key_high = htonl(lkey[1]);
     strcpy(kv.name, message->first);
-    strcpy(kv.instance, "secure");
+    strcpy(kv.instance, "extra");
 
     if ((status = kadm_add(&kv)) != KADM_SUCCESS) {
        com_err(whoami, status, " while creating kerberos principal");
This page took 0.246967 seconds and 4 git commands to generate.