]> Pileus Git - ~andy/gtk/commitdiff
printing: Show Avahi printers on IPv6 network
authorMarek Kasik <mkasik@redhat.com>
Tue, 12 Mar 2013 15:26:37 +0000 (16:26 +0100)
committerMarek Kasik <mkasik@redhat.com>
Wed, 13 Mar 2013 09:54:44 +0000 (10:54 +0100)
Create correct URIs for printers on IPv6 networks.

modules/printbackends/cups/gtkprintbackendcups.c

index 4d095de79a752209156d8f81b26c23b6f0c0cc03..60faad06cc7e92d64b0f99caf3968c1f3d1ac6e6 100644 (file)
@@ -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,