Bug 455742

Summary: Print dialog: should try UDS when fetching PPD for localhost
Product: [Fedora] Fedora Reporter: Tim Waugh <twaugh>
Component: gtk2Assignee: Marek Kašík <mkasik>
Status: CLOSED CURRENTRELEASE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: low Docs Contact:
Priority: low    
Version: 9CC: mclasen, poelstra
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2008-12-12 09:18:07 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Tim Waugh 2008-07-17 14:48:04 UTC
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.

Comment 1 Marek Kašík 2008-09-04 13:48:12 UTC
Hi,
I commited patch to gtk2 CVS. The version is gtk2-2.12.11-2.

  Marek

Comment 2 Matthias Clasen 2008-09-05 02:31:06 UTC
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 12:36:49 UTC
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

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

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

  Marek