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): gtk2-2.12.11-1.fc9.x86_64 How reproducible: 100% Steps to Reproduce: 1.Fresh install. 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 Actual results: 'Print' button disabled for local printers. Expected results: 'Print' button enabled for all printers.
Hi, I commited patch to gtk2 CVS. The version is gtk2-2.12.11-2. Marek
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. Meanwhile: 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. Regards Marek
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. Marek
Hi Matthias, the cupsServer() returns the path to the socket. Marek