Author: gad
Date: Mon Apr 30 01:10:13 2012
New Revision: 234826
URL: http://svn.freebsd.org/changeset/base/234826

Log:
  Print out a warning message if a `lpc setstatus' is done when
  the queue is not 'lpc stop'-ed.  In that situation `lpq' will
  not display the status message to the user, and the operator
  may think the queue is already stopped when it is not.
  
  MFC after:    3 weeks

Modified:
  head/usr.sbin/lpr/lpc/cmds.c

Modified: head/usr.sbin/lpr/lpc/cmds.c
==============================================================================
--- head/usr.sbin/lpr/lpc/cmds.c        Mon Apr 30 01:08:18 2012        
(r234825)
+++ head/usr.sbin/lpr/lpc/cmds.c        Mon Apr 30 01:10:13 2012        
(r234826)
@@ -1009,12 +1009,30 @@ setstatus_gi(int argc __unused, char *ar
 void
 setstatus_q(struct printer *pp)
 {
+       struct stat stbuf;
+       int not_shown;
        char lf[MAXPATHLEN];
 
        lock_file_name(pp, lf, sizeof lf);
        printf("%s:\n", pp->printer);
 
        upstat(pp, generic_msg, 1);
+
+       /*
+        * Warn the user if 'lpq' will not display this new status-message.
+        * Note that if lock file does not exist, then the queue is enabled
+        * for both queuing and printing.
+        */
+       not_shown = 1;
+       if (stat(lf, &stbuf) >= 0) {
+               if (stbuf.st_mode & LFM_PRINT_DIS)
+                       not_shown = 0;
+       }
+       if (not_shown) {
+               printf("\tnote: This queue currently has printing enabled,\n");
+               printf("\t    so this -msg will only be shown by 'lpq' if\n");
+               printf("\t    a job is actively printing on it.\n");
+       }
 }
 
 /*
_______________________________________________
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to