]> andersk Git - moira.git/blobdiff - server/qrtn.qc
Used /bin/sh format instead of /bin/csh format, by accident.
[moira.git] / server / qrtn.qc
index b0c99e0ff8854e08316d5423dfbdf2ac7a2b3247..55559c626555d00be4fd27b2f652293cf960b6a6 100644 (file)
@@ -29,6 +29,7 @@ extern FILE *journal;
 #define INGRES_BAD_DATE 4302
 #define INGRES_DEADLOCK 4700
 #define INGRES_TIMEOUT 4702
+#define INGRES_NO_RANGE 2109
 
 /*
  * ingerr: (supposedly) called when Ingres indicates an error.
@@ -56,6 +57,10 @@ static int ingerr(num)
        mr_errcode = MR_BUSY;
        com_err(whoami, 0, "timed out getting lock");
        break;
+    case INGRES_NO_RANGE:
+       mr_errcode = MR_INGRES_SOFTFAIL;
+       com_err(whoami, 0, "INGRES missing range statement");
+       break;
     default:
        mr_errcode = MR_INGRES_ERR;
        com_err(whoami, MR_INGRES_ERR, " code %d\n", *num);
@@ -798,7 +803,7 @@ set_next_object_id(object, table)
  * owns.  Sets the kerberos ID and user ID.
  */
 
-set_krb_mapping(name, login, ok, kid, uid)
+int set_krb_mapping(name, login, ok, kid, uid)
 char *name;
 char *login;
 int ok;
@@ -815,11 +820,12 @@ int *uid;
 ##  repeat retrieve (u_id = krbmap.#users_id, k_id = krbmap.#string_id)
 ##     where krbmap.string_id = strings.string_id and strings.string = @krbname
 ##  inquire_equel (rowcount = "rowcount")
+    if (ingres_errno) return(mr_errcode);
     
     if (rowcount == 1) {
        *kid = -k_id;
        *uid = u_id;
-       return;
+       return(MR_SUCCESS);
     }
 
     if (name_to_id(name, "STRINGS", &k_id) == MR_SUCCESS)
@@ -827,7 +833,7 @@ int *uid;
 
     if (!ok) {
        *uid = *kid;
-       return;
+       return(MR_SUCCESS);
     }
 
     if (name_to_id(login, "USERS", uid) != MR_SUCCESS)
@@ -835,6 +841,8 @@ int *uid;
 
     if (*kid == 0)
       *kid = *uid;
+    if (ingres_errno) return(mr_errcode);
+    return(MR_SUCCESS);
 ##}
 
 
This page took 0.032384 seconds and 4 git commands to generate.