]> git.ipfire.org Git - thirdparty/cups.git/blobdiff - cgi-bin/printers.c
Update svn:keyword properties.
[thirdparty/cups.git] / cgi-bin / printers.c
index f57a4251e6388edf67965353fce7623e79f11832..37b0f552d60f46314b284d5eb282ac8530731029 100644 (file)
@@ -1,9 +1,9 @@
 /*
- * "$Id: printers.c 7940 2008-09-16 00:45:16Z mike $"
+ * "$Id$"
  *
- *   Printer status CGI for the Common UNIX Printing System (CUPS).
+ *   Printer status CGI for CUPS.
  *
- *   Copyright 2007-2008 by Apple Inc.
+ *   Copyright 2007-2012 by Apple Inc.
  *   Copyright 1997-2006 by Easy Software Products.
  *
  *   These coded instructions, statements, and computer programs are the
@@ -148,7 +148,21 @@ main(int  argc,                            /* I - Number of command-line arguments */
   }
   else if (printer)
   {
-    if (!strcmp(op, "start-printer"))
+    if (!*op)
+    {
+      const char *server_port = getenv("SERVER_PORT");
+                                       /* Port number string */
+      int      port = atoi(server_port ? server_port : "0");
+                                       /* Port number */
+      char     uri[1024];              /* URL */
+
+      httpAssembleURIf(HTTP_URI_CODING_ALL, uri, sizeof(uri),
+                      getenv("HTTPS") ? "https" : "http", NULL,
+                      getenv("SERVER_NAME"), port, "/printers/%s", printer);
+
+      printf("Location: %s\n\n", uri);
+    }
+    else if (!strcmp(op, "start-printer"))
       do_printer_op(http, printer, IPP_RESUME_PRINTER,
                     cgiText(_("Resume Printer")));
     else if (!strcmp(op, "stop-printer"))
@@ -160,15 +174,15 @@ main(int  argc,                           /* I - Number of command-line arguments */
       do_printer_op(http, printer, CUPS_REJECT_JOBS, cgiText(_("Reject Jobs")));
     else if (!strcmp(op, "purge-jobs"))
       do_printer_op(http, printer, IPP_PURGE_JOBS, cgiText(_("Purge Jobs")));
-    else if (!strcasecmp(op, "print-self-test-page"))
+    else if (!_cups_strcasecmp(op, "print-self-test-page"))
       cgiPrintCommand(http, printer, "PrintSelfTestPage",
                       cgiText(_("Print Self-Test Page")));
-    else if (!strcasecmp(op, "clean-print-heads"))
+    else if (!_cups_strcasecmp(op, "clean-print-heads"))
       cgiPrintCommand(http, printer, "Clean all",
                       cgiText(_("Clean Print Heads")));
-    else if (!strcasecmp(op, "print-test-page"))
+    else if (!_cups_strcasecmp(op, "print-test-page"))
       cgiPrintTestPage(http, printer);
-    else if (!strcasecmp(op, "move-jobs"))
+    else if (!_cups_strcasecmp(op, "move-jobs"))
       cgiMoveJobs(http, printer, 0);
     else
     {
@@ -252,7 +266,7 @@ do_printer_op(http_t      *http,    /* I - HTTP connection */
   else if (cupsLastError() > IPP_OK_CONFLICT)
   {
     cgiStartHTML(title);
-    cgiShowIPPError(_("Unable to do maintenance command:"));
+    cgiShowIPPError(_("Unable to do maintenance command"));
   }
   else
   {
@@ -383,8 +397,8 @@ show_all_printers(http_t     *http, /* I - Connection to server */
     sprintf(val, "%d", count);
     cgiSetVariable("TOTAL", val);
 
-    if ((var = cgiGetVariable("ORDER")) != NULL)
-      ascending = !strcasecmp(var, "asc");
+    if ((var = cgiGetVariable("ORDER")) != NULL && *var)
+      ascending = !_cups_strcasecmp(var, "asc");
     else
       ascending = 1;
 
@@ -450,7 +464,7 @@ show_all_printers(http_t     *http, /* I - Connection to server */
     * Show the error...
     */
 
-    cgiShowIPPError(_("Unable to get printer list:"));
+    cgiShowIPPError(_("Unable to get printer list"));
   }
 
    cgiEndHTML();
@@ -552,7 +566,7 @@ show_printer(http_t     *http,              /* I - Connection to server */
     */
 
     cgiStartHTML(printer);
-    cgiShowIPPError(_("Unable to get printer status:"));
+    cgiShowIPPError(_("Unable to get printer status"));
   }
 
    cgiEndHTML();
@@ -560,5 +574,5 @@ show_printer(http_t     *http,              /* I - Connection to server */
 
 
 /*
- * End of "$Id: printers.c 7940 2008-09-16 00:45:16Z mike $".
+ * End of "$Id$".
  */