static void hrPrinter_get_OS_entries(void) { int status, more; struct printer myprinter, *pp = &myprinter; init_printer(pp); HRDBG("---->Getting printers ....."); more = firstprinter(pp, &status); if (status) goto errloop; while (more) { do { HRDBG("---->Got printer %s", pp->printer); handle_printer(pp); more = nextprinter(pp, &status); errloop: if (status) syslog(LOG_WARNING, "hrPrinterTable: printcap entry for %s " "has errors, skipping", pp->printer ? pp->printer : "<noname?>"); } while (more && status); } lastprinter(); printer_tick = this_tick; }
/* * Make a pass through the printcap database and start printing any * files left from the last time the machine went down. */ static void startup(void) { int pid, status, more; struct printer myprinter, *pp = &myprinter; more = firstprinter(pp, &status); if (status) goto errloop; while (more) { if (ckqueue(pp) <= 0) { goto next; } if (lflag) syslog(LOG_INFO, "lpd startup: work for %s", pp->printer); if ((pid = fork()) < 0) { syslog(LOG_WARNING, "lpd startup: cannot fork for %s", pp->printer); mcleanup(0); } if (pid == 0) { lastprinter(); printjob(pp); /* NOTREACHED */ } do { next: more = nextprinter(pp, &status); errloop: if (status) syslog(LOG_WARNING, "lpd startup: printcap entry for %s has errors, skipping", pp->printer ? pp->printer : "<noname?>"); } while (more && status); } }