/*
- * "$Id: parallel.c 6649 2007-07-11 21:46:42Z mike $"
+ * "$Id: parallel.c 7343 2008-02-25 19:02:09Z mike $"
*
* Parallel port backend for the Common UNIX Printing System (CUPS).
*
- * Copyright 2007 by Apple Inc.
+ * Copyright 2007-2008 by Apple Inc.
* Copyright 1997-2007 by Easy Software Products, all rights reserved.
*
* These coded instructions, statements, and computer programs are the
*/
static void list_devices(void);
-static void side_cb(int print_fd, int device_fd, int use_bc);
+static void side_cb(int print_fd, int device_fd, int snmp_fd,
+ http_addr_t *addr, int use_bc);
/*
}
else if (argc < 6 || argc > 7)
{
- fprintf(stderr, _("Usage: %s job-id user title copies options [file]\n"),
- argv[0]);
+ _cupsLangPrintf(stderr,
+ _("Usage: %s job-id user title copies options [file]\n"),
+ argv[0]);
return (CUPS_BACKEND_FAILED);
}
if ((print_fd = open(argv[6], O_RDONLY)) < 0)
{
- perror("ERROR: unable to open print file");
+ _cupsLangPrintf(stderr,
+ _("ERROR: Unable to open print file \"%s\": %s\n"),
+ argv[6], strerror(errno));
return (CUPS_BACKEND_FAILED);
}
* available printer in the class.
*/
- fputs(_("INFO: Unable to contact printer, queuing on next "
- "printer in class...\n"), stderr);
+ _cupsLangPuts(stderr,
+ _("INFO: Unable to contact printer, queuing on next "
+ "printer in class...\n"));
/*
* Sleep 5 seconds to keep the job from requeuing too rapidly...
if (errno == EBUSY)
{
- fputs(_("INFO: Printer busy; will retry in 30 seconds...\n"), stderr);
+ _cupsLangPuts(stderr,
+ _("INFO: Printer busy; will retry in 30 seconds...\n"));
sleep(30);
}
else if (errno == ENXIO || errno == EIO || errno == ENOENT)
{
- fputs(_("INFO: Printer not connected; will retry in 30 seconds...\n"),
- stderr);
+ _cupsLangPuts(stderr,
+ _("INFO: Printer not connected; will retry in 30 "
+ "seconds...\n"));
sleep(30);
}
else
{
- fprintf(stderr, _("ERROR: Unable to open device file \"%s\": %s\n"),
- resource, strerror(errno));
+ _cupsLangPrintf(stderr,
+ _("ERROR: Unable to open device file \"%s\": %s\n"),
+ resource, strerror(errno));
return (CUPS_BACKEND_FAILED);
}
}
lseek(print_fd, 0, SEEK_SET);
}
- tbytes = backendRunLoop(print_fd, device_fd, use_bc, side_cb);
+ tbytes = backendRunLoop(print_fd, device_fd, -1, NULL, use_bc, side_cb);
if (print_fd != 0 && tbytes >= 0)
- fprintf(stderr,
+ _cupsLangPrintf(stderr,
#ifdef HAVE_LONG_LONG
- _("INFO: Sent print file, %lld bytes...\n"),
+ _("INFO: Sent print file, %lld bytes...\n"),
#else
- _("INFO: Sent print file, %ld bytes...\n"),
+ _("INFO: Sent print file, %ld bytes...\n"),
#endif /* HAVE_LONG_LONG */
- CUPS_LLCAST tbytes);
+ CUPS_LLCAST tbytes);
}
/*
char device[255], /* Device filename */
basedevice[255], /* Base device filename for ports */
device_id[1024], /* Device ID string */
- make_model[1024]; /* Make and model */
+ make_model[1024], /* Make and model */
+ info[1024], /* Info string */
+ uri[1024]; /* Device URI */
if (!access("/dev/parallel/", 0))
* Now grab the IEEE 1284 device ID string...
*/
+ snprintf(uri, sizeof(uri), "parallel:%s", device);
+
if (!backendGetDeviceID(fd, device_id, sizeof(device_id),
make_model, sizeof(make_model),
- NULL, NULL, 0))
- printf("direct parallel:%s \"%s\" \"%s LPT #%d\" \"%s\"\n", device,
- make_model, make_model, i + 1, device_id);
+ NULL, uri, sizeof(uri)))
+ {
+ snprintf(info, sizeof(info), "%s LPT #%d", make_model, i + 1);
+ cupsBackendReport("direct", uri, make_model, info, device_id, NULL);
+ }
else
- printf("direct parallel:%s \"Unknown\" \"LPT #%d\"\n", device, i + 1);
+ {
+ snprintf(info, sizeof(info), "LPT #%d", i + 1);
+ cupsBackendReport("direct", uri, NULL, info, NULL, NULL);
+ }
close(fd);
}
printf("direct parallel:%s \"Unknown\" \"Parallel Port #%d\"\n", device, i + 1);
}
}
-#elif defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__) || defined(__DragonFly__)
+#elif defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__) || defined(__DragonFly__) || defined(__FreeBSD_kernel__)
int i; /* Looping var */
int fd; /* File descriptor */
char device[255]; /* Device filename */
*/
static void
-side_cb(int print_fd, /* I - Print file */
- int device_fd, /* I - Device file */
- int use_bc) /* I - Using back-channel? */
+side_cb(int print_fd, /* I - Print file */
+ int device_fd, /* I - Device file */
+ int snmp_fd, /* I - SNMP socket (unused) */
+ http_addr_t *addr, /* I - Device address (unused) */
+ int use_bc) /* I - Using back-channel? */
{
cups_sc_command_t command; /* Request command */
cups_sc_status_t status; /* Request/response status */
int datalen; /* Request/response data size */
+ (void)snmp_fd;
+ (void)addr;
+
datalen = sizeof(data);
if (cupsSideChannelRead(&command, &status, data, &datalen, 1.0))
{
- fputs(_("WARNING: Failed to read side-channel request!\n"), stderr);
+ _cupsLangPuts(stderr, _("WARNING: Failed to read side-channel request!\n"));
return;
}
/*
- * End of "$Id: parallel.c 6649 2007-07-11 21:46:42Z mike $".
+ * End of "$Id: parallel.c 7343 2008-02-25 19:02:09Z mike $".
*/