[1830] in Moira Commits
/svn/moira r3977 - in trunk/moira: . clients/eunice clients/moira db include server
daemon@ATHENA.MIT.EDU (Garry Zacheiss)
Fri Feb 12 16:12:11 2010
Date: Fri, 12 Feb 2010 16:12:04 -0500
From: Garry Zacheiss <zacheiss@MIT.EDU>
Message-Id: <201002122112.o1CLC4sL026934@drugstore.mit.edu>
To: moira-commits@mit.edu
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Author: zacheiss
Date: 2010-02-12 16:12:04 -0500 (Fri, 12 Feb 2010)
New Revision: 3977
Modified:
trunk/moira/clients/eunice/eunice.c
trunk/moira/clients/moira/defs.h
trunk/moira/clients/moira/printer.c
trunk/moira/db/schema.sql
trunk/moira/include/moira_site.h
trunk/moira/libtool
trunk/moira/server/qaccess.pc
trunk/moira/server/qsetup.pc
trunk/moira/server/queries2.c
Log:
Add new fields to printers table: booleans for duplex by default, hold jobs by default; status a la machine table; list name for receiving usage reports.
Modified: trunk/moira/clients/eunice/eunice.c
===================================================================
--- trunk/moira/clients/eunice/eunice.c 2010-02-09 19:30:24 UTC (rev 3976)
+++ trunk/moira/clients/eunice/eunice.c 2010-02-12 21:12:04 UTC (rev 3977)
@@ -38,11 +38,11 @@
#define argis(a, b) (!strcmp(*arg + 1, a) || !strcmp(*arg + 1, b))
/* flags from command line */
-int info_flag, verbose, noauth;
+int info_flag, verbose, noauth, duplex_default, hold_default;
int create_flag, setmac, delete_flag, rename_flag, ka, banner, update_flag;
-char *lpracl, *lpcacl;
+char *lpracl, *lpcacl, *report_list;
char *contact, *newname, *printserver, *type, *hwtype, *mac, *hostname, *queuename;
-char *duplexname, *logserver, *location, *realname;
+char *duplexname, *logserver, *location, *realname, *pr_status;
char *queuename, *whoami, *testqueue;
@@ -57,6 +57,25 @@
void print_query(char *query_name, int argc, char **argv);
int CountArgs(char **info);
+static char *states[] = {
+ "Reserved (0)",
+ "Active (1)",
+ "None (2)",
+ "Deleted (3)"
+};
+
+static char *PrnState(int state)
+{
+ static char buf[BUFSIZ];
+
+ if (state < 0 || state > 3)
+ {
+ sprintf(buf, "Unknown (%d)", state);
+ return buf;
+ }
+ return states[state];
+}
+
int main(int argc, char **argv)
{
int status, success;
@@ -70,8 +89,9 @@
/* clear all flags & lists */
i = info_flag = verbose = noauth = 0;
- setmac = ka = create_flag = delete_flag = update_flag = 0;
- location = lpracl = lpcacl = NULL;
+ setmac = create_flag = delete_flag = update_flag = 0;
+ ka = duplex_default = hold_default = banner = -1;
+ location = lpracl = lpcacl = report_list = pr_status = NULL;
logserver = duplexname = realname = newname = printserver = type = hwtype = mac = hostname = NULL;
@@ -146,9 +166,29 @@
else
usage(argv);
}
+ else if (argis("S", "status"))
+ {
+ if (arg - argv < argc - 1) {
+ int i;
+ int len;
+
+ arg++;
+ update_flag++;
+ pr_status = *arg;
+
+ len = strlen(pr_status);
+ for(i = 0; i < len; i++) {
+ if(!isdigit(pr_status[i])) {
+ printf("Error: status code %s is not numeric.\n", pr_status);
+ exit(1);
+ }
+ }
+ } else
+ usage(argv);
+ }
else if (argis("K", "kerbauth"))
{
- ka++;
+ ka = 1;
update_flag++;
}
else if (argis("NK", "nokerbauth"))
@@ -156,6 +196,26 @@
ka = 0;
update_flag++;
}
+ else if (argis("DD", "duplexdefault"))
+ {
+ duplex_default = 1;
+ update_flag++;
+ }
+ else if (argis("ND", "noduplexdefault"))
+ {
+ duplex_default = 0;
+ update_flag++;
+ }
+ else if (argis("HD", "holddefault"))
+ {
+ hold_default = 1;
+ update_flag++;
+ }
+ else if (argis("NH", "noholddefault"))
+ {
+ hold_default = 0;
+ update_flag++;
+ }
else if (argis("H", "hostname"))
{
if (arg - argv < argc - 1)
@@ -214,6 +274,17 @@
else
usage(argv);
}
+ else if (argis("rl", "reportlist"))
+ {
+ if (arg - argv < argc - 1)
+ {
+ ++arg;
+ report_list = *arg;
+ update_flag++;
+ }
+ else
+ usage(argv);
+ }
else if (argis("m", "mac"))
{
if (arg - argv < argc - 1)
@@ -285,7 +356,7 @@
info_flag++;
/* fire up Moira */
- status = mrcl_connect(server, "eunice", 10, !noauth);
+ status = mrcl_connect(server, "eunice", 13, !noauth);
if (status == MRCL_AUTH_ERROR)
{
com_err(whoami, 0, "Authentication error while working on queue %s",
@@ -354,6 +425,14 @@
pargv[PRN_DUPLEXNAME] = (duplexname != NULL) ? duplexname : "";
+ pargv[PRN_DUPLEXDEFAULT] = (duplex_default == 1) ? "1" : "0";
+ pargv[PRN_HOLDDEFAULT] = (hold_default == 1) ? "1" : "0";
+
+ if (pr_status)
+ pargv[PRN_STATUS] = pr_status;
+ else
+ pargv[PRN_STATUS] = "1";
+
pargv[PRN_HOSTNAME] = hostname;
pargv[PRN_LOGHOST] = logserver;
@@ -396,6 +475,20 @@
else
pargv[PRN_LPC_ACL] = "[none]";
+ if (report_list != NULL)
+ {
+ status = wrap_mr_query("get_list_info", 1, &report_list,
+ NULL, NULL);
+ if (status)
+ {
+ com_err(whoami, status, "while getting authentication list information");
+ exit(1);
+ }
+ pargv[PRN_REPORT_LIST] = report_list;
+ }
+ else
+ pargv[PRN_REPORT_LIST] = "[none]";
+
pargv[PRN_BANNER] = (banner == 1) ? "1" : "0";
status = wrap_mr_query("add_printer", CountArgs(pargv), pargv, NULL, NULL);
@@ -429,6 +522,15 @@
if (duplexname != NULL)
pargv[PRN_DUPLEXNAME + 1] = duplexname;
+ if (duplex_default != -1)
+ pargv[PRN_DUPLEXDEFAULT + 1] = duplex_default ? "1" : "0";
+
+ if (hold_default != -1)
+ pargv[PRN_HOLDDEFAULT + 1] = hold_default ? "1" : "0";
+
+ if (pr_status != NULL)
+ pargv[PRN_STATUS + 1] = pr_status;
+
if (hostname != NULL)
pargv[PRN_HOSTNAME + 1] = hostname;
@@ -450,6 +552,8 @@
pargv[PRN_AC + 1] = lpracl;
if (lpcacl != NULL)
pargv[PRN_LPC_ACL + 1] = lpcacl;
+ if (report_list != NULL)
+ pargv[PRN_REPORT_LIST + 1] = report_list;
if (banner != -1)
pargv[PRN_BANNER + 1] = banner ? "1" : "0";
if (location != NULL)
@@ -536,8 +640,14 @@
"-b | -banner");
fprintf(stderr, USAGE_OPTIONS_FORMAT, "-NK | -nokerbauth",
"-nb | -nobanner");
+ fprintf(stderr, USAGE_OPTIONS_FORMAT, "-DD | -duplexdefault",
+ "-HD | -holddefault");
+ fprintf(stderr, USAGE_OPTIONS_FORMAT, "-ND | -noduplexdefault",
+ "-NH | -noholddefault");
+ fprintf(stderr, USAGE_OPTIONS_FORMAT, "-S | -status status",
+ "-rl | -reportlist list");
fprintf(stderr, USAGE_OPTIONS_FORMAT, "-l | -lpcacl list",
- "-ac | -lpracl contact");
+ "-ac | -lpracl list");
fprintf(stderr, USAGE_OPTIONS_FORMAT, "-d | -duplex name",
"-n | -noauth");
fprintf(stderr, USAGE_OPTIONS_FORMAT, "-m | -mac hwaddr",
@@ -573,6 +683,10 @@
printf("Printer: %-18s Duplex queue: %-18s\n", pargv[PRN_NAME + 1],
*pargv[PRN_DUPLEXNAME + 1] ? pargv[PRN_DUPLEXNAME + 1] : "[none]");
+ printf("Status: %-10s\n", PrnState(atoi(pargv[PRN_STATUS + 1])));
+ printf("Duplex by Default: %-8s Hold by Default: %-18s\n",
+ atoi(pargv[PRN_DUPLEXDEFAULT + 1]) ? "yes" : "no",
+ atoi(pargv[PRN_HOLDDEFAULT + 1]) ? "yes" : "no");
printf("Type: %-10s Hardware type: %-10s Hardware address: %s\n",
pargv[PRN_TYPE + 1], pargv[PRN_HWTYPE + 1], hwaddr);
printf("Printer hostname: %s\n", pargv[PRN_HOSTNAME + 1]);
@@ -584,6 +698,7 @@
atoi(pargv[PRN_KA + 1]) ? "yes" : "no", pargv[PRN_PC + 1], pargv[PRN_RQ + 1]);
printf("Restrict list: %-23s LPC ACL: %-23s\n",
pargv[PRN_AC + 1], pargv[PRN_LPC_ACL + 1]);
+ printf("Report list: %-23s\n", pargv[PRN_REPORT_LIST + 1]);
printf("Location: %s\n", pargv[PRN_LOCATION + 1]);
printf("Contact: %s\n", pargv[PRN_CONTACT + 1]);
printf("\n");
Modified: trunk/moira/clients/moira/defs.h
===================================================================
--- trunk/moira/clients/moira/defs.h 2010-02-09 19:30:24 UTC (rev 3976)
+++ trunk/moira/clients/moira/defs.h 2010-02-12 21:12:04 UTC (rev 3977)
@@ -50,7 +50,7 @@
/* What version of the queries are we asking for? */
-#define QUERY_VERSION 12
+#define QUERY_VERSION 13
/* This is unimplemented in the menu stuff, but would be nice. */
Modified: trunk/moira/clients/moira/printer.c
===================================================================
--- trunk/moira/clients/moira/printer.c 2010-02-09 19:30:24 UTC (rev 3976)
+++ trunk/moira/clients/moira/printer.c 2010-02-12 21:12:04 UTC (rev 3977)
@@ -44,6 +44,25 @@
#define DEFAULT_LOGHOST "WSLOGGER.MIT.EDU"
+static char *states[] = {
+ "Reserved (0)",
+ "Active (1)",
+ "None (2)",
+ "Deleted (3)"
+};
+
+static char *PrnState(int state)
+{
+ static char buf[BUFSIZ];
+
+ if (state < 0 || state > 3)
+ {
+ sprintf(buf, "Unknown (%d)", state);
+ return buf;
+ }
+ return states[state];
+}
+
int StoreHWAddr(int argc, char **argv, void *retval)
{
char **p = retval;
@@ -63,6 +82,9 @@
info[PRN_TYPE] = strdup("PRIVATE");
info[PRN_HWTYPE] = strdup("HP");
info[PRN_DUPLEXNAME] = strdup("");
+ info[PRN_DUPLEXDEFAULT] = strdup("0");
+ info[PRN_HOLDDEFAULT] = strdup("0");
+ info[PRN_STATUS] = strdup("1");
info[PRN_HOSTNAME] = strdup(name);
info[PRN_LOGHOST] = strdup(DEFAULT_LOGHOST);
info[PRN_RM] = strdup("[ANY]");
@@ -72,6 +94,7 @@
info[PRN_PC] = strdup("10");
info[PRN_AC] = strdup("[none]");
info[PRN_LPC_ACL] = strdup("[none]");
+ info[PRN_REPORT_LIST] = strdup("[none]");
info[PRN_BANNER] = strdup("1");
info[PRN_LOCATION] = strdup("");
info[PRN_CONTACT] = strdup("");
@@ -157,6 +180,12 @@
sprintf(buf, "Printer: %-18s Duplex queue: %-18s", info[PRN_NAME],
*info[PRN_DUPLEXNAME] ? info[PRN_DUPLEXNAME] : "[none]");
Put_message(buf);
+ sprintf(buf, "Status: %-10s", PrnState(atoi(info[PRN_STATUS])));
+ Put_message(buf);
+ sprintf(buf, "Duplex by Default: %-8s Hold by Default: %-18s",
+ atoi(info[PRN_DUPLEXDEFAULT]) ? "yes" : "no",
+ atoi(info[PRN_HOLDDEFAULT]) ? "yes" : "no");
+ Put_message(buf);
sprintf(buf, "Type: %-10s Hardware type: %-10s Hardware address: ",
info[PRN_TYPE], info[PRN_HWTYPE]);
status = do_mr_query("get_host_hwaddr", 1, &info[PRN_HOSTNAME],
@@ -184,6 +213,8 @@
sprintf(buf, "Restrict list: %-23s LPC ACL: %-23s",
info[PRN_AC], info[PRN_LPC_ACL]);
Put_message(buf);
+ sprintf(buf, "Report list: %-23s", info[PRN_REPORT_LIST]);
+ Put_message(buf);
sprintf(buf, "Location: %s", info[PRN_LOCATION]);
Put_message(buf);
sprintf(buf, "Contact: %s", info[PRN_CONTACT]);
@@ -235,6 +266,24 @@
if (GetValueFromUser("Duplex spool name", &info[PRN_DUPLEXNAME]) ==
SUB_ERROR)
return NULL;
+ if (GetYesNoValueFromUser("Print duplex by default", &info[PRN_DUPLEXDEFAULT]) ==
+ SUB_ERROR)
+ return NULL;
+ if (GetYesNoValueFromUser("Hold jobs by default", &info[PRN_HOLDDEFAULT]) ==
+ SUB_ERROR)
+ return NULL;
+ while (1)
+ {
+ int i;
+ if (GetValueFromUser("Printer's status (? for help)",
+ &info[PRN_STATUS]) == SUB_ERROR)
+ return NULL;
+ if (isdigit(info[PRN_STATUS][0]))
+ break;
+ Put_message("Valid status numbers:");
+ for (i = 0; i < 4; i++)
+ Put_message(states[i]);
+ }
if (GetValueFromUser("Printer hostname (or [none])", &info[PRN_HOSTNAME]) ==
SUB_ERROR)
return NULL;
@@ -268,6 +317,8 @@
}
if (GetValueFromUser("LPC ACL", &info[PRN_LPC_ACL]) == SUB_ERROR)
return NULL;
+ if (GetValueFromUser("Report list", &info[PRN_REPORT_LIST]) == SUB_ERROR)
+ return NULL;
if (GetYesNoValueFromUser("Banner page", &info[PRN_BANNER]) == SUB_ERROR)
return NULL;
if (GetValueFromUser("Location", &info[PRN_LOCATION]) == SUB_ERROR)
Modified: trunk/moira/db/schema.sql
===================================================================
--- trunk/moira/db/schema.sql 2010-02-09 19:30:24 UTC (rev 3976)
+++ trunk/moira/db/schema.sql 2010-02-12 21:12:04 UTC (rev 3977)
@@ -331,6 +331,9 @@
type VARCHAR(8) DEFAULT CHR(0) NOT NULL,
hwtype VARCHAR(64) DEFAULT CHR(0) NOT NULL,
duplexname VARCHAR(16) DEFAULT CHR(0) NOT NULL,
+ duplexdefault INTEGER DEFAULT 0 NOT NULL,
+ holddefault INTEGER DEFAULT 0 NOT NULL,
+ status INTEGER DEFAULT 0 NOT NULL,
mach_id INTEGER DEFAULT 0 NOT NULL,
loghost INTEGER DEFAULT 0 NOT NULL,
rm INTEGER DEFAULT 0 NOT NULL,
@@ -341,6 +344,7 @@
mc SMALLINT DEFAULT 0 NOT NULL,
ac INTEGER DEFAULT 0 NOT NULL,
lpc_acl INTEGER DEFAULT 0 NOT NULL,
+ report_list INTEGER DEFAULT 0 NOT NULL,
banner INTEGER DEFAULT 0 NOT NULL,
location VARCHAR(64) DEFAULT CHR(0) NOT NULL,
contact VARCHAR(64) DEFAULT CHR(0) NOT NULL,
Modified: trunk/moira/include/moira_site.h
===================================================================
--- trunk/moira/include/moira_site.h 2010-02-09 19:30:24 UTC (rev 3976)
+++ trunk/moira/include/moira_site.h 2010-02-12 21:12:04 UTC (rev 3977)
@@ -206,26 +206,30 @@
/* Printer queries */
-#define PRN_NAME 0
-#define PRN_TYPE 1
-#define PRN_HWTYPE 2
-#define PRN_DUPLEXNAME 3
-#define PRN_HOSTNAME 4
-#define PRN_LOGHOST 5
-#define PRN_RM 6
-#define PRN_RP 7
-#define PRN_RQ 8
-#define PRN_KA 9
-#define PRN_PC 10
-#define PRN_AC 11
-#define PRN_LPC_ACL 12
-#define PRN_BANNER 13
-#define PRN_LOCATION 14
-#define PRN_CONTACT 15
-#define PRN_MODTIME 16
-#define PRN_MODBY 17
-#define PRN_MODWITH 18
-#define PRN_END 19
+#define PRN_NAME 0
+#define PRN_TYPE 1
+#define PRN_HWTYPE 2
+#define PRN_DUPLEXNAME 3
+#define PRN_DUPLEXDEFAULT 4
+#define PRN_HOLDDEFAULT 5
+#define PRN_STATUS 6
+#define PRN_HOSTNAME 7
+#define PRN_LOGHOST 8
+#define PRN_RM 9
+#define PRN_RP 10
+#define PRN_RQ 11
+#define PRN_KA 12
+#define PRN_PC 13
+#define PRN_AC 14
+#define PRN_LPC_ACL 15
+#define PRN_REPORT_LIST 16
+#define PRN_BANNER 17
+#define PRN_LOCATION 18
+#define PRN_CONTACT 19
+#define PRN_MODTIME 20
+#define PRN_MODBY 21
+#define PRN_MODWITH 22
+#define PRN_END 23
#define PRN_BANNER_NONE 0
#define PRN_BANNER_FIRST 1
Modified: trunk/moira/libtool
===================================================================
--- trunk/moira/libtool 2010-02-09 19:30:24 UTC (rev 3976)
+++ trunk/moira/libtool 2010-02-12 21:12:04 UTC (rev 3977)
@@ -44,7 +44,7 @@
# ### BEGIN LIBTOOL CONFIG
-# Libtool was configured on host wrong-tool.mit.edu:
+# Libtool was configured on host this-too-shall-pass.mit.edu:
# Shell to use when invoking shell scripts.
SHELL="/bin/sh"
@@ -6769,7 +6769,7 @@
# End:
# ### BEGIN LIBTOOL TAG CONFIG: CXX
-# Libtool was configured on host wrong-tool.mit.edu:
+# Libtool was configured on host this-too-shall-pass.mit.edu:
# Shell to use when invoking shell scripts.
SHELL="/bin/sh"
@@ -7065,7 +7065,7 @@
# ### BEGIN LIBTOOL TAG CONFIG: F77
-# Libtool was configured on host wrong-tool.mit.edu:
+# Libtool was configured on host this-too-shall-pass.mit.edu:
# Shell to use when invoking shell scripts.
SHELL="/bin/sh"
Modified: trunk/moira/server/qaccess.pc
===================================================================
--- trunk/moira/server/qaccess.pc 2010-02-09 19:30:24 UTC (rev 3976)
+++ trunk/moira/server/qaccess.pc 2010-02-12 21:12:04 UTC (rev 3977)
@@ -704,9 +704,19 @@
char type[PRINTSERVERS_OWNER_TYPE_SIZE];
int id, mach_id;
EXEC SQL END DECLARE SECTION;
- int status;
+ int status, row;
- mach_id = *(int *)argv[PRN_RM];
+ /* Check for aprn or uprn. */
+ if (q->type == MR_Q_APPEND)
+ row = 0;
+ else
+ row = 1;
+
+ if (q->version < 13)
+ mach_id = *(int *)argv[6 + row];
+ else
+ mach_id = *(int *)argv[PRN_RM + row];
+
EXEC SQL SELECT owner_type, owner_id INTO :type, :id
FROM printservers WHERE mach_id = :mach_id;
if (sqlca.sqlcode)
Modified: trunk/moira/server/qsetup.pc
===================================================================
--- trunk/moira/server/qsetup.pc 2010-02-09 19:30:24 UTC (rev 3976)
+++ trunk/moira/server/qsetup.pc 2010-02-12 21:12:04 UTC (rev 3977)
@@ -1328,7 +1328,7 @@
*/
int setup_aprn(struct query *q, char **argv, client *cl)
{
- int best = -1, row;
+ int best = -1, row, idx = 0;
char *p;
EXEC SQL BEGIN DECLARE SECTION;
int mid, usage, count;
@@ -1341,6 +1341,9 @@
else
row = 1;
+ if (q->version < 13)
+ idx = 3;
+
name = argv[PRN_NAME + row];
duplexname = argv[PRN_DUPLEXNAME + row];
oldname = argv[0];
@@ -1389,7 +1392,7 @@
if (!strcmp(name, duplexname))
return MR_NOT_UNIQUE;
- mid = *(int *)argv[PRN_RM + row];
+ mid = *(int *)argv[PRN_RM + row + idx];
if (mid == -1)
{
EXEC SQL DECLARE csr_rm CURSOR FOR
@@ -1420,7 +1423,7 @@
if (best < 0 || usage < best)
{
best = usage;
- *(int *)argv[PRN_RM + row] = mid;
+ *(int *)argv[PRN_RM + row + idx] = mid;
break;
}
}
Modified: trunk/moira/server/queries2.c
===================================================================
--- trunk/moira/server/queries2.c 2010-02-09 19:30:24 UTC (rev 3976)
+++ trunk/moira/server/queries2.c 2010-02-12 21:12:04 UTC (rev 3977)
@@ -3344,62 +3344,119 @@
0,
};
-static char *gprn_fields[] = {
+static char *gprn2_fields[] = {
"name",
"name", "type", "hwtype", "duplexname", "hostname",
"loghost", "rm", "rp", "rq", "ka", "pc", "ac", "lpc_acl",
"banner", "location", "contact", "modtime", "modby", "modwith"
};
-static char *gpbd_fields[] = {
+static char *gpbd2_fields[] = {
"duplexname",
"name", "type", "hwtype", "duplexname", "hostname",
"loghost", "rm", "rp", "rq", "ka", "pc", "ac", "lpc_acl",
"banner", "location", "contact", "modtime", "modby", "modwith"
};
-static char *gpbe_fields[] = {
+static char *gpbe2_fields[] = {
"hwaddr",
"name", "type", "hwtype", "duplexname", "hostname",
"loghost", "rm", "rp", "rq", "ka", "pc", "ac", "lpc_acl",
"banner", "location", "contact", "modtime", "modby", "modwith"
};
-static char *gpbh_fields[] = {
+static char *gpbh2_fields[] = {
"hostname",
"name", "type", "hwtype", "duplexname", "hostname",
"loghost", "rm", "rp", "rq", "ka", "pc", "ac", "lpc_acl",
"banner", "location", "contact", "modtime", "modby", "modwith"
};
-static char *gpbr_fields[] = {
+static char *gpbr2_fields[] = {
"rm",
"name", "type", "hwtype", "duplexname", "hostname",
"loghost", "rm", "rp", "rq", "ka", "pc", "ac", "lpc_acl",
"banner", "location", "contact", "modtime", "modby", "modwith"
};
-static char *gpbl_fields[] = {
+static char *gpbl2_fields[] = {
"location",
"name", "type", "hwtype", "duplexname", "hostname",
"loghost", "rm", "rp", "rq", "ka", "pc", "ac", "lpc_acl",
"banner", "location", "contact", "modtime", "modby", "modwith"
};
-static char *gpbc_fields[] = {
+static char *gpbc2_fields[] = {
"contact",
"name", "type", "hwtype", "duplexname", "hostname",
"loghost", "rm", "rp", "rq", "ka", "pc", "ac", "lpc_acl",
"banner", "location", "contact", "modtime", "modby", "modwith"
};
-static char *aprn_fields[] = {
+static char *gprn_fields[] = {
+ "name",
+ "name", "type", "hwtype", "duplexname", "duplexdefault",
+ "holddefault", "status", "hostname", "loghost", "rm", "rp",
+ "rq", "ka", "pc", "ac", "lpc_acl", "report_list", "banner",
+ "location", "contact", "modtime", "modby", "modwith"
+};
+
+static char *gpbd_fields[] = {
+ "duplexname",
+ "name", "type", "hwtype", "duplexname", "duplexdefault",
+ "holddefault", "status", "hostname", "loghost", "rm", "rp",
+ "rq", "ka", "pc", "ac", "lpc_acl", "report_list", "banner",
+ "location", "contact", "modtime", "modby", "modwith"
+};
+
+static char *gpbe_fields[] = {
+ "hwaddr",
+ "name", "type", "hwtype", "duplexname", "duplexdefault",
+ "holddefault", "status", "hostname", "loghost", "rm", "rp",
+ "rq", "ka", "pc", "ac", "lpc_acl", "report_list", "banner",
+ "location", "contact", "modtime", "modby", "modwith"
+};
+
+static char *gpbh_fields[] = {
+ "hostname",
+ "name", "type", "hwtype", "duplexname", "duplexdefault",
+ "holddefault", "status", "hostname", "loghost", "rm", "rp",
+ "rq", "ka", "pc", "ac", "lpc_acl", "report_list", "banner",
+ "location", "contact", "modtime", "modby", "modwith"
+};
+
+static char *gpbr_fields[] = {
+ "rm",
+ "name", "type", "hwtype", "duplexname", "duplexdefault",
+ "holddefault", "status", "hostname", "loghost", "rm", "rp",
+ "rq", "ka", "pc", "ac", "lpc_acl", "report_list", "banner",
+ "location", "contact", "modtime", "modby", "modwith"
+};
+
+static char *gpbl_fields[] = {
+ "location",
+ "name", "type", "hwtype", "duplexname", "duplexdefault",
+ "holddefault", "status", "hostname", "loghost", "rm", "rp",
+ "rq", "ka", "pc", "ac", "lpc_acl", "report_list", "banner",
+ "location", "contact", "modtime", "modby", "modwith"
+
+};
+
+static char *gpbc_fields[] = {
+ "contact",
+ "name", "type", "hwtype", "duplexname", "duplexdefault",
+ "holddefault", "status", "hostname", "loghost", "rm", "rp",
+ "rq", "ka", "pc", "ac", "lpc_acl", "report_list", "banner",
+ "location", "contact", "modtime", "modby", "modwith"
+};
+
+static char *aprn2_fields[] = {
"printer", "type", "hwtype", "duplexname", "hostname",
"loghost", "rm", "rp", "rq", "ka", "pc", "ac", "lpc_acl",
"banner", "location", "contact",
};
-static struct valobj aprn_valobj[] = {
+static struct valobj aprn2_valobj[] = {
{V_CHAR, 0, PRINTERS_TABLE, "name"},
{V_TYPE, 1, 0, "printertype", 0, MR_TYPE},
{V_TYPE, 2, 0, "printerhwtype", 0, MR_TYPE},
@@ -3418,9 +3475,51 @@
{V_CHAR, 15, PRINTERS_TABLE, "contact"},
};
+static struct validate aprn2_validate = {
+ aprn2_valobj,
+ 16,
+ "name",
+ "name = '%s'",
+ 1,
+ 0,
+ access_printer,
+ setup_aprn,
+ set_modtime,
+};
+
+static char *aprn_fields[] = {
+ "printer", "type", "hwtype", "duplexname", "duplexdefault",
+ "holddefault", "status", "hostname", "loghost", "rm", "rp",
+ "rq", "ka", "pc", "ac", "lpc_acl", "report_list", "banner",
+ "location", "contact",
+};
+
+static struct valobj aprn_valobj[] = {
+ {V_CHAR, 0, PRINTERS_TABLE, "name"},
+ {V_TYPE, 1, 0, "printertype", 0, MR_TYPE},
+ {V_TYPE, 2, 0, "printerhwtype", 0, MR_TYPE},
+ {V_CHAR, 3, PRINTERS_TABLE, "duplexname"},
+ {V_NUM, 4},
+ {V_NUM, 5},
+ {V_NUM, 6},
+ {V_ID, 7, MACHINE_TABLE, "name", "mach_id", MR_MACHINE},
+ {V_ID, 8, MACHINE_TABLE, "name", "mach_id", MR_MACHINE},
+ {V_ID, 9, MACHINE_TABLE, "name", "mach_id", MR_MACHINE},
+ {V_CHAR, 10, PRINTERS_TABLE, "rp"},
+ {V_ID, 11, MACHINE_TABLE, "name", "mach_id", MR_MACHINE},
+ {V_NUM, 12},
+ {V_NUM, 13},
+ {V_ID, 14, LIST_TABLE, "name", "list_id", MR_LIST},
+ {V_ID, 15, LIST_TABLE, "name", "list_id", MR_LIST},
+ {V_ID, 16, LIST_TABLE, "name", "list_id", MR_LIST},
+ {V_NUM, 17},
+ {V_CHAR, 18, PRINTERS_TABLE, "location"},
+ {V_CHAR, 19, PRINTERS_TABLE, "contact"},
+};
+
static struct validate aprn_validate = {
aprn_valobj,
- 16,
+ 20,
"name",
"name = '%s'",
1,
@@ -3430,14 +3529,14 @@
set_modtime,
};
-static char *uprn_fields[] = {
+static char *uprn2_fields[] = {
"printer",
"printer", "type", "hwtype", "duplexname", "hostname",
"loghost", "rm", "rp", "rq", "ka", "pc", "ac", "lpc_acl",
"banner", "location", "contact",
};
-static struct valobj uprn_valobj[] = {
+static struct valobj uprn2_valobj[] = {
{V_CHAR, 0, PRINTERS_TABLE, "name"},
{V_CHAR, 1, PRINTERS_TABLE, "name"},
{V_TYPE, 2, 0, "printertype", 0, MR_TYPE},
@@ -3457,9 +3556,53 @@
{V_CHAR, 16, PRINTERS_TABLE, "contact"},
};
+static struct validate uprn2_validate = {
+ uprn2_valobj,
+ 16,
+ "name",
+ "name = '%s'",
+ 1,
+ 0,
+ access_printer,
+ setup_aprn,
+ set_modtime,
+};
+
+static char *uprn_fields[] = {
+ "printer",
+ "printer", "type", "hwtype", "duplexname", "duplexdefault",
+ "holddefault", "status", "hostname", "loghost", "rm", "rp",
+ "rq", "ka", "pc", "ac", "lpc_acl", "report_list", "banner",
+ "location", "contact",
+};
+
+static struct valobj uprn_valobj[] = {
+ {V_CHAR, 0, PRINTERS_TABLE, "name"},
+ {V_CHAR, 1, PRINTERS_TABLE, "name"},
+ {V_TYPE, 2, 0, "printertype", 0, MR_TYPE},
+ {V_TYPE, 3, 0, "printerhwtype", 0, MR_TYPE},
+ {V_CHAR, 4, PRINTERS_TABLE, "duplexname"},
+ {V_NUM, 5},
+ {V_NUM, 6},
+ {V_NUM, 7},
+ {V_ID, 8, MACHINE_TABLE, "name", "mach_id", MR_MACHINE},
+ {V_ID, 9, MACHINE_TABLE, "name", "mach_id", MR_MACHINE},
+ {V_ID, 10, MACHINE_TABLE, "name", "mach_id", MR_MACHINE},
+ {V_CHAR, 11, PRINTERS_TABLE, "rp"},
+ {V_ID, 12, MACHINE_TABLE, "name", "mach_id", MR_MACHINE},
+ {V_NUM, 13},
+ {V_NUM, 14},
+ {V_ID, 15, LIST_TABLE, "name", "list_id", MR_LIST},
+ {V_ID, 16, LIST_TABLE, "name", "list_id", MR_LIST},
+ {V_ID, 17, LIST_TABLE, "name", "list_id", MR_LIST},
+ {V_NUM, 18},
+ {V_CHAR, 19, PRINTERS_TABLE, "location"},
+ {V_CHAR, 20, PRINTERS_TABLE, "contact"},
+};
+
static struct validate uprn_validate = {
uprn_valobj,
- 16,
+ 20,
"name",
"name = '%s'",
1,
@@ -7304,7 +7447,7 @@
},
{
- /* Q_GPRN - GET_PRINTER */
+ /* Q_GPRN - GET_PRINTER, v2 */
"get_printer",
"gprn",
2,
@@ -7312,7 +7455,7 @@
"pr",
PRINTERS_TABLE,
"pr.name, pr.type, pr.hwtype, pr.duplexname, m1.name, m2.name, m3.name, pr.rp, m4.name, pr.ka, pr.pc, l1.name, l2.name, pr.banner, pr.location, pr.contact, TO_CHAR(pr.modtime, 'DD-mon-YYYY HH24:MI:SS'), pr.modby, pr.modwith FROM printers pr, machine m1, machine m2, machine m3, machine m4, list l1, list l2",
- gprn_fields,
+ gprn2_fields,
19,
"pr.name LIKE '%s' AND m1.mach_id = pr.mach_id AND m2.mach_id = pr.loghost AND m3.mach_id = pr.rm AND m4.mach_id = pr.rq AND l1.list_id = pr.ac AND l2.list_id = pr.lpc_acl",
1,
@@ -7321,7 +7464,25 @@
},
{
- /* Q_GPBD - GET_PRINTER_BY_DUPLEXNAME */
+ /* Q_GPRN - GET_PRINTER, v13 */
+ "get_printer",
+ "gprn",
+ 13,
+ MR_Q_RETRIEVE,
+ "pr",
+ PRINTERS_TABLE,
+ "pr.name, pr.type, pr.hwtype, pr.duplexname, pr.duplexdefault, pr.holddefault, pr.status, m1.name, m2.name, m3.name, pr.rp, m4.name, pr.ka, pr.pc, l1.name, l2.name, l3.name, pr.banner, pr.location, pr.contact, TO_CHAR(pr.modtime, 'DD-mon-YYYY HH24:MI:SS'), pr.modby, pr.modwith FROM printers pr, machine m1, machine m2, machine m3, machine m4, list l1, list l2, list l3",
+ gprn_fields,
+ 23,
+ "pr.name LIKE '%s' AND m1.mach_id = pr.mach_id AND m2.mach_id = pr.loghost AND m3.mach_id = pr.rm AND m4.mach_id = pr.rq AND l1.list_id = pr.ac AND l2.list_id = pr.lpc_acl AND l3.list_id = pr.report_list",
+ 1,
+ "pr.name",
+ &VDfix_modby,
+ },
+
+
+ {
+ /* Q_GPBD - GET_PRINTER_BY_DUPLEXNAME, v2 */
"get_printer_by_duplexname",
"gpbd",
2,
@@ -7329,7 +7490,7 @@
"pr",
PRINTERS_TABLE,
"pr.name, pr.type, pr.hwtype, pr.duplexname, m1.name, m2.name, m3.name, pr.rp, m4.name, pr.ka, pr.pc, l1.name, l2.name, pr.banner, pr.location, pr.contact, TO_CHAR(pr.modtime, 'DD-mon-YYYY HH24:MI:SS'), pr.modby, pr.modwith FROM printers pr, machine m1, machine m2, machine m3, machine m4, list l1, list l2",
- gpbd_fields,
+ gpbd2_fields,
19,
"pr.duplexname LIKE '%s' AND m1.mach_id = pr.mach_id AND m2.mach_id = pr.loghost AND m3.mach_id = pr.rm AND m4.mach_id = pr.rq AND l1.list_id = pr.ac AND l2.list_id = pr.lpc_acl",
1,
@@ -7338,7 +7499,24 @@
},
{
- /* Q_GPBE - GET_PRINTER_BY_ETHERNET */
+ /* Q_GPBD - GET_PRINTER_BY_DUPLEXNAME, v13 */
+ "get_printer_by_duplexname",
+ "gpbd",
+ 13,
+ MR_Q_RETRIEVE,
+ "pr",
+ PRINTERS_TABLE,
+ "pr.name, pr.type, pr.hwtype, pr.duplexname, pr.duplexdefault, pr.holddefault, pr.status, m1.name, m2.name, m3.name, pr.rp, m4.name, pr.ka, pr.pc, l1.name, l2.name, l3.name, pr.banner, pr.location, pr.contact, TO_CHAR(pr.modtime, 'DD-mon-YYYY HH24:MI:SS'), pr.modby, pr.modwith FROM printers pr, machine m1, machine m2, machine m3, machine m4, list l1, list l2, list l3",
+ gpbd_fields,
+ 23,
+ "pr.duplexname LIKE '%s' AND m1.mach_id = pr.mach_id AND m2.mach_id = pr.loghost AND m3.mach_id = pr.rm AND m4.mach_id = pr.rq AND l1.list_id = pr.ac AND l2.list_id = pr.lpc_acl AND l3.list_id = pr.report_list",
+ 1,
+ "pr.name",
+ &VDfix_modby,
+ },
+
+ {
+ /* Q_GPBE - GET_PRINTER_BY_ETHERNET, v2 */
"get_printer_by_ethernet",
"gpbe",
2,
@@ -7346,7 +7524,7 @@
"pr",
PRINTERS_TABLE,
"pr.name, pr.type, pr.hwtype, pr.duplexname, m1.name, m2.name, m3.name, pr.rp, m4.name, pr.ka, pr.pc, l1.name, l2.name, pr.banner, pr.location, pr.contact, TO_CHAR(pr.modtime, 'DD-mon-YYYY HH24:MI:SS'), pr.modby, pr.modwith FROM printers pr, machine m1, machine m2, machine m3, machine m4, list l1, list l2",
- gpbd_fields,
+ gpbd2_fields,
19,
"m1.hwaddr LIKE LOWER('%s') AND m1.mach_id = pr.mach_id AND m2.mach_id = pr.loghost AND m3.mach_id = pr.rm AND m4.mach_id = pr.rq AND l1.list_id = pr.ac AND l2.list_id = pr.lpc_acl",
1,
@@ -7355,7 +7533,24 @@
},
{
- /* Q_GPBH - GET_PRINTER_BY_HOSTNAME */
+ /* Q_GPBE - GET_PRINTER_BY_ETHERNET, v13 */
+ "get_printer_by_ethernet",
+ "gpbe",
+ 13,
+ MR_Q_RETRIEVE,
+ "pr",
+ PRINTERS_TABLE,
+ "pr.name, pr.type, pr.hwtype, pr.duplexname, pr.duplexdefault, pr.holddefault, pr.status, m1.name, m2.name, m3.name, pr.rp, m4.name, pr.ka, pr.pc, l1.name, l2.name, l3.name, pr.banner, pr.location, pr.contact, TO_CHAR(pr.modtime, 'DD-mon-YYYY HH24:MI:SS'), pr.modby, pr.modwith FROM printers pr, machine m1, machine m2, machine m3, machine m4, list l1, list l2, list l3",
+ gpbd_fields,
+ 23,
+ "m1.hwaddr LIKE LOWER('%s') AND m1.mach_id = pr.mach_id AND m2.mach_id = pr.loghost AND m3.mach_id = pr.rm AND m4.mach_id = pr.rq AND l1.list_id = pr.ac AND l2.list_id = pr.lpc_acl AND l3.list_id = pr.report_list",
+ 1,
+ "pr.name",
+ &VDfix_modby,
+ },
+
+ {
+ /* Q_GPBH - GET_PRINTER_BY_HOSTNAME, v2 */
"get_printer_by_hostname",
"gpbh",
2,
@@ -7363,7 +7558,7 @@
"pr",
PRINTERS_TABLE,
"pr.name, pr.type, pr.hwtype, pr.duplexname, m1.name, m2.name, m3.name, pr.rp, m4.name, pr.ka, pr.pc, l1.name, l2.name, pr.banner, pr.location, pr.contact, TO_CHAR(pr.modtime, 'DD-mon-YYYY HH24:MI:SS'), pr.modby, pr.modwith FROM printers pr, machine m1, machine m2, machine m3, machine m4, list l1, list l2",
- gpbh_fields,
+ gpbh2_fields,
19,
"m1.name LIKE UPPER('%s') AND m1.mach_id = pr.mach_id AND m2.mach_id = pr.loghost AND m3.mach_id = pr.rm AND m4.mach_id = pr.rq AND l1.list_id = pr.ac AND l2.list_id = pr.lpc_acl",
1,
@@ -7371,8 +7566,25 @@
&VDfix_modby,
},
+ {
+ /* Q_GPBH - GET_PRINTER_BY_HOSTNAME, v13 */
+ "get_printer_by_hostname",
+ "gpbh",
+ 13,
+ MR_Q_RETRIEVE,
+ "pr",
+ PRINTERS_TABLE,
+ "pr.name, pr.type, pr.hwtype, pr.duplexname, pr.duplexdefault, pr.holddefault, pr.status, m1.name, m2.name, m3.name, pr.rp, m4.name, pr.ka, pr.pc, l1.name, l2.name, l3.name, pr.banner, pr.location, pr.contact, TO_CHAR(pr.modtime, 'DD-mon-YYYY HH24:MI:SS'), pr.modby, pr.modwith FROM printers pr, machine m1, machine m2, machinem3, machine m4, list l1, list l2, list l3",
+ gpbh_fields,
+ 23,
+ "m1.name LIKE UPPER('%s') AND m1.mach_id = pr.mach_id AND m2.mach_id = pr.loghost AND m3.mach_id = pr.rm AND m4.mach_id = pr.rq AND l1.list_id = pr.ac AND l2.list_id = pr.lpc_acl AND l3.list_id = pr.report_list",
+ 1,
+ "pr.name",
+ &VDfix_modby,
+ },
+
{
- /* Q_GPBR - GET_PRINTER_BY_RM */
+ /* Q_GPBR - GET_PRINTER_BY_RM, v2 */
"get_printer_by_rm",
"gpbr",
2,
@@ -7380,7 +7592,7 @@
"pr",
PRINTERS_TABLE,
"pr.name, pr.type, pr.hwtype, pr.duplexname, m1.name, m2.name, m3.name, pr.rp, m4.name, pr.ka, pr.pc, l1.name, l2.name, pr.banner, pr.location, pr.contact, TO_CHAR(pr.modtime, 'DD-mon-YYYY HH24:MI:SS'), pr.modby, pr.modwith FROM printers pr, machine m1, machine m2, machine m3, machine m4, list l1, list l2",
- gpbr_fields,
+ gpbr2_fields,
19,
"m3.name LIKE UPPER('%s') AND m1.mach_id = pr.mach_id AND m2.mach_id = pr.loghost AND m3.mach_id = pr.rm AND m4.mach_id = pr.rq AND l1.list_id = pr.ac AND l2.list_id = pr.lpc_acl",
1,
@@ -7388,8 +7600,25 @@
&VDfix_modby,
},
+ {
+ /* Q_GPBR - GET_PRINTER_BY_RM, v13 */
+ "get_printer_by_rm",
+ "gpbr",
+ 13,
+ MR_Q_RETRIEVE,
+ "pr",
+ PRINTERS_TABLE,
+ "pr.name, pr.type, pr.hwtype, pr.duplexname, pr.duplexdefault, pr.holddefault, pr.status, m1.name, m2.name, m3.name, pr.rp, m4.name, pr.ka, pr.pc, l1.name, l2.name, l3.name, pr.banner, pr.location, pr.contact, TO_CHAR(pr.modtime, 'DD-mon-YYYY HH24:MI:SS'), pr.modby, pr.modwith FROM printers pr, machine m1, machine m2, machinem3, machine m4, list l1, list l2, list l3",
+ gpbr_fields,
+ 23,
+ "m3.name LIKE UPPER('%s') AND m1.mach_id = pr.mach_id AND m2.mach_id = pr.loghost AND m3.mach_id = pr.rm AND m4.mach_id = pr.rq AND l1.list_id = pr.ac AND l2.list_id = pr.lpc_acl AND l3.list_id = pr.report_list",
+ 1,
+ "pr.name",
+ &VDfix_modby,
+ },
+
{
- /* Q_GPBL - GET_PRINTER_BY_LOCATION */
+ /* Q_GPBL - GET_PRINTER_BY_LOCATION, v2 */
"get_printer_by_location",
"gpbl",
2,
@@ -7397,7 +7626,7 @@
"pr",
PRINTERS_TABLE,
"pr.name, pr.type, pr.hwtype, pr.duplexname, m1.name, m2.name, m3.name, pr.rp, m4.name, pr.ka, pr.pc, l1.name, l2.name, pr.banner, pr.location, pr.contact, TO_CHAR(pr.modtime, 'DD-mon-YYYY HH24:MI:SS'), pr.modby, pr.modwith FROM printers pr, machine m1, machine m2, machine m3, machine m4, list l1, list l2",
- gpbl_fields,
+ gpbl2_fields,
19,
"UPPER(pr.location) LIKE UPPER('%s') AND m1.mach_id = pr.mach_id AND m2.mach_id = pr.loghost AND m3.mach_id = pr.rm AND m4.mach_id = pr.rq AND l1.list_id = pr.ac AND l2.list_id = pr.lpc_acl",
1,
@@ -7405,8 +7634,25 @@
&VDfix_modby,
},
+ {
+ /* Q_GPBL - GET_PRINTER_BY_LOCATION, v13 */
+ "get_printer_by_location",
+ "gpbl",
+ 13,
+ MR_Q_RETRIEVE,
+ "pr",
+ PRINTERS_TABLE,
+ "pr.name, pr.type, pr.hwtype, pr.duplexname, pr.duplexdefault, pr.holddefault, pr.status, m1.name, m2.name, m3.name, pr.rp, m4.name, pr.ka, pr.pc, l1.name, l2.name, l3.name, pr.banner, pr.location, pr.contact, TO_CHAR(pr.modtime, 'DD-mon-YYYY HH24:MI:SS'), pr.modby, pr.modwith FROM printers pr, machine m1, machine m2, machinem3, machine m4, list l1, list l2, list l3",
+ gpbl_fields,
+ 23,
+ "UPPER(pr.location) LIKE UPPER('%s') AND m1.mach_id = pr.mach_id AND m2.mach_id = pr.loghost AND m3.mach_id = pr.rm AND m4.mach_id = pr.rq AND l1.list_id = pr.ac AND l2.list_id = pr.lpc_acl AND l3.list_id = pr.report_list",
+ 1,
+ "pr.name",
+ &VDfix_modby,
+ },
+
{
- /* Q_GPBC - GET_PRINTER_BY_CONTACT */
+ /* Q_GPBC - GET_PRINTER_BY_CONTACT, v2 */
"get_printer_by_contact",
"gpbc",
2,
@@ -7414,7 +7660,7 @@
"pr",
PRINTERS_TABLE,
"pr.name, pr.type, pr.hwtype, pr.duplexname, m1.name, m2.name, m3.name, pr.rp, m4.name, pr.ka, pr.pc, l1.name, l2.name, pr.banner, pr.location, pr.contact, TO_CHAR(pr.modtime, 'DD-mon-YYYY HH24:MI:SS'), pr.modby, pr.modwith FROM printers pr, machine m1, machine m2, machine m3, machine m4, list l1, list l2",
- gpbc_fields,
+ gpbc2_fields,
19,
"UPPER(pr.contact) LIKE UPPER('%s') AND m1.mach_id = pr.mach_id AND m2.mach_id = pr.loghost AND m3.mach_id = pr.rm AND m4.mach_id = pr.rq AND l1.list_id = pr.ac AND l2.list_id = pr.lpc_acl",
1,
@@ -7423,7 +7669,24 @@
},
{
- /* Q_APRN - ADD_PRINTER */
+ /* Q_GPBC - GET_PRINTER_BY_CONTACT, v13 */
+ "get_printer_by_contact",
+ "gpbc",
+ 13,
+ MR_Q_RETRIEVE,
+ "pr",
+ PRINTERS_TABLE,
+ "pr.name, pr.type, pr.hwtype, pr.duplexname, pr.duplexdefault, pr.holddefault, pr.status, m1.name, m2.name, m3.name, pr.rp, m4.name, pr.ka, pr.pc, l1.name, l2.name, l3.name, pr.banner, pr.location, pr.contact, TO_CHAR(pr.modtime, 'DD-mon-YYYY HH24:MI:SS'), pr.modby, pr.modwith FROM printers pr, machine m1, machine m2, machinem3, machine m4, list l1, list l2, list l3",
+ gpbc_fields,
+ 23,
+ "UPPER(pr.contact) LIKE UPPER('%s') AND m1.mach_id = pr.mach_id AND m2.mach_id = pr.loghost AND m3.mach_id = pr.rm AND m4.mach_id = pr.rq AND l1.list_id = pr.ac AND l2.list_id = pr.lpc_acl AND l3.list_id = pr.report_list",
+ 1,
+ "pr.name",
+ &VDfix_modby,
+ },
+
+ {
+ /* Q_APRN - ADD_PRINTER, v2 */
"add_printer",
"aprn",
2,
@@ -7431,16 +7694,33 @@
"pr",
PRINTERS_TABLE,
"INTO printers (name, type, hwtype, duplexname, mach_id, loghost, rm, rp, rq, ka, pc, ac, lpc_acl, banner, location, contact) VALUES ('%s', '%s', '%s', NVL('%s', CHR(0)), %d, %d, %d, NVL('%s', CHR(0)), %d, %s, %s, %d, %d, %s, NVL('%s', CHR(0)), NVL('%s', CHR(0)))",
- aprn_fields,
+ aprn2_fields,
16,
0,
0,
NULL,
+ &aprn2_validate,
+ },
+
+ {
+ /* Q_APRN - ADD_PRINTER, v13 */
+ "add_printer",
+ "aprn",
+ 13,
+ MR_Q_APPEND,
+ "pr",
+ PRINTERS_TABLE,
+ "INTO printers (name, type, hwtype, duplexname, duplexdefault, holddefault, status, mach_id, loghost, rm, rp, rq, ka, pc, ac, lpc_acl, report_list, banner, location, contact) VALUES ('%s', '%s', '%s', NVL('%s', CHR(0)), %s, %s, %s, %d, %d, %d, NVL('%s', CHR(0)), %d, %s, %s, %d, %d, %d, %s, NVL('%s', CHR(0)), NVL('%s', CHR(0)))",
+ aprn_fields,
+ 20,
+ 0,
+ 0,
+ NULL,
&aprn_validate,
},
{
- /* Q_UPRN - UPDATE_PRINTER */
+ /* Q_UPRN - UPDATE_PRINTER, v2 */
"update_printer",
"uprn",
2,
@@ -7448,11 +7728,28 @@
"pr",
PRINTERS_TABLE,
"printers SET name = '%s', type = '%s', hwtype = '%s', duplexname = NVL('%s', CHR(0)), mach_id = %d, loghost = %d, rm = %d, rp = NVL('%s', CHR(0)), rq = %d, ka = %s, pc = %s, ac = %d, lpc_acl = %d, banner = %s, location = NVL('%s', CHR(0)), contact = NVL('%s', CHR(0))",
- uprn_fields,
+ uprn2_fields,
16,
"name = '%s'",
1,
NULL,
+ &uprn2_validate,
+ },
+
+ {
+ /* Q_UPRN - UPDATE_PRINTER, v13 */
+ "update_printer",
+ "uprn",
+ 13,
+ MR_Q_UPDATE,
+ "pr",
+ PRINTERS_TABLE,
+ "printers SET name = '%s', type = '%s', hwtype = '%s', duplexname = NVL('%s', CHR(0)), duplexdefault = %s, holddefault = %s, status = %s, mach_id = %d, loghost = %d, rm = %d, rp = NVL('%s', CHR(0)), rq = %d, ka = %s, pc = %s, ac = %d, lpc_acl = %d, report_list = %d, banner = %s, location = NVL('%s', CHR(0)), contact = NVL('%s', CHR(0))",
+ uprn_fields,
+ 20,
+ "name = '%s'",
+ 1,
+ NULL,
&uprn_validate,
},