diff options
author | msweet <msweet@a1ca3aef-8c08-0410-bb20-df032aa958be> | 2008-09-04 17:09:47 +0000 |
---|---|---|
committer | msweet <msweet@a1ca3aef-8c08-0410-bb20-df032aa958be> | 2008-09-04 17:09:47 +0000 |
commit | c5571a1d68de6e20e127c9745aa7a4dbf4e4474d (patch) | |
tree | 226d783d59aac71ddd99f3a6504f1905c2a5b334 /backend | |
parent | 9a4f8274e930ac2dff201dfb9c7af94e8f444f03 (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/Makefile | 26 | ||||
-rw-r--r-- | backend/dnssd.c (renamed from backend/mdns.c) | 16 | ||||
-rw-r--r-- | backend/ipp.c | 25 | ||||
-rw-r--r-- | backend/runloop.c | 10 | ||||
-rw-r--r-- | backend/snmp-supplies.c | 44 | ||||
-rw-r--r-- | backend/usb-darwin.c | 4 |
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) |