From 19bf71f0641f554a66638d4571248408873f71a1 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Thu, 4 Jan 2007 00:13:19 +0000 Subject: [PATCH] Close the http connection after getting the PPD. 2007-01-03 Matthias Clasen * modules/printbackends/cups/gtkprintbackendcups.c: Close the http connection after getting the PPD. svn path=/branches/gtk-2-10/; revision=17043 --- ChangeLog | 3 +++ modules/printbackends/cups/gtkprintbackendcups.c | 12 +++++++----- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/ChangeLog b/ChangeLog index 7cb88d465b..ecf2a4cc8f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,8 @@ 2007-01-03 Matthias Clasen + * modules/printbackends/cups/gtkprintbackendcups.c: Close + the http connection after getting the PPD. + * gtk/gtkprinteroptionwidget.c (filesave_changed_cb): Fix memory leaks. diff --git a/modules/printbackends/cups/gtkprintbackendcups.c b/modules/printbackends/cups/gtkprintbackendcups.c index a1d99e3849..5964b281cd 100644 --- a/modules/printbackends/cups/gtkprintbackendcups.c +++ b/modules/printbackends/cups/gtkprintbackendcups.c @@ -1193,6 +1193,7 @@ cups_get_printer_list (GtkPrintBackend *backend) typedef struct { GtkPrinterCups *printer; GIOChannel *ppd_io; + http_t *http; } GetPPDData; static void @@ -1200,7 +1201,7 @@ get_ppd_data_free (GetPPDData *data) { GTK_NOTE (PRINTING, g_print ("CUPS Backend: %s\n", G_STRFUNC)); - + httpClose (data->http); g_io_channel_unref (data->ppd_io); g_object_unref (data->printer); g_free (data); @@ -1256,11 +1257,10 @@ cups_request_ppd (GtkPrinter *printer) GTK_NOTE (PRINTING, g_print ("CUPS Backend: %s\n", G_STRFUNC)); - /* FIXME this can return NULL! */ http = httpConnectEncrypt (cups_printer->hostname, cups_printer->port, cupsEncryption ()); - + data = g_new0 (GetPPDData, 1); fd = g_file_open_tmp ("gtkprint_ppd_XXXXXX", @@ -1287,6 +1287,7 @@ cups_request_ppd (GtkPrinter *printer) return; } + data->http = http; fchmod (fd, S_IRUSR | S_IWUSR); data->ppd_io = g_io_channel_unix_new (fd); g_io_channel_set_encoding (data->ppd_io, NULL, NULL); @@ -1295,8 +1296,9 @@ cups_request_ppd (GtkPrinter *printer) data->printer = g_object_ref (printer); resource = g_strdup_printf ("/printers/%s.ppd", - gtk_printer_cups_get_ppd_name (GTK_PRINTER_CUPS(printer))); - request = gtk_cups_request_new (http, + gtk_printer_cups_get_ppd_name (GTK_PRINTER_CUPS (printer))); + + request = gtk_cups_request_new (data->http, GTK_CUPS_GET, 0, data->ppd_io,