Red Hat Bugzilla – Bug 455742
Print dialog: should try UDS when fetching PPD for localhost
Last modified: 2008-12-12 04:18:07 EST
Description of problem:
The GTK+ print dialog does not allow the 'Print' button to be clicked when a
printer on the local machine has been selected but CUPS is configured only to
listen on the UNIX domain socket.
Version-Release number of selected component (if applicable):
Steps to Reproduce:
2.Edit /etc/cups/cupsd.conf and comment out the line 'Port 631'.
3.'service cups reload'
4.Start the text editor and try to print
'Print' button disabled for local printers.
'Print' button enabled for all printers.
I commited patch to gtk2 CVS. The version is gtk2-2.12.11-2.
Marek, does the patch work ? If it does, it should be committed upstream too.
It would be good to add a comment explaining whats going on there, though.
Is cupsServer() returning the path to the socket in this case ?
Hi Matthias. The patch works. I'll add a comment to patch soon.
the problem was that the cups_request_ppd() function was connecting directly to printer->hostname, which was parsed from "printer-uri-supported" attribute. But the format of the attribute is "ipp://localhost/printers/*". Therefore it was connecting to localhost not to the socket (/var/run/cups/cups.sock).
Only information I have about the server is its address. So I used similar approach to the one in httpSeparateURI() (for checking whether the uri is file path) and checked presence of '/' in the first character of the string returned by the cupsServer() function.
I committed gtk2-2.12.11-3. This is a little change of cups-unix-domain-socket.patch and add a short comment to the source code.
the cupsServer() returns the path to the socket.