libpurple/purple-gio.c

Wed, 30 May 2018 16:15:25 -0500

author
Mike Ruprecht <cmaiku@gmail.com>
date
Wed, 30 May 2018 16:15:25 -0500
changeset 39314
520f77e2ec45
parent 38137
6ea02c2ccb05
child 40341
ae0175720477
permissions
-rw-r--r--

Drop tls-certificate.[ch] and tls-certificate-info.[ch]

glib-networking >= 2.57.1 uses system certificates by default.
Servers *should* have a proper certificate, and people with
self-signed ones *should* be able to add them to their system.
Being that exceptions to this are extreme edge cases, it *should*
be fine to just use the system certificate store and not worry
about trying to manage certificate trust ourselves. If it turns
out this is needed, we can always add support later, potentially
via a plugin. To that end, this patch drops libpurple's certificate
parsing and trust management code.

37956
21cffc3446a0 purple-gio: Add purple-gio.[ch] containing purple_gio_graceful_close()
Mike Ruprecht <cmaiku@gmail.com>
parents:
diff changeset
1 /*
21cffc3446a0 purple-gio: Add purple-gio.[ch] containing purple_gio_graceful_close()
Mike Ruprecht <cmaiku@gmail.com>
parents:
diff changeset
2 *
21cffc3446a0 purple-gio: Add purple-gio.[ch] containing purple_gio_graceful_close()
Mike Ruprecht <cmaiku@gmail.com>
parents:
diff changeset
3 * purple
21cffc3446a0 purple-gio: Add purple-gio.[ch] containing purple_gio_graceful_close()
Mike Ruprecht <cmaiku@gmail.com>
parents:
diff changeset
4 *
21cffc3446a0 purple-gio: Add purple-gio.[ch] containing purple_gio_graceful_close()
Mike Ruprecht <cmaiku@gmail.com>
parents:
diff changeset
5 * Purple is the legal property of its developers, whose names are too numerous
21cffc3446a0 purple-gio: Add purple-gio.[ch] containing purple_gio_graceful_close()
Mike Ruprecht <cmaiku@gmail.com>
parents:
diff changeset
6 * to list here. Please refer to the COPYRIGHT file distributed with this
21cffc3446a0 purple-gio: Add purple-gio.[ch] containing purple_gio_graceful_close()
Mike Ruprecht <cmaiku@gmail.com>
parents:
diff changeset
7 * source distribution.
21cffc3446a0 purple-gio: Add purple-gio.[ch] containing purple_gio_graceful_close()
Mike Ruprecht <cmaiku@gmail.com>
parents:
diff changeset
8 *
21cffc3446a0 purple-gio: Add purple-gio.[ch] containing purple_gio_graceful_close()
Mike Ruprecht <cmaiku@gmail.com>
parents:
diff changeset
9 * This program is free software; you can redistribute it and/or modify
21cffc3446a0 purple-gio: Add purple-gio.[ch] containing purple_gio_graceful_close()
Mike Ruprecht <cmaiku@gmail.com>
parents:
diff changeset
10 * it under the terms of the GNU General Public License as published by
21cffc3446a0 purple-gio: Add purple-gio.[ch] containing purple_gio_graceful_close()
Mike Ruprecht <cmaiku@gmail.com>
parents:
diff changeset
11 * the Free Software Foundation; either version 2 of the License, or
21cffc3446a0 purple-gio: Add purple-gio.[ch] containing purple_gio_graceful_close()
Mike Ruprecht <cmaiku@gmail.com>
parents:
diff changeset
12 * (at your option) any later version.
21cffc3446a0 purple-gio: Add purple-gio.[ch] containing purple_gio_graceful_close()
Mike Ruprecht <cmaiku@gmail.com>
parents:
diff changeset
13 *
21cffc3446a0 purple-gio: Add purple-gio.[ch] containing purple_gio_graceful_close()
Mike Ruprecht <cmaiku@gmail.com>
parents:
diff changeset
14 * This program is distributed in the hope that it will be useful,
21cffc3446a0 purple-gio: Add purple-gio.[ch] containing purple_gio_graceful_close()
Mike Ruprecht <cmaiku@gmail.com>
parents:
diff changeset
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
21cffc3446a0 purple-gio: Add purple-gio.[ch] containing purple_gio_graceful_close()
Mike Ruprecht <cmaiku@gmail.com>
parents:
diff changeset
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21cffc3446a0 purple-gio: Add purple-gio.[ch] containing purple_gio_graceful_close()
Mike Ruprecht <cmaiku@gmail.com>
parents:
diff changeset
17 * GNU General Public License for more details.
21cffc3446a0 purple-gio: Add purple-gio.[ch] containing purple_gio_graceful_close()
Mike Ruprecht <cmaiku@gmail.com>
parents:
diff changeset
18 *
21cffc3446a0 purple-gio: Add purple-gio.[ch] containing purple_gio_graceful_close()
Mike Ruprecht <cmaiku@gmail.com>
parents:
diff changeset
19 * You should have received a copy of the GNU General Public License
21cffc3446a0 purple-gio: Add purple-gio.[ch] containing purple_gio_graceful_close()
Mike Ruprecht <cmaiku@gmail.com>
parents:
diff changeset
20 * along with this program; if not, write to the Free Software
21cffc3446a0 purple-gio: Add purple-gio.[ch] containing purple_gio_graceful_close()
Mike Ruprecht <cmaiku@gmail.com>
parents:
diff changeset
21 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
21cffc3446a0 purple-gio: Add purple-gio.[ch] containing purple_gio_graceful_close()
Mike Ruprecht <cmaiku@gmail.com>
parents:
diff changeset
22 */
21cffc3446a0 purple-gio: Add purple-gio.[ch] containing purple_gio_graceful_close()
Mike Ruprecht <cmaiku@gmail.com>
parents:
diff changeset
23
21cffc3446a0 purple-gio: Add purple-gio.[ch] containing purple_gio_graceful_close()
Mike Ruprecht <cmaiku@gmail.com>
parents:
diff changeset
24 #include "internal.h"
37962
13e2a9fcbddd purple-gio: Add purple_gio_socket_client_new() helper function
Mike Ruprecht <cmaiku@gmail.com>
parents: 37956
diff changeset
25 #include "proxy.h"
37956
21cffc3446a0 purple-gio: Add purple-gio.[ch] containing purple_gio_graceful_close()
Mike Ruprecht <cmaiku@gmail.com>
parents:
diff changeset
26 #include "purple-gio.h"
21cffc3446a0 purple-gio: Add purple-gio.[ch] containing purple_gio_graceful_close()
Mike Ruprecht <cmaiku@gmail.com>
parents:
diff changeset
27
21cffc3446a0 purple-gio: Add purple-gio.[ch] containing purple_gio_graceful_close()
Mike Ruprecht <cmaiku@gmail.com>
parents:
diff changeset
28 typedef struct {
21cffc3446a0 purple-gio: Add purple-gio.[ch] containing purple_gio_graceful_close()
Mike Ruprecht <cmaiku@gmail.com>
parents:
diff changeset
29 GIOStream *stream;
21cffc3446a0 purple-gio: Add purple-gio.[ch] containing purple_gio_graceful_close()
Mike Ruprecht <cmaiku@gmail.com>
parents:
diff changeset
30 GInputStream *input;
21cffc3446a0 purple-gio: Add purple-gio.[ch] containing purple_gio_graceful_close()
Mike Ruprecht <cmaiku@gmail.com>
parents:
diff changeset
31 GOutputStream *output;
21cffc3446a0 purple-gio: Add purple-gio.[ch] containing purple_gio_graceful_close()
Mike Ruprecht <cmaiku@gmail.com>
parents:
diff changeset
32 } GracefulCloseData;
21cffc3446a0 purple-gio: Add purple-gio.[ch] containing purple_gio_graceful_close()
Mike Ruprecht <cmaiku@gmail.com>
parents:
diff changeset
33
21cffc3446a0 purple-gio: Add purple-gio.[ch] containing purple_gio_graceful_close()
Mike Ruprecht <cmaiku@gmail.com>
parents:
diff changeset
34 static gboolean
21cffc3446a0 purple-gio: Add purple-gio.[ch] containing purple_gio_graceful_close()
Mike Ruprecht <cmaiku@gmail.com>
parents:
diff changeset
35 graceful_close_cb(gpointer user_data)
21cffc3446a0 purple-gio: Add purple-gio.[ch] containing purple_gio_graceful_close()
Mike Ruprecht <cmaiku@gmail.com>
parents:
diff changeset
36 {
21cffc3446a0 purple-gio: Add purple-gio.[ch] containing purple_gio_graceful_close()
Mike Ruprecht <cmaiku@gmail.com>
parents:
diff changeset
37 GracefulCloseData *data = user_data;
21cffc3446a0 purple-gio: Add purple-gio.[ch] containing purple_gio_graceful_close()
Mike Ruprecht <cmaiku@gmail.com>
parents:
diff changeset
38 GError *error = NULL;
21cffc3446a0 purple-gio: Add purple-gio.[ch] containing purple_gio_graceful_close()
Mike Ruprecht <cmaiku@gmail.com>
parents:
diff changeset
39
21cffc3446a0 purple-gio: Add purple-gio.[ch] containing purple_gio_graceful_close()
Mike Ruprecht <cmaiku@gmail.com>
parents:
diff changeset
40 if (g_input_stream_has_pending(data->input) ||
21cffc3446a0 purple-gio: Add purple-gio.[ch] containing purple_gio_graceful_close()
Mike Ruprecht <cmaiku@gmail.com>
parents:
diff changeset
41 g_output_stream_has_pending(data->output)) {
21cffc3446a0 purple-gio: Add purple-gio.[ch] containing purple_gio_graceful_close()
Mike Ruprecht <cmaiku@gmail.com>
parents:
diff changeset
42 /* Has pending operations. Not ready to close yet.
21cffc3446a0 purple-gio: Add purple-gio.[ch] containing purple_gio_graceful_close()
Mike Ruprecht <cmaiku@gmail.com>
parents:
diff changeset
43 * Try again later.
21cffc3446a0 purple-gio: Add purple-gio.[ch] containing purple_gio_graceful_close()
Mike Ruprecht <cmaiku@gmail.com>
parents:
diff changeset
44 */
21cffc3446a0 purple-gio: Add purple-gio.[ch] containing purple_gio_graceful_close()
Mike Ruprecht <cmaiku@gmail.com>
parents:
diff changeset
45 return G_SOURCE_CONTINUE;
21cffc3446a0 purple-gio: Add purple-gio.[ch] containing purple_gio_graceful_close()
Mike Ruprecht <cmaiku@gmail.com>
parents:
diff changeset
46 }
21cffc3446a0 purple-gio: Add purple-gio.[ch] containing purple_gio_graceful_close()
Mike Ruprecht <cmaiku@gmail.com>
parents:
diff changeset
47
21cffc3446a0 purple-gio: Add purple-gio.[ch] containing purple_gio_graceful_close()
Mike Ruprecht <cmaiku@gmail.com>
parents:
diff changeset
48 /* Finally can gracefully close */
21cffc3446a0 purple-gio: Add purple-gio.[ch] containing purple_gio_graceful_close()
Mike Ruprecht <cmaiku@gmail.com>
parents:
diff changeset
49
38137
6ea02c2ccb05 purple-gio: purple_gio_graceful_close(): Handle NULL arguments sanely
Mike Ruprecht <cmaiku@gmail.com>
parents: 37965
diff changeset
50 /* Close input stream, from wrapper or GIOStream */
6ea02c2ccb05 purple-gio: purple_gio_graceful_close(): Handle NULL arguments sanely
Mike Ruprecht <cmaiku@gmail.com>
parents: 37965
diff changeset
51 if (!g_input_stream_close(data->input, NULL, &error)) {
37956
21cffc3446a0 purple-gio: Add purple-gio.[ch] containing purple_gio_graceful_close()
Mike Ruprecht <cmaiku@gmail.com>
parents:
diff changeset
52 purple_debug_warning("gio",
21cffc3446a0 purple-gio: Add purple-gio.[ch] containing purple_gio_graceful_close()
Mike Ruprecht <cmaiku@gmail.com>
parents:
diff changeset
53 "Error closing input stream: %s",
21cffc3446a0 purple-gio: Add purple-gio.[ch] containing purple_gio_graceful_close()
Mike Ruprecht <cmaiku@gmail.com>
parents:
diff changeset
54 error->message);
21cffc3446a0 purple-gio: Add purple-gio.[ch] containing purple_gio_graceful_close()
Mike Ruprecht <cmaiku@gmail.com>
parents:
diff changeset
55 g_clear_error(&error);
21cffc3446a0 purple-gio: Add purple-gio.[ch] containing purple_gio_graceful_close()
Mike Ruprecht <cmaiku@gmail.com>
parents:
diff changeset
56 }
21cffc3446a0 purple-gio: Add purple-gio.[ch] containing purple_gio_graceful_close()
Mike Ruprecht <cmaiku@gmail.com>
parents:
diff changeset
57
21cffc3446a0 purple-gio: Add purple-gio.[ch] containing purple_gio_graceful_close()
Mike Ruprecht <cmaiku@gmail.com>
parents:
diff changeset
58 g_clear_object(&data->input);
21cffc3446a0 purple-gio: Add purple-gio.[ch] containing purple_gio_graceful_close()
Mike Ruprecht <cmaiku@gmail.com>
parents:
diff changeset
59
38137
6ea02c2ccb05 purple-gio: purple_gio_graceful_close(): Handle NULL arguments sanely
Mike Ruprecht <cmaiku@gmail.com>
parents: 37965
diff changeset
60 /* Close output stream, from wrapper or GIOStream */
6ea02c2ccb05 purple-gio: purple_gio_graceful_close(): Handle NULL arguments sanely
Mike Ruprecht <cmaiku@gmail.com>
parents: 37965
diff changeset
61 if (!g_output_stream_close(data->output, NULL, &error)) {
37956
21cffc3446a0 purple-gio: Add purple-gio.[ch] containing purple_gio_graceful_close()
Mike Ruprecht <cmaiku@gmail.com>
parents:
diff changeset
62 purple_debug_warning("gio",
21cffc3446a0 purple-gio: Add purple-gio.[ch] containing purple_gio_graceful_close()
Mike Ruprecht <cmaiku@gmail.com>
parents:
diff changeset
63 "Error closing output stream: %s",
21cffc3446a0 purple-gio: Add purple-gio.[ch] containing purple_gio_graceful_close()
Mike Ruprecht <cmaiku@gmail.com>
parents:
diff changeset
64 error->message);
21cffc3446a0 purple-gio: Add purple-gio.[ch] containing purple_gio_graceful_close()
Mike Ruprecht <cmaiku@gmail.com>
parents:
diff changeset
65 g_clear_error(&error);
21cffc3446a0 purple-gio: Add purple-gio.[ch] containing purple_gio_graceful_close()
Mike Ruprecht <cmaiku@gmail.com>
parents:
diff changeset
66 }
21cffc3446a0 purple-gio: Add purple-gio.[ch] containing purple_gio_graceful_close()
Mike Ruprecht <cmaiku@gmail.com>
parents:
diff changeset
67
21cffc3446a0 purple-gio: Add purple-gio.[ch] containing purple_gio_graceful_close()
Mike Ruprecht <cmaiku@gmail.com>
parents:
diff changeset
68 g_clear_object(&data->output);
21cffc3446a0 purple-gio: Add purple-gio.[ch] containing purple_gio_graceful_close()
Mike Ruprecht <cmaiku@gmail.com>
parents:
diff changeset
69
21cffc3446a0 purple-gio: Add purple-gio.[ch] containing purple_gio_graceful_close()
Mike Ruprecht <cmaiku@gmail.com>
parents:
diff changeset
70 /* Close io stream */
21cffc3446a0 purple-gio: Add purple-gio.[ch] containing purple_gio_graceful_close()
Mike Ruprecht <cmaiku@gmail.com>
parents:
diff changeset
71 if (!g_io_stream_close(data->stream, NULL, &error)) {
21cffc3446a0 purple-gio: Add purple-gio.[ch] containing purple_gio_graceful_close()
Mike Ruprecht <cmaiku@gmail.com>
parents:
diff changeset
72 purple_debug_warning("gio",
21cffc3446a0 purple-gio: Add purple-gio.[ch] containing purple_gio_graceful_close()
Mike Ruprecht <cmaiku@gmail.com>
parents:
diff changeset
73 "Error closing stream: %s",
21cffc3446a0 purple-gio: Add purple-gio.[ch] containing purple_gio_graceful_close()
Mike Ruprecht <cmaiku@gmail.com>
parents:
diff changeset
74 error->message);
21cffc3446a0 purple-gio: Add purple-gio.[ch] containing purple_gio_graceful_close()
Mike Ruprecht <cmaiku@gmail.com>
parents:
diff changeset
75 g_clear_error(&error);
21cffc3446a0 purple-gio: Add purple-gio.[ch] containing purple_gio_graceful_close()
Mike Ruprecht <cmaiku@gmail.com>
parents:
diff changeset
76 }
21cffc3446a0 purple-gio: Add purple-gio.[ch] containing purple_gio_graceful_close()
Mike Ruprecht <cmaiku@gmail.com>
parents:
diff changeset
77
21cffc3446a0 purple-gio: Add purple-gio.[ch] containing purple_gio_graceful_close()
Mike Ruprecht <cmaiku@gmail.com>
parents:
diff changeset
78 g_clear_object(&data->stream);
21cffc3446a0 purple-gio: Add purple-gio.[ch] containing purple_gio_graceful_close()
Mike Ruprecht <cmaiku@gmail.com>
parents:
diff changeset
79
21cffc3446a0 purple-gio: Add purple-gio.[ch] containing purple_gio_graceful_close()
Mike Ruprecht <cmaiku@gmail.com>
parents:
diff changeset
80 /* Clean up */
21cffc3446a0 purple-gio: Add purple-gio.[ch] containing purple_gio_graceful_close()
Mike Ruprecht <cmaiku@gmail.com>
parents:
diff changeset
81 g_free(data);
21cffc3446a0 purple-gio: Add purple-gio.[ch] containing purple_gio_graceful_close()
Mike Ruprecht <cmaiku@gmail.com>
parents:
diff changeset
82 return G_SOURCE_REMOVE;
21cffc3446a0 purple-gio: Add purple-gio.[ch] containing purple_gio_graceful_close()
Mike Ruprecht <cmaiku@gmail.com>
parents:
diff changeset
83 }
21cffc3446a0 purple-gio: Add purple-gio.[ch] containing purple_gio_graceful_close()
Mike Ruprecht <cmaiku@gmail.com>
parents:
diff changeset
84
21cffc3446a0 purple-gio: Add purple-gio.[ch] containing purple_gio_graceful_close()
Mike Ruprecht <cmaiku@gmail.com>
parents:
diff changeset
85 void
21cffc3446a0 purple-gio: Add purple-gio.[ch] containing purple_gio_graceful_close()
Mike Ruprecht <cmaiku@gmail.com>
parents:
diff changeset
86 purple_gio_graceful_close(GIOStream *stream,
21cffc3446a0 purple-gio: Add purple-gio.[ch] containing purple_gio_graceful_close()
Mike Ruprecht <cmaiku@gmail.com>
parents:
diff changeset
87 GInputStream *input, GOutputStream *output)
21cffc3446a0 purple-gio: Add purple-gio.[ch] containing purple_gio_graceful_close()
Mike Ruprecht <cmaiku@gmail.com>
parents:
diff changeset
88 {
21cffc3446a0 purple-gio: Add purple-gio.[ch] containing purple_gio_graceful_close()
Mike Ruprecht <cmaiku@gmail.com>
parents:
diff changeset
89 GracefulCloseData *data;
21cffc3446a0 purple-gio: Add purple-gio.[ch] containing purple_gio_graceful_close()
Mike Ruprecht <cmaiku@gmail.com>
parents:
diff changeset
90
21cffc3446a0 purple-gio: Add purple-gio.[ch] containing purple_gio_graceful_close()
Mike Ruprecht <cmaiku@gmail.com>
parents:
diff changeset
91 g_return_if_fail(G_IS_IO_STREAM(stream));
21cffc3446a0 purple-gio: Add purple-gio.[ch] containing purple_gio_graceful_close()
Mike Ruprecht <cmaiku@gmail.com>
parents:
diff changeset
92 g_return_if_fail(input == NULL || G_IS_INPUT_STREAM(input));
21cffc3446a0 purple-gio: Add purple-gio.[ch] containing purple_gio_graceful_close()
Mike Ruprecht <cmaiku@gmail.com>
parents:
diff changeset
93 g_return_if_fail(output == NULL || G_IS_OUTPUT_STREAM(output));
21cffc3446a0 purple-gio: Add purple-gio.[ch] containing purple_gio_graceful_close()
Mike Ruprecht <cmaiku@gmail.com>
parents:
diff changeset
94
21cffc3446a0 purple-gio: Add purple-gio.[ch] containing purple_gio_graceful_close()
Mike Ruprecht <cmaiku@gmail.com>
parents:
diff changeset
95 data = g_new(GracefulCloseData, 1);
21cffc3446a0 purple-gio: Add purple-gio.[ch] containing purple_gio_graceful_close()
Mike Ruprecht <cmaiku@gmail.com>
parents:
diff changeset
96 data->stream = g_object_ref(stream);
38137
6ea02c2ccb05 purple-gio: purple_gio_graceful_close(): Handle NULL arguments sanely
Mike Ruprecht <cmaiku@gmail.com>
parents: 37965
diff changeset
97
6ea02c2ccb05 purple-gio: purple_gio_graceful_close(): Handle NULL arguments sanely
Mike Ruprecht <cmaiku@gmail.com>
parents: 37965
diff changeset
98 if (input == NULL)
6ea02c2ccb05 purple-gio: purple_gio_graceful_close(): Handle NULL arguments sanely
Mike Ruprecht <cmaiku@gmail.com>
parents: 37965
diff changeset
99 input = g_io_stream_get_input_stream(stream);
37956
21cffc3446a0 purple-gio: Add purple-gio.[ch] containing purple_gio_graceful_close()
Mike Ruprecht <cmaiku@gmail.com>
parents:
diff changeset
100 data->input = g_object_ref(input);
38137
6ea02c2ccb05 purple-gio: purple_gio_graceful_close(): Handle NULL arguments sanely
Mike Ruprecht <cmaiku@gmail.com>
parents: 37965
diff changeset
101
6ea02c2ccb05 purple-gio: purple_gio_graceful_close(): Handle NULL arguments sanely
Mike Ruprecht <cmaiku@gmail.com>
parents: 37965
diff changeset
102 if (output == NULL)
6ea02c2ccb05 purple-gio: purple_gio_graceful_close(): Handle NULL arguments sanely
Mike Ruprecht <cmaiku@gmail.com>
parents: 37965
diff changeset
103 output = g_io_stream_get_output_stream(stream);
37956
21cffc3446a0 purple-gio: Add purple-gio.[ch] containing purple_gio_graceful_close()
Mike Ruprecht <cmaiku@gmail.com>
parents:
diff changeset
104 data->output = g_object_ref(output);
21cffc3446a0 purple-gio: Add purple-gio.[ch] containing purple_gio_graceful_close()
Mike Ruprecht <cmaiku@gmail.com>
parents:
diff changeset
105
21cffc3446a0 purple-gio: Add purple-gio.[ch] containing purple_gio_graceful_close()
Mike Ruprecht <cmaiku@gmail.com>
parents:
diff changeset
106 /* Try gracefully closing the stream synchronously */
21cffc3446a0 purple-gio: Add purple-gio.[ch] containing purple_gio_graceful_close()
Mike Ruprecht <cmaiku@gmail.com>
parents:
diff changeset
107 if (graceful_close_cb(data) == G_SOURCE_CONTINUE) {
21cffc3446a0 purple-gio: Add purple-gio.[ch] containing purple_gio_graceful_close()
Mike Ruprecht <cmaiku@gmail.com>
parents:
diff changeset
108 /* Has pending operations. Do so asynchronously */
21cffc3446a0 purple-gio: Add purple-gio.[ch] containing purple_gio_graceful_close()
Mike Ruprecht <cmaiku@gmail.com>
parents:
diff changeset
109 g_idle_add(graceful_close_cb, data);
21cffc3446a0 purple-gio: Add purple-gio.[ch] containing purple_gio_graceful_close()
Mike Ruprecht <cmaiku@gmail.com>
parents:
diff changeset
110 }
21cffc3446a0 purple-gio: Add purple-gio.[ch] containing purple_gio_graceful_close()
Mike Ruprecht <cmaiku@gmail.com>
parents:
diff changeset
111 }
21cffc3446a0 purple-gio: Add purple-gio.[ch] containing purple_gio_graceful_close()
Mike Ruprecht <cmaiku@gmail.com>
parents:
diff changeset
112
37962
13e2a9fcbddd purple-gio: Add purple_gio_socket_client_new() helper function
Mike Ruprecht <cmaiku@gmail.com>
parents: 37956
diff changeset
113 GSocketClient *
13e2a9fcbddd purple-gio: Add purple_gio_socket_client_new() helper function
Mike Ruprecht <cmaiku@gmail.com>
parents: 37956
diff changeset
114 purple_gio_socket_client_new(PurpleAccount *account, GError **error)
13e2a9fcbddd purple-gio: Add purple_gio_socket_client_new() helper function
Mike Ruprecht <cmaiku@gmail.com>
parents: 37956
diff changeset
115 {
13e2a9fcbddd purple-gio: Add purple_gio_socket_client_new() helper function
Mike Ruprecht <cmaiku@gmail.com>
parents: 37956
diff changeset
116 GProxyResolver *resolver;
13e2a9fcbddd purple-gio: Add purple_gio_socket_client_new() helper function
Mike Ruprecht <cmaiku@gmail.com>
parents: 37956
diff changeset
117 GSocketClient *client;
13e2a9fcbddd purple-gio: Add purple_gio_socket_client_new() helper function
Mike Ruprecht <cmaiku@gmail.com>
parents: 37956
diff changeset
118
37965
b67fb3fb5f85 proxy: Add GError argument to purple_proxy_get_proxy_resolver()
Mike Ruprecht <cmaiku@gmail.com>
parents: 37962
diff changeset
119 resolver = purple_proxy_get_proxy_resolver(account, error);
37962
13e2a9fcbddd purple-gio: Add purple_gio_socket_client_new() helper function
Mike Ruprecht <cmaiku@gmail.com>
parents: 37956
diff changeset
120
13e2a9fcbddd purple-gio: Add purple_gio_socket_client_new() helper function
Mike Ruprecht <cmaiku@gmail.com>
parents: 37956
diff changeset
121 if (resolver == NULL) {
13e2a9fcbddd purple-gio: Add purple_gio_socket_client_new() helper function
Mike Ruprecht <cmaiku@gmail.com>
parents: 37956
diff changeset
122 return NULL;
13e2a9fcbddd purple-gio: Add purple_gio_socket_client_new() helper function
Mike Ruprecht <cmaiku@gmail.com>
parents: 37956
diff changeset
123 }
13e2a9fcbddd purple-gio: Add purple_gio_socket_client_new() helper function
Mike Ruprecht <cmaiku@gmail.com>
parents: 37956
diff changeset
124
13e2a9fcbddd purple-gio: Add purple_gio_socket_client_new() helper function
Mike Ruprecht <cmaiku@gmail.com>
parents: 37956
diff changeset
125 client = g_socket_client_new();
13e2a9fcbddd purple-gio: Add purple_gio_socket_client_new() helper function
Mike Ruprecht <cmaiku@gmail.com>
parents: 37956
diff changeset
126 g_socket_client_set_proxy_resolver(client, resolver);
13e2a9fcbddd purple-gio: Add purple_gio_socket_client_new() helper function
Mike Ruprecht <cmaiku@gmail.com>
parents: 37956
diff changeset
127 g_object_unref(resolver);
13e2a9fcbddd purple-gio: Add purple_gio_socket_client_new() helper function
Mike Ruprecht <cmaiku@gmail.com>
parents: 37956
diff changeset
128
13e2a9fcbddd purple-gio: Add purple_gio_socket_client_new() helper function
Mike Ruprecht <cmaiku@gmail.com>
parents: 37956
diff changeset
129 return client;
13e2a9fcbddd purple-gio: Add purple_gio_socket_client_new() helper function
Mike Ruprecht <cmaiku@gmail.com>
parents: 37956
diff changeset
130 }
13e2a9fcbddd purple-gio: Add purple_gio_socket_client_new() helper function
Mike Ruprecht <cmaiku@gmail.com>
parents: 37956
diff changeset
131

mercurial