lease-duration not honnored for BrowsePoll configured clients

Jason Czerak jason at czerak.com
Sun Dec 26 19:29:18 PST 2010


I've tried to get some help from the general list with no luck.

http://www.cups.org/newsgroups.php?s21978+gcups.general+v21997+T0

Background:

Based on what I can figure, BrowseTimeout is the idea that if the "server" disappears the queue will remain available on the client nodes until this browsetimeout time frame expires. I have not tried this is a typical "broadcast" environment. My situation has multiple subnets so I've deployed clients with BrowsePoll.

After researching the cups code base I've come to the conclusion that the value I'm really looking for is "lease-duration". this in fact works exactly how I expect. The Class and/or printer sticks around until the desired time frame.

cups-polld.c:

 snprintf(packet, sizeof(packet),
               "%x %x %s \"%s\" \"%s\" \"%s\" lease-duration=%d%s\n",
               type, state, uri, location, info, make_model, interval * 2,
               job_sheets);

cups-polld.c will not allow the lease-duration to be relayed as of 1.4.5.

I'm looking for direction on how to go about fixing this since I'm about 3 days into understand the code base :)

1.Client side fix: bring "browsetimeout" to replace interval * 2
2.Client side fix: Create new directive "BrowsePollTimeout"
3.Hardcode in my desired value and submit this as a bug? :)


3.Server side. As of writing this post, I'm not sure if the lease-duration is being sent on a "CUPS-Get-Printers" from the server. If this is the case, parse this additional data. If it's not, this sounds like more of challenge ATM for me as I'll need to understand the RFC and other stuff.

Does anyone have any suggestions I can work with here? Am I on the right track?

thank you.











More information about the cups mailing list