#include "query.h"
#include "qrtn.h"
+#include <errno.h>
#include <ctype.h>
#include <stdlib.h>
#include <string.h>
kname_parse(si.pname, si.pinst, si.prealm, kname);
free(kname);
si.rawsig = (unsigned char *)strdup(rsig);
- 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] = strdup(sigbuf);
- if (log_flags & LOG_GDSS)
- com_err(whoami, 0, "generated signature length %d",
- strlen(sigbuf));
}
#endif /* GDSS */
(*action)(q->vcnt, argv, actarg);
timestamp = si.timestamp;
}
else
- {
- if (log_flags & LOG_GDSS)
- hex_dump(argv[U_SIGNATURE]);
- return gdss2et(status);
- }
+ return gdss2et(status);
}
else
{
timestamp = si.timestamp;
}
else
- {
- if (log_flags & LOG_GDSS)
- hex_dump(argv[U_SIGNATURE + 1]);
- return gdss2et(status);
- }
+ return gdss2et(status);
}
else
{
free(argv[idx]);
argv[idx] = malloc(256);
name = argv[idx];
+ memset(name, 0, 256);
if (id == 0)
{
label = argv[0];
int _sdl_followup(struct query *q, char *argv[], client *cl)
{
- int i;
- i = atoi(argv[0]);
- log_flags = i;
-
- if (i & LOG_SQL)
+ if (atoi(argv[0]))
EXEC SQL ALTER SESSION SET SQL_TRACE TRUE;
else
EXEC SQL ALTER SESSION SET SQL_TRACE FALSE;
}
-static void hex_dump(unsigned char *p)
+int trigger_dcm(struct query *q, char *argv[], client *cl)
{
- 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))
+ pid_t pid;
+ char prog[128];
+
+ sprintf(prog, "%s/startdcm", BIN_DIR);
+ pid = vfork();
+ switch (pid)
{
- 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;
+ case 0:
+ execl(prog, "startdcm", 0);
+ exit(1);
+
+ case -1:
+ return errno;
+
default:
- return;
+ return MR_SUCCESS;
}
}