[gtk+/gtk-3-14] Prevent empty password request popup for kerberos



commit 378823ba4bf51d38c93c0189ac648d85e436e845
Author: Andre Heinecke <aheinecke intevation de>
Date:   Thu Feb 5 11:14:01 2015 +0100

    Prevent empty password request popup for kerberos
    
        If auth_info_required is only set to "negotiate" the
        request password dialog is shown anyway for each print
        job without any input fields. As the request_password
        dialog only handles username, password and domain.
    
        https://bugzilla.gnome.org/show_bug.cgi?id=669008

 modules/printbackends/cups/gtkprintbackendcups.c |   20 ++++++++++++++++++--
 1 files changed, 18 insertions(+), 2 deletions(-)
---
diff --git a/modules/printbackends/cups/gtkprintbackendcups.c 
b/modules/printbackends/cups/gtkprintbackendcups.c
index dfb8497..b9782c5 100644
--- a/modules/printbackends/cups/gtkprintbackendcups.c
+++ b/modules/printbackends/cups/gtkprintbackendcups.c
@@ -729,8 +729,24 @@ gtk_print_backend_cups_print_stream (GtkPrintBackend         *print_backend,
   ps->job = g_object_ref (job);
   ps->http = http;
 
-  request->need_auth_info = cups_printer->auth_info_required != NULL;
-  request->auth_info_required = g_strdupv (cups_printer->auth_info_required);
+  request->need_auth_info = FALSE;
+  request->auth_info_required = NULL;
+
+  /* Check if auth_info_required is set and if it should be handled.
+   * The cups libraries handle the ticket exchange for "negotiate". */
+  if (cups_printer->auth_info_required != NULL &&
+      g_strv_length (cups_printer->auth_info_required) == 1 &&
+      g_strcmp0 (cups_printer->auth_info_required[0], "negotiate") == 0)
+    {
+      GTK_NOTE (PRINTING,
+                g_print ("CUPS Backend: Ignoring auth-info-required \"%s\"\n",
+                         cups_printer->auth_info_required[0]));
+    }
+  else if (cups_printer->auth_info_required != NULL)
+    {
+      request->need_auth_info = TRUE;
+      request->auth_info_required = g_strdupv (cups_printer->auth_info_required);
+    }
 
   cups_request_execute (GTK_PRINT_BACKEND_CUPS (print_backend),
                         request,


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]