summaryrefslogtreecommitdiff
path: root/backend
diff options
context:
space:
mode:
authormsweet <msweet@a1ca3aef-8c08-0410-bb20-df032aa958be>2008-09-04 17:09:47 +0000
committermsweet <msweet@a1ca3aef-8c08-0410-bb20-df032aa958be>2008-09-04 17:09:47 +0000
commitc5571a1d68de6e20e127c9745aa7a4dbf4e4474d (patch)
tree226d783d59aac71ddd99f3a6504f1905c2a5b334 /backend
parent9a4f8274e930ac2dff201dfb9c7af94e8f444f03 (diff)
Import CUPS 1.4svn-r7908.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@943 a1ca3aef-8c08-0410-bb20-df032aa958be
Diffstat (limited to 'backend')
-rw-r--r--backend/Makefile26
-rw-r--r--backend/dnssd.c (renamed from backend/mdns.c)16
-rw-r--r--backend/ipp.c25
-rw-r--r--backend/runloop.c10
-rw-r--r--backend/snmp-supplies.c44
-rw-r--r--backend/usb-darwin.c4
6 files changed, 79 insertions, 46 deletions
diff --git a/backend/Makefile b/backend/Makefile
index 9c8a96c73..79868f83b 100644
--- a/backend/Makefile
+++ b/backend/Makefile
@@ -17,12 +17,12 @@
include ../Makedefs
-RBACKENDS = ipp lpd $(MDNS)
+RBACKENDS = ipp lpd $(DNSSD_BACKEND)
UBACKENDS = $(PAP) $(LEGACY_BACKENDS) serial snmp socket usb
TARGETS = test1284 testbackend testsupplies \
libbackend.a $(RBACKENDS) $(UBACKENDS)
LIBOBJS = ieee1284.o network.o runloop.o snmp-supplies.o
-OBJS = ipp.o lpd.o mdns.o pap.o parallel.o scsi.o serial.o snmp.o \
+OBJS = ipp.o lpd.o dnssd.o pap.o parallel.o scsi.o serial.o snmp.o \
socket.o test1284.o testbackend.o testsupplies.o usb.o
@@ -52,7 +52,7 @@ unittests:
#
clean:
- $(RM) $(OBJS) $(TARGETS) $(LIBOBJS) http
+ $(RM) $(OBJS) $(TARGETS) $(LIBOBJS) http mdns
#
@@ -168,6 +168,17 @@ libbackend.a: $(LIBOBJS)
#
+# dnssd
+#
+
+dnssd: dnssd.o ../cups/$(LIBCUPS) libbackend.a
+ echo Linking $@...
+ $(CC) $(LDFLAGS) -o dnssd dnssd.o libbackend.a $(LIBS)
+ $(RM) mdns
+ $(LN) dnssd mdns
+
+
+#
# ipp
#
@@ -188,15 +199,6 @@ lpd: lpd.o ../cups/$(LIBCUPS) libbackend.a
#
-# mdns
-#
-
-mdns: mdns.o ../cups/$(LIBCUPS) libbackend.a
- echo Linking $@...
- $(CC) $(LDFLAGS) -o mdns mdns.o libbackend.a $(LIBS)
-
-
-#
# pap
#
diff --git a/backend/mdns.c b/backend/dnssd.c
index 419b12dc3..674bacf80 100644
--- a/backend/mdns.c
+++ b/backend/dnssd.c
@@ -105,6 +105,7 @@ int /* O - Exit status */
main(int argc, /* I - Number of command-line args */
char *argv[]) /* I - Command-line arguments */
{
+ const char *name; /* Backend name */
DNSServiceRef main_ref, /* Main service reference */
fax_ipp_ref, /* IPP fax service reference */
ipp_ref, /* IPP service reference */
@@ -133,11 +134,24 @@ main(int argc, /* I - Number of command-line args */
exec_backend(argv);
else if (argc != 1)
{
- fputs("Usage: mdns job user title copies options [filename(s)]\n", stderr);
+ fprintf(stderr, "Usage: %s job user title copies options [filename(s)]\n",
+ argv[0]);
return (1);
}
/*
+ * Only do discovery when run as "dnssd"...
+ */
+
+ if ((name = strrchr(argv[0], '/')) != NULL)
+ name ++;
+ else
+ name = argv[0];
+
+ if (strcmp(name, "dnssd"))
+ return (0);
+
+ /*
* Create an array to track devices...
*/
diff --git a/backend/ipp.c b/backend/ipp.c
index 5113ac727..636e738fd 100644
--- a/backend/ipp.c
+++ b/backend/ipp.c
@@ -138,6 +138,7 @@ main(int argc, /* I - Number of command-line args */
int version; /* IPP version */
static const char * const pattrs[] =
{ /* Printer attributes we want */
+ "com.apple.print.recoverable-message",
"copies-supported",
"document-format-supported",
"marker-colors",
@@ -1366,6 +1367,7 @@ check_printer_state(
*response; /* IPP response */
static const char * const attrs[] = /* Attributes we want */
{
+ "com.apple.print.recoverable-message",
"marker-colors",
"marker-levels",
"marker-message",
@@ -1601,7 +1603,8 @@ report_printer_state(ipp_t *ipp, /* I - IPP response */
{
int i; /* Looping var */
int count; /* Count of reasons shown... */
- ipp_attribute_t *psm, /* printer-state-message */
+ ipp_attribute_t *caprm, /* com.apple.print.recoverable-message */
+ *psm, /* printer-state-message */
*reasons, /* printer-state-reasons */
*marker; /* marker-* attributes */
const char *reason; /* Current reason */
@@ -1610,6 +1613,7 @@ report_printer_state(ipp_t *ipp, /* I - IPP response */
const char *prefix; /* Prefix for STATE: line */
char state[1024]; /* State string */
cups_lang_t *language; /* Current localization */
+ int saw_caprw; /* Saw com.apple.print.recoverable-warning state */
if ((psm = ippFindAttribute(ipp, "printer-state-message",
@@ -1620,9 +1624,10 @@ report_printer_state(ipp_t *ipp, /* I - IPP response */
IPP_TAG_KEYWORD)) == NULL)
return (0);
- state[0] = '\0';
- prefix = "STATE: ";
- language = cupsLangDefault();
+ saw_caprw = 0;
+ state[0] = '\0';
+ prefix = "STATE: ";
+ language = cupsLangDefault();
for (i = 0, count = 0; i < reasons->num_values; i ++)
{
@@ -1688,6 +1693,8 @@ report_printer_state(ipp_t *ipp, /* I - IPP response */
message = _("Developer almost empty.");
else if (!strncmp(reason, "developer-empty", 15))
message = _("Developer empty!");
+ else if (!strcmp(reason, "com.apple.print.recoverable-warning"))
+ saw_caprw = 1;
else if (strstr(reason, "error") != NULL)
{
message = unknown;
@@ -1711,6 +1718,16 @@ report_printer_state(ipp_t *ipp, /* I - IPP response */
fprintf(stderr, "%s\n", state);
/*
+ * Relay com.apple.print.recoverable-message...
+ */
+
+ if ((caprm = ippFindAttribute(ipp, "com.apple.print.recoverable-message",
+ IPP_TAG_TEXT)) != NULL)
+ fprintf(stderr, "WARNING: %s: %s\n",
+ saw_caprw ? "recoverable" : "recovered",
+ caprm->values[0].string.text);
+
+ /*
* Relay the current marker-* attribute values...
*/
diff --git a/backend/runloop.c b/backend/runloop.c
index 03aa956fe..14dfc494c 100644
--- a/backend/runloop.c
+++ b/backend/runloop.c
@@ -239,7 +239,7 @@ backendRunLoop(
if (errno == ENXIO && offline != 1)
{
- fputs("STATE: +offline-error\n", stderr);
+ fputs("STATE: +offline-report\n", stderr);
_cupsLangPuts(stderr, _("INFO: Printer is currently offline.\n"));
offline = 1;
}
@@ -338,7 +338,7 @@ backendRunLoop(
{
if (paperout != 1)
{
- fputs("STATE: +media-empty-error\n", stderr);
+ fputs("STATE: +media-empty-warning\n", stderr);
_cupsLangPuts(stderr, _("ERROR: Out of paper!\n"));
paperout = 1;
}
@@ -347,7 +347,7 @@ backendRunLoop(
{
if (offline != 1)
{
- fputs("STATE: +offline-error\n", stderr);
+ fputs("STATE: +offline-report\n", stderr);
_cupsLangPuts(stderr, _("INFO: Printer is currently off-line.\n"));
offline = 1;
}
@@ -363,13 +363,13 @@ backendRunLoop(
{
if (paperout)
{
- fputs("STATE: -media-empty-error\n", stderr);
+ fputs("STATE: -media-empty-warning\n", stderr);
paperout = 0;
}
if (offline)
{
- fputs("STATE: -offline-error\n", stderr);
+ fputs("STATE: -offline-report\n", stderr);
_cupsLangPuts(stderr, _("INFO: Printer is now online.\n"));
offline = 0;
}
diff --git a/backend/snmp-supplies.c b/backend/snmp-supplies.c
index 1267d2502..dea84fcf1 100644
--- a/backend/snmp-supplies.c
+++ b/backend/snmp-supplies.c
@@ -194,24 +194,24 @@ backendSNMPSupplies(
(packet.object_value.string[1] & 255);
if (i & CUPS_TC_lowPaper)
- fputs("STATE: +media-low-warning\n", stderr);
+ fputs("STATE: +media-low-report\n", stderr);
else
- fputs("STATE: -media-low-warning\n", stderr);
+ fputs("STATE: -media-low-report\n", stderr);
if (i & (CUPS_TC_noPaper | CUPS_TC_inputTrayEmpty))
- fputs("STATE: +media-empty-error\n", stderr);
+ fputs("STATE: +media-empty-warning\n", stderr);
else
- fputs("STATE: -media-empty-error\n", stderr);
+ fputs("STATE: -media-empty-warning\n", stderr);
if (i & CUPS_TC_lowToner)
- fputs("STATE: +toner-low-warning\n", stderr);
+ fputs("STATE: +toner-low-report\n", stderr);
else
- fputs("STATE: -toner-low-warning\n", stderr);
+ fputs("STATE: -toner-low-report\n", stderr);
if (i & CUPS_TC_noToner)
- fputs("STATE: +toner-empty-error\n", stderr);
+ fputs("STATE: +toner-empty-warning\n", stderr);
else
- fputs("STATE: -toner-empty-error\n", stderr);
+ fputs("STATE: -toner-empty-warning\n", stderr);
if (i & CUPS_TC_doorOpen)
fputs("STATE: +door-open-report\n", stderr);
@@ -219,9 +219,9 @@ backendSNMPSupplies(
fputs("STATE: -door-open-report\n", stderr);
if (i & CUPS_TC_jammed)
- fputs("STATE: +media-jam-error\n", stderr);
+ fputs("STATE: +media-jam-warning\n", stderr);
else
- fputs("STATE: -media-jam-error\n", stderr);
+ fputs("STATE: -media-jam-warning\n", stderr);
if (i & CUPS_TC_offline)
fputs("STATE: +offline-report\n", stderr);
@@ -229,34 +229,34 @@ backendSNMPSupplies(
fputs("STATE: -offline-report\n", stderr);
if (i & (CUPS_TC_serviceRequested | CUPS_TC_overduePreventMaint))
- fputs("STATE: +service-needed-error\n", stderr);
+ fputs("STATE: +service-needed-warning\n", stderr);
else
- fputs("STATE: -service-needed-error\n", stderr);
+ fputs("STATE: -service-needed-warning\n", stderr);
if (i & CUPS_TC_inputTrayMissing)
- fputs("STATE: +input-tray-missing-error\n", stderr);
+ fputs("STATE: +input-tray-missing-warning\n", stderr);
else
- fputs("STATE: -input-tray-missing-error\n", stderr);
+ fputs("STATE: -input-tray-missing-warning\n", stderr);
if (i & CUPS_TC_outputTrayMissing)
- fputs("STATE: +output-tray-missing-error\n", stderr);
+ fputs("STATE: +output-tray-missing-warning\n", stderr);
else
- fputs("STATE: -output-tray-missing-error\n", stderr);
+ fputs("STATE: -output-tray-missing-warning\n", stderr);
if (i & CUPS_TC_markerSupplyMissing)
- fputs("STATE: +marker-supply-missing-error\n", stderr);
+ fputs("STATE: +marker-supply-missing-warning\n", stderr);
else
- fputs("STATE: -marker-supply-missing-error\n", stderr);
+ fputs("STATE: -marker-supply-missing-warning\n", stderr);
if (i & CUPS_TC_outputNearFull)
- fputs("STATE: +output-area-almost-full-warning\n", stderr);
+ fputs("STATE: +output-area-almost-full-report\n", stderr);
else
- fputs("STATE: -output-area-almost-full-warning\n", stderr);
+ fputs("STATE: -output-area-almost-full-report\n", stderr);
if (i & CUPS_TC_outputFull)
- fputs("STATE: +output-area-full-error\n", stderr);
+ fputs("STATE: +output-area-full-warning\n", stderr);
else
- fputs("STATE: -output-area-full-error\n", stderr);
+ fputs("STATE: -output-area-full-warning\n", stderr);
/*
* Get the current printer state...
diff --git a/backend/usb-darwin.c b/backend/usb-darwin.c
index 655273d6c..a780d68be 100644
--- a/backend/usb-darwin.c
+++ b/backend/usb-darwin.c
@@ -1139,7 +1139,7 @@ static Boolean find_device_cb(void *refcon,
if (!keepLooking && g.status_timer != NULL)
{
- fputs("STATE: -offline-error\n", stderr);
+ fputs("STATE: -offline-report\n", stderr);
_cupsLangPuts(stderr, _("INFO: Printer is now online.\n"));
CFRunLoopRemoveTimer(CFRunLoopGetCurrent(), g.status_timer, kCFRunLoopDefaultMode);
CFRelease(g.status_timer);
@@ -1157,7 +1157,7 @@ static Boolean find_device_cb(void *refcon,
static void status_timer_cb(CFRunLoopTimerRef timer,
void *info)
{
- fputs("STATE: +offline-error\n", stderr);
+ fputs("STATE: +offline-report\n", stderr);
_cupsLangPuts(stderr, _("INFO: Printer is offline.\n"));
if (getenv("CLASS") != NULL)