[1838] in Moira Commits
/svn/moira r3985 - trunk/moira/server
daemon@ATHENA.MIT.EDU (Garry Zacheiss)
Tue Feb 23 16:00:42 2010
Date: Tue, 23 Feb 2010 16:00:36 -0500
From: Garry Zacheiss <zacheiss@MIT.EDU>
Message-Id: <201002232100.o1NL0aPm007369@drugstore.mit.edu>
To: moira-commits@mit.edu
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Author: zacheiss
Date: 2010-02-23 16:00:36 -0500 (Tue, 23 Feb 2010)
New Revision: 3985
Modified:
trunk/moira/server/qsetup.pc
Log:
SAP queues go to LPRng servers, everything else to some appropriate CUPS server.
Modified: trunk/moira/server/qsetup.pc
===================================================================
--- trunk/moira/server/qsetup.pc 2010-02-18 22:34:45 UTC (rev 3984)
+++ trunk/moira/server/qsetup.pc 2010-02-23 21:00:36 UTC (rev 3985)
@@ -1333,6 +1333,7 @@
EXEC SQL BEGIN DECLARE SECTION;
int mid, usage, count;
char types[STRINGS_STRING_SIZE], *hwaddr, *name, *duplexname, *oldname;
+ char *service;
EXEC SQL END DECLARE SECTION;
/* Check for aprn or uprn. */
@@ -1341,7 +1342,7 @@
else
row = 1;
- if (q->version < 13)
+ if (q->version >= 13)
idx = 3;
name = argv[PRN_NAME + row];
@@ -1392,15 +1393,24 @@
if (!strcmp(name, duplexname))
return MR_NOT_UNIQUE;
- mid = *(int *)argv[PRN_RM + row + idx];
+ mid = *(int *)argv[6 + row + idx];
if (mid == -1)
{
+ if (!strcasecmp(argv[PRN_TYPE + row], "SAP"))
+ service = "PRINT";
+ else if (!strcasecmp(argv[PRN_TYPE + row], "DORM") ||
+ !strcasecmp(argv[PRN_TYPE + row], "CLUSTER"))
+ service = "CUPS-CLUSTER";
+ else
+ service = "CUPS-PRINT";
+
EXEC SQL DECLARE csr_rm CURSOR FOR
SELECT ps.mach_id, s.string FROM printservers ps, strings s
WHERE ps.mach_id IN
- ( SELECT mach_id FROM serverhosts WHERE service = 'PRINT'
+ ( SELECT mach_id FROM serverhosts WHERE service = :service
AND enable = 1 )
AND ps.printer_types = s.string_id;
+
if (dbms_errno)
return mr_errcode;
EXEC SQL OPEN csr_rm;
@@ -1423,7 +1433,7 @@
if (best < 0 || usage < best)
{
best = usage;
- *(int *)argv[PRN_RM + row + idx] = mid;
+ *(int *)argv[6 + row + idx] = mid;
break;
}
}