[26110] in Source-Commits

home help back first fref pref prev next nref lref last post

/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 ]


home help back first fref pref prev next nref lref last post