Create correct URIs for printers on IPv6 networks.
{
GtkPrintBackendCups *backend = GTK_PRINT_BACKEND_CUPS (user_data);
AvahiStringList *item;
{
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;
gchar host[AVAHI_ADDRESS_STR_MAX];
gchar *suffix = NULL;
gchar *printer_uri;
if (suffix)
{
if (g_strcmp0 (type, "_ipp._tcp") == 0)
if (suffix)
{
if (g_strcmp0 (type, "_ipp._tcp") == 0)
- printer_uri = g_strdup_printf ("ipp://%s:%u/%s", host, port, suffix);
+ protocol_string = "ipp";
- 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,
cups_request_avahi_printer_info (printer_uri,
host,