[26110] in Source-Commits
/svn/athena r25393 - in trunk/third/moira: clients/eunice debian
daemon@ATHENA.MIT.EDU (Jonathan D Reed)
Tue Sep 6 10:44:09 2011
Date: Tue, 6 Sep 2011 10:44:03 -0400
From: Jonathan D Reed <jdreed@MIT.EDU>
Message-Id: <201109061444.p86Ei3GN030893@drugstore.mit.edu>
To: source-commits@mit.edu
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Author: jdreed
Date: 2011-09-06 10:44:03 -0400 (Tue, 06 Sep 2011)
New Revision: 25393
Modified:
trunk/third/moira/clients/eunice/eunice.c
trunk/third/moira/debian/changelog
Log:
In moira:
* Revert eunice.c to Moira r3998 / Debathena r24319 because the
corresponding functionality on the server is not yet available, per
zacheiss
Modified: trunk/third/moira/clients/eunice/eunice.c
===================================================================
--- trunk/third/moira/clients/eunice/eunice.c 2011-08-31 16:15:46 UTC (rev 25392)
+++ trunk/third/moira/clients/eunice/eunice.c 2011-09-06 14:44:03 UTC (rev 25393)
@@ -1,4 +1,4 @@
-/* $Id: eunice.c 4030 2011-03-04 21:01:14Z zacheiss $
+/* $Id: eunice.c 3977 2010-02-12 21:12:04Z zacheiss $
*
* Command line oriented Moira print queue tool.
*
@@ -21,18 +21,13 @@
#include <stdlib.h>
#include <string.h>
-RCSID("$HeadURL: svn+ssh://svn.mit.edu/moira/trunk/moira/clients/eunice/eunice.c $ $Id: eunice.c 4030 2011-03-04 21:01:14Z zacheiss $");
+RCSID("$HeadURL: svn+ssh://svn.mit.edu/moira/trunk/moira/clients/eunice/eunice.c $ $Id: eunice.c 3977 2010-02-12 21:12:04Z zacheiss $");
struct member {
int type;
char *name, *tag;
};
-struct string_list {
- char *string;
- struct string_list *next;
-};
-
const char *deflogserver = "WSLOGGER.MIT.EDU";
/* legacy variables that we need to set regardless */
@@ -44,31 +39,28 @@
/* flags from command line */
int info_flag, verbose, noauth, duplex_default, hold_default;
-int create_flag, delete_flag, rename_flag, ka, banner, update_flag, update_hwaddr_flag;
+int create_flag, setmac, delete_flag, rename_flag, ka, banner, update_flag;
char *lpracl, *lpcacl, *report_list;
char *contact, *newname, *printserver, *type, *hwtype, *mac, *hostname, *queuename;
char *duplexname, *logserver, *location, *realname, *pr_status;
char *queuename, *whoami, *testqueue;
-struct string_list *hwaddr_add_queue, *hwaddr_remove_queue;
-
void usage(char **argv);
int show_printer_info(char *queuename);
int save_printer_info(int argc, char **argv, void *hint);
-int show_hwaddrs(int argc, char **argv, void *hint);
+int save_hwaddr(int argc, char **argv, void *hint);
void recursive_display_list_members(void);
char *get_username(void);
int wrap_mr_query(char *handle, int argc, char **argv,
int (*callback)(int, char **, void *), void *callarg);
void print_query(char *query_name, int argc, char **argv);
int CountArgs(char **info);
-struct string_list *add_to_string_list(struct string_list *old_list, char *s);
static char *states[] = {
"Reserved (0)",
"Active (1)",
- "Active, No IP ACL (2)",
+ "None (2)",
"Deleted (3)"
};
@@ -97,13 +89,13 @@
/* clear all flags & lists */
i = info_flag = verbose = noauth = 0;
- create_flag = delete_flag = update_flag = update_hwaddr_flag = 0;
+ 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;
- hwaddr_add_queue = hwaddr_remove_queue = NULL;
- contact = NULL;
+
+ contact = NULL;
whoami = argv[0];
success = 1;
@@ -293,28 +285,17 @@
else
usage(argv);
}
- else if (argis("ahw", "addhwaddr"))
+ else if (argis("m", "mac"))
{
if (arg - argv < argc - 1)
{
++arg;
- hwaddr_add_queue=add_to_string_list(hwaddr_add_queue, *arg);
+ setmac++;
+ mac = *arg;
}
else
usage(argv);
- update_hwaddr_flag++;
}
- else if (argis("dhw", "delhwaddr"))
- {
- if (arg - argv < argc - 1)
- {
- ++arg;
- hwaddr_remove_queue=add_to_string_list(hwaddr_remove_queue, *arg);
- }
- else
- usage(argv);
- update_hwaddr_flag++;
- }
else if (argis("b", "banner"))
{
update_flag++;
@@ -371,7 +352,7 @@
usage(argv);
- if (!update_flag && !rename_flag && !delete_flag && !create_flag && !update_hwaddr_flag)
+ if (!update_flag && !rename_flag && !delete_flag && !create_flag && !setmac)
info_flag++;
/* fire up Moira */
@@ -601,68 +582,25 @@
if (info_flag)
show_printer_info(queuename);
- /* add hwaddrs if necessary */
- if (hwaddr_add_queue) {
- struct string_list *q = hwaddr_add_queue;
-
- status = wrap_mr_query("get_printer", 1, &queuename, save_printer_info, pargv);
- if (status)
- {
- com_err(whoami, status, "while getting printer information");
- exit(1);
- }
-
- if (hostname == NULL)
- uargv[0] = pargv[PRN_HOSTNAME + 1];
- else
- uargv[0] = hostname;
-
- while(q) {
-
- uargv[1] = q->string;
-
- status = wrap_mr_query("add_host_hwaddr", 2, uargv, NULL, NULL);
+ if (setmac)
+ {
+ status = wrap_mr_query("get_printer", 1, &queuename, save_printer_info, pargv);
if (status)
{
- com_err(whoami, status, "while adding host hardware address");
+ com_err(whoami, status, "while getting printer information");
exit(1);
}
- q = q->next;
+ if (hostname == NULL)
+ uargv[0] = (char *) strdup (pargv[PRN_HOSTNAME + 1]);
+ else
+ uargv[0] = (char *) strdup (hostname);
+ uargv[1] = (char *) strdup (mac);
+ if ((status = wrap_mr_query("update_host_hwaddr", 2, uargv, NULL, NULL)))
+ com_err(whoami, status, "updating ethernet address.");
}
- }
- /* delete hwaddrs if necessary */
- if (hwaddr_remove_queue) {
- struct string_list *q = hwaddr_remove_queue;
- status = wrap_mr_query("get_printer", 1, &queuename, save_printer_info, pargv);
- if (status)
- {
- com_err(whoami, status, "while getting printer information");
- exit(1);
- }
-
- if (hostname == NULL)
- uargv[0] = pargv[PRN_HOSTNAME + 1];
- else
- uargv[0] = hostname;
-
- while(q) {
-
- uargv[1] = q->string;
-
- status = wrap_mr_query("delete_host_hwaddr", 2, uargv, NULL, NULL);
- if (status)
- {
- com_err(whoami, status, "while deleting host hardware address");
- exit(1);
- }
-
- q = q->next;
- }
- }
-
if (delete_flag)
{
status = wrap_mr_query("delete_printer", 1, &queuename,
@@ -686,59 +624,48 @@
#define USAGE_OPTIONS_FORMAT " %-39s%s\n"
fprintf(stderr, "Usage: %s queue [options]\n", argv[0]);
fprintf(stderr, "Options are\n");
- fprintf(stderr, USAGE_OPTIONS_FORMAT, "-v | -verbose",
+ fprintf(stderr, USAGE_OPTIONS_FORMAT, "-v | -verbose",
"-C | -create");
- fprintf(stderr, USAGE_OPTIONS_FORMAT, "-D | -delete",
+ fprintf(stderr, USAGE_OPTIONS_FORMAT, "-D | -delete",
"-R | -rename newname");
- fprintf(stderr, USAGE_OPTIONS_FORMAT, "-i | -info",
+ fprintf(stderr, USAGE_OPTIONS_FORMAT, "-i | -info",
"-L | -location location");
- fprintf(stderr, USAGE_OPTIONS_FORMAT, "-H | -hostname host",
+ fprintf(stderr, USAGE_OPTIONS_FORMAT, "-H | -hostname host",
"-c | -contact contact");
- fprintf(stderr, USAGE_OPTIONS_FORMAT, "-r | -remotename name",
+ fprintf(stderr, USAGE_OPTIONS_FORMAT, "-r | -remotename name",
"-T | -type printer_type");
- fprintf(stderr, USAGE_OPTIONS_FORMAT, "-M | -model model",
+ fprintf(stderr, USAGE_OPTIONS_FORMAT, "-M | -model model",
"-s | -printserver print_server");
- fprintf(stderr, USAGE_OPTIONS_FORMAT, "-K | -kerbauth",
+ fprintf(stderr, USAGE_OPTIONS_FORMAT, "-K | -kerbauth",
"-b | -banner");
- fprintf(stderr, USAGE_OPTIONS_FORMAT, "-NK | -nokerbauth",
+ 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",
+ 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 list");
- fprintf(stderr, USAGE_OPTIONS_FORMAT, "-d | -duplex name",
+ fprintf(stderr, USAGE_OPTIONS_FORMAT, "-d | -duplex name",
"-n | -noauth");
- fprintf(stderr, USAGE_OPTIONS_FORMAT, "-ahw | -addhwaddr hwaddr",
- "-dhw | -delhwaddr hwaddr");
- fprintf(stderr, " %-39s\n" , "-db | -database host[:port]");
+ fprintf(stderr, USAGE_OPTIONS_FORMAT, "-m | -mac hwaddr",
+ "-db | -database host[:port]");
exit(1);
}
-static int show_has_hwaddrs;
-
-int show_hwaddrs(int argc, char **argv, void *hint)
-{
- if(!show_has_hwaddrs++)
- printf("Hardware Addresses: %s", argv[1]);
- else
- printf(", %s", argv[1]);
-
- return MR_CONT;
-}
-
int show_printer_info(char *queuename)
{
+ char hwaddr[20];
char *pargv[PRN_END + 1];
int status, banner, i;
- struct mqelem *elem = NULL;
for (i = 0; i < PRN_END + 1; i++)
pargv[i] = NULL;
+ memset (hwaddr,'\0',sizeof(hwaddr));
+
status = wrap_mr_query("get_printer", 1, &queuename, save_printer_info, pargv);
if (status)
{
@@ -746,30 +673,23 @@
exit (1);
}
+ status = wrap_mr_query("get_host_hwaddr", 1, &pargv[PRN_HOSTNAME + 1],
+ save_hwaddr, &hwaddr);
+
+ if (status)
+ sprintf (hwaddr,"none");
+
banner = atoi(pargv[PRN_BANNER + 1]);
- printf("Printer: %-18s Duplex queue: %-17s Status: %-10s\n", pargv[PRN_NAME + 1],
- *pargv[PRN_DUPLEXNAME + 1] ? pargv[PRN_DUPLEXNAME + 1] : "[none]",
- PrnState(atoi(pargv[PRN_STATUS + 1])));
+ 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\n",
- pargv[PRN_TYPE + 1], pargv[PRN_HWTYPE + 1]);
+ 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]);
-
- show_has_hwaddrs = 0;
- status = wrap_mr_query("get_host_hwaddr_mapping", 1, &pargv[PRN_HOSTNAME + 1], show_hwaddrs, &elem);
- if (status)
- {
- if (status != MR_NO_MATCH)
- com_err(whoami, status, "while getting hardware addresses");
- else
- printf("Hardware Addresses: none\n");
- }
- else
- printf("\n");
-
printf("Printer log host: %s\n", pargv[PRN_LOGHOST + 1]);
printf("Spool host: %s\n", pargv[PRN_RM + 1]);
printf("Remote Printer Name: %-10s Banner page: %s\n", pargv[PRN_RP + 1],
@@ -799,6 +719,13 @@
return MR_CONT;
}
+int save_hwaddr(int argc, char **argv, void *hint)
+{
+ char *p = hint;
+ strcpy(p,argv[0]);
+ return MR_CONT;
+}
+
int wrap_mr_query(char *handle, int argc, char **argv,
int (*callback)(int, char **, void *), void *callarg)
{
@@ -858,13 +785,3 @@
return number;
}
-
-struct string_list *add_to_string_list(struct string_list *old_list, char *s) {
- struct string_list *new_list;
-
- new_list = (struct string_list *)malloc(sizeof(struct string_list *));
- new_list->next = old_list;
- new_list->string = s;
-
- return new_list;
-}
Modified: trunk/third/moira/debian/changelog
===================================================================
--- trunk/third/moira/debian/changelog 2011-08-31 16:15:46 UTC (rev 25392)
+++ trunk/third/moira/debian/changelog 2011-09-06 14:44:03 UTC (rev 25393)
@@ -1,3 +1,11 @@
+debathena-moira (4.0.0-r4048-0debathena2) unstable; urgency=low
+
+ * Revert eunice.c to Moira r3998 / Debathena r24319 because the
+ corresponding functionality on the server is not yet available, per
+ zacheiss
+
+ -- Jonathan Reed <jdreed@mit.edu> Tue, 06 Sep 2011 10:42:55 -0400
+
debathena-moira (4.0.0-r4048-0debathena1) unstable; urgency=low
[ Geoffrey Thomas ]