summaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
authorMarek Kasik <mkasik@redhat.com>2013-03-12 16:26:37 +0100
committerMarek Kasik <mkasik@redhat.com>2013-03-13 10:54:44 +0100
commit36d2324891d330d54156558e1405c9a0d7426157 (patch)
tree6d99dbbf15cc1e15ae579be852ebfb00fe3302ed /modules
parentb9e189150bfd62c9e956e29324622058672600f0 (diff)
downloadgtk+-36d2324891d330d54156558e1405c9a0d7426157.tar.gz
printing: Show Avahi printers on IPv6 network
Create correct URIs for printers on IPv6 networks.
Diffstat (limited to 'modules')
-rw-r--r--modules/printbackends/cups/gtkprintbackendcups.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/modules/printbackends/cups/gtkprintbackendcups.c b/modules/printbackends/cups/gtkprintbackendcups.c
index 4d095de79a..60faad06cc 100644
--- a/modules/printbackends/cups/gtkprintbackendcups.c
+++ b/modules/printbackends/cups/gtkprintbackendcups.c
@@ -2533,6 +2533,7 @@ avahi_resolver_found_cb (GaServiceResolver *resolver,
{
GtkPrintBackendCups *backend = GTK_PRINT_BACKEND_CUPS (user_data);
AvahiStringList *item;
+ const gchar *protocol_string;
gchar host[AVAHI_ADDRESS_STR_MAX];
gchar *suffix = NULL;
gchar *printer_uri;
@@ -2546,9 +2547,14 @@ avahi_resolver_found_cb (GaServiceResolver *resolver,
if (suffix)
{
if (g_strcmp0 (type, "_ipp._tcp") == 0)
- printer_uri = g_strdup_printf ("ipp://%s:%u/%s", host, port, suffix);
+ protocol_string = "ipp";
else
- printer_uri = g_strdup_printf ("ipps://%s:%u/%s", host, port, suffix);
+ protocol_string = "ipps";
+
+ if (protocol == GA_PROTOCOL_INET6)
+ printer_uri = g_strdup_printf ("%s://[%s]:%u/%s", protocol_string, host, port, suffix);
+ else
+ printer_uri = g_strdup_printf ("%s://%s:%u/%s", protocol_string, host, port, suffix);
cups_request_avahi_printer_info (printer_uri,
host,