diff options
author | Marek Kasik <mkasik@redhat.com> | 2014-07-11 11:33:30 +0200 |
---|---|---|
committer | Marek Kasik <mkasik@redhat.com> | 2015-05-13 12:28:49 +0200 |
commit | b4f06ca49f5ee23ee10fef51af483bd01211f273 (patch) | |
tree | 4aaa590573ca6889f2da8b67b24a5dc94f24ede8 /modules | |
parent | 36678306a01f7c3e1ca7dca3253f82b79d77248a (diff) | |
download | gtk+-b4f06ca49f5ee23ee10fef51af483bd01211f273.tar.gz |
printing: Check connection to remote CUPS server on correct port
Add parameter for specification of port to gtk_cups_connection_cups_new().
Use default port returned by ippPort() if the given port is lower than 0.
https://bugzilla.gnome.org/show_bug.cgi?id=693738
Diffstat (limited to 'modules')
-rw-r--r-- | modules/printbackends/cups/gtkcupsutils.c | 8 | ||||
-rw-r--r-- | modules/printbackends/cups/gtkcupsutils.h | 3 | ||||
-rw-r--r-- | modules/printbackends/cups/gtkprintbackendcups.c | 8 |
3 files changed, 13 insertions, 6 deletions
diff --git a/modules/printbackends/cups/gtkcupsutils.c b/modules/printbackends/cups/gtkcupsutils.c index da3436efb8..54239cad07 100644 --- a/modules/printbackends/cups/gtkcupsutils.c +++ b/modules/printbackends/cups/gtkcupsutils.c @@ -1522,14 +1522,18 @@ gtk_cups_result_get_error_string (GtkCupsResult *result) * a socket for communication with a CUPS server 'server'. */ GtkCupsConnectionTest * -gtk_cups_connection_test_new (const char *server) +gtk_cups_connection_test_new (const char *server, + const int port) { GtkCupsConnectionTest *result = NULL; gchar *port_str = NULL; result = g_new (GtkCupsConnectionTest, 1); - port_str = g_strdup_printf ("%d", ippPort ()); + if (port >= 0) + port_str = g_strdup_printf ("%d", port); + else + port_str = g_strdup_printf ("%d", ippPort ()); if (server != NULL) result->addrlist = httpAddrGetList (server, AF_UNSPEC, port_str); diff --git a/modules/printbackends/cups/gtkcupsutils.h b/modules/printbackends/cups/gtkcupsutils.h index 55186f590b..500bb4fecf 100644 --- a/modules/printbackends/cups/gtkcupsutils.h +++ b/modules/printbackends/cups/gtkcupsutils.h @@ -187,7 +187,8 @@ GtkCupsErrorType gtk_cups_result_get_error_type (GtkCupsResult * int gtk_cups_result_get_error_status (GtkCupsResult *result); int gtk_cups_result_get_error_code (GtkCupsResult *result); const char * gtk_cups_result_get_error_string (GtkCupsResult *result); -GtkCupsConnectionTest * gtk_cups_connection_test_new (const char *server); +GtkCupsConnectionTest * gtk_cups_connection_test_new (const char *server, + const int port); GtkCupsConnectionState gtk_cups_connection_test_get_state (GtkCupsConnectionTest *test); void gtk_cups_connection_test_free (GtkCupsConnectionTest *test); diff --git a/modules/printbackends/cups/gtkprintbackendcups.c b/modules/printbackends/cups/gtkprintbackendcups.c index 683410ee40..be14027074 100644 --- a/modules/printbackends/cups/gtkprintbackendcups.c +++ b/modules/printbackends/cups/gtkprintbackendcups.c @@ -3609,7 +3609,7 @@ cups_get_printer_list (GtkPrintBackend *backend) cups_backend = GTK_PRINT_BACKEND_CUPS (backend); if (cups_backend->cups_connection_test == NULL) - cups_backend->cups_connection_test = gtk_cups_connection_test_new (NULL); + cups_backend->cups_connection_test = gtk_cups_connection_test_new (NULL, -1); if (cups_backend->list_printers_poll == 0) { @@ -4019,7 +4019,7 @@ cups_get_default_printer (GtkPrintBackendCups *backend) cups_backend = backend; if (cups_backend->cups_connection_test == NULL) - cups_backend->cups_connection_test = gtk_cups_connection_test_new (NULL); + cups_backend->cups_connection_test = gtk_cups_connection_test_new (NULL, -1); if (cups_backend->default_printer_poll == 0) { @@ -4161,7 +4161,9 @@ cups_printer_request_details (GtkPrinter *printer) { if (cups_printer->get_remote_ppd_poll == 0) { - cups_printer->remote_cups_connection_test = gtk_cups_connection_test_new (cups_printer->hostname); + cups_printer->remote_cups_connection_test = + gtk_cups_connection_test_new (cups_printer->hostname, + cups_printer->port); if (cups_request_ppd (printer)) { |