socket backend pagecounting off by one

Helge Blischke h.blischke at acm.org
Thu Aug 19 10:26:49 PDT 2010


John A.  Murdie wrote:

> I've done some little tests of the SNMP page counting in the 1.4.4 socket
> backend with some HP printers (an HP Color LaserJet 5550dtn, for a start).
> When printing just one page, the difference between the start_count and
> the page_count - see CUPS 1.4.4 socket.c line 440:
> 
> if (have_supplies &&
>       !backendSNMPSupplies(snmp_fd, &(addr->addr), &page_count, NULL) &&
>       page_count > start_count)
>     fprintf(stderr, "PAGE: total %d\n", page_count - start_count);
> 
> is zero, so the "PAGE: total ..." log line is never emitted.
> (Incidentally, I think that page counts of 0 should be recorded.)
> 
> In general, when printing N pages, N - 1 pages are (often?/always?)
> recorded. I think that the reason is that the HP printers take some time
> for the page count to stabilise. If I do place an experimental 'sleep(10)'
> just before the 'after' page_count SNMP code in socket.c, the page count
> is correct. Naturally, I wouldn't want to add a useless delay in the
> socket backend, but some of us do want reliable, actual, per-job page
> counts. I've found that even when these printers report themselves idle
> (hrPrinterStatus == CUPS_TC_idle) the page count is still not stable.
> 
> I will report this as a bug if requested. (The page-counting backend
> wrapper I've been using for years copes with this problem, but I think I
> should use native functionality if it is provided.)
> 
> Addendum:
> 
> I turned on SNMP page counting by correcting snmp.conf to have our
> printers' SNMP get community string:
> 
> Address @LOCAL
> Community ********
> 
> and adding:
> 
> *cupsSNMPSupplies: True
> 
> to the end of the PPD file for the device in question.

If a reliable page count is essentioal - e.g. for billing reasons - I'd 
suggest to insert a filter that uses Ghostscript's nullpage device and a 
dozen line PostScript routine to count the pages (unless Ghostscript is 
involved anyway; e.g. foomatic-rip provides a page count).

Helge





More information about the cups mailing list