Bug 455742 - Print dialog: should try UDS when fetching PPD for localhost
Print dialog: should try UDS when fetching PPD for localhost
Product: Fedora
Classification: Fedora
Component: gtk2 (Show other bugs)
All Linux
low Severity low
: ---
: ---
Assigned To: Marek Kašík
Fedora Extras Quality Assurance
Depends On:
  Show dependency treegraph
Reported: 2008-07-17 10:48 EDT by Tim Waugh
Modified: 2008-12-12 04:18 EST (History)
2 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Last Closed: 2008-12-12 04:18:07 EST
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---

Attachments (Terms of Use)

  None (edit)
Description Tim Waugh 2008-07-17 10:48:04 EDT
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):

How reproducible:

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.
Comment 1 Marek Kašík 2008-09-04 09:48:12 EDT
I commited patch to gtk2 CVS. The version is gtk2-2.12.11-2.

Comment 2 Matthias Clasen 2008-09-04 22:31:06 EDT
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 ?
Comment 3 Marek Kašík 2008-09-08 08:36:49 EDT
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.


Comment 4 Marek Kašík 2008-09-08 08:59:21 EDT
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.

Comment 5 Marek Kašík 2008-09-10 03:50:38 EDT
Hi Matthias,
the cupsServer() returns the path to the socket.


Note You need to log in before you can comment on or make changes to this bug.