diff options
author | Matthias Clasen <matthiasc@src.gnome.org> | 2008-09-12 04:23:29 +0000 |
---|---|---|
committer | Matthias Clasen <matthiasc@src.gnome.org> | 2008-09-12 04:23:29 +0000 |
commit | fd46b9d477cce27da5eeda4bf467cbfea33b2895 (patch) | |
tree | e2a2fabacc48e31b052d63a1e84f650e57fc79cd | |
parent | 596bf1c6ad7079af82bce7656bc56f17eb1e4c91 (diff) | |
download | gtk+-fd46b9d477cce27da5eeda4bf467cbfea33b2895.tar.gz |
Bug 551378 - Print dialog: should try UDS when fetching PPD for
localhost
* modules/printbackends/cups/gtkprintbackendcups.c: Add ability
to get PPD file from CUPS through Unix domain socket.
Patch by Marek Kasik
svn path=/branches/gtk-2-12/; revision=21368
-rw-r--r-- | ChangeLog | 11 | ||||
-rw-r--r-- | modules/printbackends/cups/gtkprintbackendcups.c | 12 |
2 files changed, 23 insertions, 0 deletions
@@ -2,6 +2,17 @@ Merged from trunk: + Bug 551378 - Print dialog: should try UDS when fetching PPD for + localhost + + * modules/printbackends/cups/gtkprintbackendcups.c: Add ability + to get PPD file from CUPS through Unix domain socket. + Patch by Marek Kasik + +2008-09-11 Matthias Clasen <mclasen@redhat.com> + + Merged from trunk: + Bug 551567 – DND mark broken * gtk/gtktextbtree.c (redisplay_mark): invalidate mark properly diff --git a/modules/printbackends/cups/gtkprintbackendcups.c b/modules/printbackends/cups/gtkprintbackendcups.c index 20528cbff7..2bec58bb8e 100644 --- a/modules/printbackends/cups/gtkprintbackendcups.c +++ b/modules/printbackends/cups/gtkprintbackendcups.c @@ -1097,6 +1097,7 @@ cups_request_printer_list_cb (GtkPrintBackendCups *cups_backend, char hostname[HTTP_MAX_URI]; /* Hostname */ char resource[HTTP_MAX_URI]; /* Resource name */ int port; /* Port number */ + char *cups_server; /* CUPS server */ list_has_changed = TRUE; cups_printer = gtk_printer_cups_new (printer_name, backend); @@ -1143,9 +1144,20 @@ cups_request_printer_list_cb (GtkPrintBackendCups *cups_backend, } gethostname (uri, sizeof (uri)); + cups_server = g_strdup (cupsServer()); + if (strcasecmp (uri, hostname) == 0) strcpy (hostname, "localhost"); + /* if the cups server is local and listening at a unix domain socket + * then use the socket connection + */ + if ((strstr (hostname, "localhost") != NULL) && + (cups_server[0] == '/')) + strcpy (hostname, cups_server); + + g_free (cups_server); + cups_printer->hostname = g_strdup (hostname); cups_printer->port = port; |