]> andersk Git - moira.git/blobdiff - server/qsupport.dc
put the name of the database in a variable
[moira.git] / server / qsupport.dc
index 1e575db0997ecc10f3a890f2d474c377c59829a1..cf85811fe3dd9eb4bc5a61f80ae266c7ee48d963 100644 (file)
@@ -1457,16 +1457,14 @@ followup_guax(q, sq, v, action, actarg, cl)
             free(kname);
            rsig.data_buf[rsig.data_size] = 0;
             si.rawsig = (unsigned char *)strsave(rsig.data_buf);
-#ifdef DEBUG
-           com_err(whoami, 0, "rawsig length = %d, sig=\"%s\"", strlen(si.rawsig), si.rawsig);
-#endif /* DEBUG */
+           if (log_flags & LOG_GDSS)
+             com_err(whoami, 0, "rawsig length = %d, sig=\"%s\"", strlen(si.rawsig), si.rawsig);
            GDSS_Recompose(&si, sigbuf);
            free(si.rawsig);
            free(argv[U_SIGNATURE]);
            argv[U_SIGNATURE] = strsave(sigbuf);
-#ifdef DEBUG
-           com_err(whoami, 0, "generated signature length %d", strlen(sigbuf));
-#endif /* DEBUG */
+           if (log_flags & LOG_GDSS)
+             com_err(whoami, 0, "generated signature length %d", strlen(sigbuf));
        }
 #endif /* GDSS */
        (*action)(q->vcnt, argv, actarg);
@@ -1519,6 +1517,13 @@ followup_ausr(q, argv, cl)
 
 #ifdef GDSS
       if (q->vcnt == U_END && *argv[U_SIGNATURE]) {
+       /* unquote ' chars in signature */
+       for (dst = src = argv[U_SIGNATURE]; *src; ) {
+           if (*src == '\'')
+             src++;
+           *dst++ = *src++;
+       }
+       *dst = 0;
         sprintf(databuf, "%s:%s", argv[U_NAME], argv[U_MITID]);
         /* skip bytes for timestamp & kname */
         si.rawsig = (unsigned char *) rawsig;
@@ -1541,8 +1546,11 @@ followup_ausr(q, argv, cl)
             } else if (status)
               return(status);
             timestamp = si.timestamp;
-        } else
-          return(gdss2et(status));
+        } else {
+           if (log_flags & LOG_GDSS)
+             hex_dump(argv[U_SIGNATURE]);
+           return(gdss2et(status));
+       }
       } else {
         rawsig[0] = 0;
         sigwho = 0;
@@ -1592,7 +1600,7 @@ followup_uuac(q, argv, cl)
 {
     EXEC SQL BEGIN DECLARE SECTION; 
     int who, status, id;
-    char *entity, *name;
+    char *entity, *name, *src, *dst;
     EXEC SQL END DECLARE SECTION; 
 #ifdef GDSS
     char databuf[32], *kname_unparse();
@@ -1610,6 +1618,13 @@ followup_uuac(q, argv, cl)
     
 #ifdef GDSS
     if (q->vcnt == U_MODTIME && *argv[U_SIGNATURE + 1]) {
+       /* unquote ' chars in signature */
+       for (dst = src = argv[U_SIGNATURE+1]; *src; ) {
+           if (*src == '\'')
+             src++;
+           *dst++ = *src++;
+       }
+       *dst = 0;
         login = malloc(1);
         status = id_to_name(id, "USER", &login);
         sprintf(databuf, "%s:%s", login, argv[U_MITID+1]);
@@ -1641,8 +1656,11 @@ followup_uuac(q, argv, cl)
             } else if (status)
               return(status);
             timestamp = si.timestamp;
-        } else
-          return(gdss2et(status));
+        } else {
+           if (log_flags & LOG_GDSS)
+             hex_dump(argv[U_SIGNATURE+1]);
+           return(gdss2et(status));
+       }
     } else {
         rawsig[0] = 0;
         sigwho = 0;
@@ -3509,11 +3527,12 @@ int _sdl_followup(q, argv, cl)
     int i;
     i = atoi(argv[0]);
     log_flags = i;
-    if (i && LOG_SQL) {
+    if (i & LOG_SQL) {
        EXEC SQL set printqry;
     } else {
-       EXEC SQL set no printqry;
+       EXEC SQL set noprintqry;
     }
+    return(MR_SUCCESS);
 }
 
 
@@ -4203,4 +4222,51 @@ mr_select_any(stmt)
 } 
 
 
+
+static hex_dump(p)
+unsigned  char *p;
+{
+    char buf[BUFSIZ];
+    int i;
+
+    fprintf(stderr, "Size: %d\n", strlen(p));
+    while (strlen(p) >= 8) {
+       fprintf(stderr, "%02x %02x %02x %02x %02x %02x %02x %02x\n",
+               p[0], p[1], p[2], p[3], p[4], p[5], p[6], p[7]);
+       p += 8;
+    }
+    switch (strlen(p)) {
+    case 7:
+       fprintf(stderr, "%02x %02x %02x %02x %02x %02x %02x\n",
+               p[0], p[1], p[2], p[3], p[4], p[5], p[6]);
+       break;
+    case 6:
+       fprintf(stderr, "%02x %02x %02x %02x %02x %02x\n",
+               p[0], p[1], p[2], p[3], p[4], p[5]);
+       break;
+    case 5:
+       fprintf(stderr, "%02x %02x %02x %02x %02x\n",
+               p[0], p[1], p[2], p[3], p[4]);
+       break;
+    case 4:
+       fprintf(stderr, "%02x %02x %02x %02x\n",
+               p[0], p[1], p[2], p[3]);
+       break;
+    case 3:
+       fprintf(stderr, "%02x %02x %02x\n",
+               p[0], p[1], p[2]);
+       break;
+    case 2:
+       fprintf(stderr, "%02x %02x\n",
+               p[0], p[1]);
+       break;
+    case 1:
+       fprintf(stderr, "%02x\n",
+               p[0]);
+       break;
+    default:
+       return;
+    }
+}
+
 /* eof:qsupport.dc */
This page took 0.050379 seconds and 4 git commands to generate.