[26115] in Source-Commits

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

Re: /svn/athena r25393 - in trunk/third/moira: clients/eunice

daemon@ATHENA.MIT.EDU (Geoffrey Thomas)
Fri Sep 16 12:14:04 2011

Date: Fri, 16 Sep 2011 12:13:57 -0400 (EDT)
From: Geoffrey Thomas <geofft@MIT.EDU>
To: Jonathan D Reed <jdreed@mit.edu>
cc: source-commits@mit.edu
In-Reply-To: <201109061444.p86Ei3GN030893@drugstore.mit.edu>
Message-ID: <alpine.DEB.2.00.1109161213550.2546@tyger.mit.edu>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed

ACK

-- 
Geoffrey Thomas
geofft@mit.edu

On Tue, 6 Sep 2011, Jonathan D Reed wrote:

> 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