X-Git-Url: http://andersk.mit.edu/gitweb/moira.git/blobdiff_plain/d548a4e78f42896b6f13f382f0ba32c4c05a0e45..67805159a972397342c342ee735c8acd640e1399:/server/qrtn.qc diff --git a/server/qrtn.qc b/server/qrtn.qc index b0c99e0f..55559c62 100644 --- a/server/qrtn.qc +++ b/server/qrtn.qc @@ -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); ##}