libpurple/proxy.c

Tue, 15 Oct 2024 00:47:42 -0500

author
Elliott Sales de Andrade <quantum.analyst@gmail.com>
date
Tue, 15 Oct 2024 00:47:42 -0500
changeset 43011
ce3144e2bc33
parent 42834
8c7bd2b5757e
permissions
-rw-r--r--

Port prefs to AdwSwitchRow

Now that we depend on Adwaita 1.4, we can flip the switch on using these (pun intended).

This also simplifies some extra tracking we needed to do for activations and focus, since the Adwaita widgets do that for us.

Testing Done:
Opened prefs, confirmed all the switches were there, and toggled them all without any warnings.

Also used the mnemonics to toggle the switches from the keyboard.

Reviewed at https://reviews.imfreedom.org/r/3582/

42594
eddde70cedd8 Create a test for verifying license headers and correct the ones that were wrong
Gary Kramlich <grim@reaperworld.com>
parents: 42557
diff changeset
1 /*
eddde70cedd8 Create a test for verifying license headers and correct the ones that were wrong
Gary Kramlich <grim@reaperworld.com>
parents: 42557
diff changeset
2 * Purple - Internet Messaging Library
eddde70cedd8 Create a test for verifying license headers and correct the ones that were wrong
Gary Kramlich <grim@reaperworld.com>
parents: 42557
diff changeset
3 * Copyright (C) Pidgin Developers <devel@pidgin.im>
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
4 *
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15746
diff changeset
5 * Purple is the legal property of its developers, whose names are too numerous
42594
eddde70cedd8 Create a test for verifying license headers and correct the ones that were wrong
Gary Kramlich <grim@reaperworld.com>
parents: 42557
diff changeset
6 * to list here. Please refer to the COPYRIGHT file distributed with this
8046
c581b20a47d6 [gaim-migrate @ 8730]
Sean Egan <seanegan@pidgin.im>
parents: 7982
diff changeset
7 * source distribution.
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
8 *
42594
eddde70cedd8 Create a test for verifying license headers and correct the ones that were wrong
Gary Kramlich <grim@reaperworld.com>
parents: 42557
diff changeset
9 * This library is free software; you can redistribute it and/or modify it
eddde70cedd8 Create a test for verifying license headers and correct the ones that were wrong
Gary Kramlich <grim@reaperworld.com>
parents: 42557
diff changeset
10 * under the terms of the GNU General Public License as published by the Free
eddde70cedd8 Create a test for verifying license headers and correct the ones that were wrong
Gary Kramlich <grim@reaperworld.com>
parents: 42557
diff changeset
11 * Software Foundation; either version 2 of the License, or (at your option)
eddde70cedd8 Create a test for verifying license headers and correct the ones that were wrong
Gary Kramlich <grim@reaperworld.com>
parents: 42557
diff changeset
12 * any later version.
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
13 *
42594
eddde70cedd8 Create a test for verifying license headers and correct the ones that were wrong
Gary Kramlich <grim@reaperworld.com>
parents: 42557
diff changeset
14 * This library is distributed in the hope that it will be useful, but WITHOUT
eddde70cedd8 Create a test for verifying license headers and correct the ones that were wrong
Gary Kramlich <grim@reaperworld.com>
parents: 42557
diff changeset
15 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
eddde70cedd8 Create a test for verifying license headers and correct the ones that were wrong
Gary Kramlich <grim@reaperworld.com>
parents: 42557
diff changeset
16 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
eddde70cedd8 Create a test for verifying license headers and correct the ones that were wrong
Gary Kramlich <grim@reaperworld.com>
parents: 42557
diff changeset
17 * more details.
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
18 *
42594
eddde70cedd8 Create a test for verifying license headers and correct the ones that were wrong
Gary Kramlich <grim@reaperworld.com>
parents: 42557
diff changeset
19 * You should have received a copy of the GNU General Public License along with
eddde70cedd8 Create a test for verifying license headers and correct the ones that were wrong
Gary Kramlich <grim@reaperworld.com>
parents: 42557
diff changeset
20 * this library; if not, see <https://www.gnu.org/licenses/>.
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
21 */
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
22
40441
f23c7e772667 Make sure we're not including the gettext macros in header files and deal with the repercussions of that.
Gary Kramlich <grim@reaperworld.com>
parents: 40058
diff changeset
23 #include <glib/gi18n-lib.h>
f23c7e772667 Make sure we're not including the gettext macros in header files and deal with the repercussions of that.
Gary Kramlich <grim@reaperworld.com>
parents: 40058
diff changeset
24
5872
754c63f29b77 [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5681
diff changeset
25 #include "debug.h"
754c63f29b77 [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5681
diff changeset
26 #include "prefs.h"
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
27 #include "proxy.h"
41672
7d3c68e0a8ee Rename purple-gio.[ch] to purplegio.[ch] to match the other files
Gary Kramlich <grim@reaperworld.com>
parents: 41657
diff changeset
28 #include "purplegio.h"
5872
754c63f29b77 [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5681
diff changeset
29 #include "util.h"
3630
caa952062dc2 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 3376
diff changeset
30
37451
927a083a6c9f This probably doesn't work, but it compiles (for now)
Gary Kramlich <grim@reaperworld.com>
parents: 37193
diff changeset
31 #include <gio/gio.h>
39990
7fb53d5427a8 Use SoupURI to parse proxy environment variables.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39659
diff changeset
32 #include <libsoup/soup.h>
37451
927a083a6c9f This probably doesn't work, but it compiles (for now)
Gary Kramlich <grim@reaperworld.com>
parents: 37193
diff changeset
33
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15746
diff changeset
34 static PurpleProxyInfo *global_proxy_info = NULL;
14165
0f09ac2220f4 [gaim-migrate @ 16734]
Mark Doliner <markdoliner@pidgin.im>
parents: 14161
diff changeset
35
5681
514fbc5374dc [gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents: 5580
diff changeset
36 /**************************************************************************
514fbc5374dc [gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents: 5580
diff changeset
37 * Global Proxy API
514fbc5374dc [gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents: 5580
diff changeset
38 **************************************************************************/
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15746
diff changeset
39 PurpleProxyInfo *
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15746
diff changeset
40 purple_global_proxy_get_info(void)
5681
514fbc5374dc [gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents: 5580
diff changeset
41 {
514fbc5374dc [gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents: 5580
diff changeset
42 return global_proxy_info;
514fbc5374dc [gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents: 5580
diff changeset
43 }
514fbc5374dc [gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents: 5580
diff changeset
44
25858
ec60fbe5a4ab Patch from fqueze to add API for setting the global proxy settings. Fixes #7610.
Daniel Atallah <datallah@pidgin.im>
parents: 24866
diff changeset
45 void
ec60fbe5a4ab Patch from fqueze to add API for setting the global proxy settings. Fixes #7610.
Daniel Atallah <datallah@pidgin.im>
parents: 24866
diff changeset
46 purple_global_proxy_set_info(PurpleProxyInfo *info)
ec60fbe5a4ab Patch from fqueze to add API for setting the global proxy settings. Fixes #7610.
Daniel Atallah <datallah@pidgin.im>
parents: 24866
diff changeset
47 {
ec60fbe5a4ab Patch from fqueze to add API for setting the global proxy settings. Fixes #7610.
Daniel Atallah <datallah@pidgin.im>
parents: 24866
diff changeset
48 g_return_if_fail(info != NULL);
ec60fbe5a4ab Patch from fqueze to add API for setting the global proxy settings. Fixes #7610.
Daniel Atallah <datallah@pidgin.im>
parents: 24866
diff changeset
49
41318
56092ffeae95 Move PurpleProxyInfo from a boxed type to a GObject
Gary Kramlich <grim@reaperworld.com>
parents: 41211
diff changeset
50 g_clear_object(&global_proxy_info);
25858
ec60fbe5a4ab Patch from fqueze to add API for setting the global proxy settings. Fixes #7610.
Daniel Atallah <datallah@pidgin.im>
parents: 24866
diff changeset
51
ec60fbe5a4ab Patch from fqueze to add API for setting the global proxy settings. Fixes #7610.
Daniel Atallah <datallah@pidgin.im>
parents: 24866
diff changeset
52 global_proxy_info = info;
ec60fbe5a4ab Patch from fqueze to add API for setting the global proxy settings. Fixes #7610.
Daniel Atallah <datallah@pidgin.im>
parents: 24866
diff changeset
53 }
ec60fbe5a4ab Patch from fqueze to add API for setting the global proxy settings. Fixes #7610.
Daniel Atallah <datallah@pidgin.im>
parents: 24866
diff changeset
54
5681
514fbc5374dc [gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents: 5580
diff changeset
55 /**************************************************************************
514fbc5374dc [gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents: 5580
diff changeset
56 * Proxy API
514fbc5374dc [gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents: 5580
diff changeset
57 **************************************************************************/
4366
d2b52a5ff6fc [gaim-migrate @ 4632]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 3867
diff changeset
58
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15746
diff changeset
59 PurpleProxyInfo *
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15746
diff changeset
60 purple_proxy_get_setup(PurpleAccount *account)
1087
bc9c6b635358 [gaim-migrate @ 1097]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1057
diff changeset
61 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15746
diff changeset
62 PurpleProxyInfo *gpi = NULL;
6621
2a18ef3e5224 [gaim-migrate @ 7145]
Robert McQueen <robot101@debian.org>
parents: 6320
diff changeset
63 const gchar *tmp;
5681
514fbc5374dc [gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents: 5580
diff changeset
64
15032
65a111aba7a8 [gaim-migrate @ 17749]
Daniel Atallah <datallah@pidgin.im>
parents: 15015
diff changeset
65 /* This is used as a fallback so we don't overwrite the selected proxy type */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15746
diff changeset
66 static PurpleProxyInfo *tmp_none_proxy_info = NULL;
15032
65a111aba7a8 [gaim-migrate @ 17749]
Daniel Atallah <datallah@pidgin.im>
parents: 15015
diff changeset
67 if (!tmp_none_proxy_info) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15746
diff changeset
68 tmp_none_proxy_info = purple_proxy_info_new();
41318
56092ffeae95 Move PurpleProxyInfo from a boxed type to a GObject
Gary Kramlich <grim@reaperworld.com>
parents: 41211
diff changeset
69 purple_proxy_info_set_proxy_type(tmp_none_proxy_info, PURPLE_PROXY_TYPE_NONE);
15032
65a111aba7a8 [gaim-migrate @ 17749]
Daniel Atallah <datallah@pidgin.im>
parents: 15015
diff changeset
70 }
65a111aba7a8 [gaim-migrate @ 17749]
Daniel Atallah <datallah@pidgin.im>
parents: 15015
diff changeset
71
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15746
diff changeset
72 if (account && purple_account_get_proxy_info(account) != NULL) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15746
diff changeset
73 gpi = purple_account_get_proxy_info(account);
41318
56092ffeae95 Move PurpleProxyInfo from a boxed type to a GObject
Gary Kramlich <grim@reaperworld.com>
parents: 41211
diff changeset
74 if (purple_proxy_info_get_proxy_type(gpi) == PURPLE_PROXY_TYPE_USE_GLOBAL)
15041
18a6f6cdce33 [gaim-migrate @ 17758]
Daniel Atallah <datallah@pidgin.im>
parents: 15032
diff changeset
75 gpi = NULL;
18a6f6cdce33 [gaim-migrate @ 17758]
Daniel Atallah <datallah@pidgin.im>
parents: 15032
diff changeset
76 }
18a6f6cdce33 [gaim-migrate @ 17758]
Daniel Atallah <datallah@pidgin.im>
parents: 15032
diff changeset
77 if (gpi == NULL) {
41318
56092ffeae95 Move PurpleProxyInfo from a boxed type to a GObject
Gary Kramlich <grim@reaperworld.com>
parents: 41211
diff changeset
78 gpi = purple_global_proxy_get_info();
15041
18a6f6cdce33 [gaim-migrate @ 17758]
Daniel Atallah <datallah@pidgin.im>
parents: 15032
diff changeset
79 }
5681
514fbc5374dc [gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents: 5580
diff changeset
80
41318
56092ffeae95 Move PurpleProxyInfo from a boxed type to a GObject
Gary Kramlich <grim@reaperworld.com>
parents: 41211
diff changeset
81 if (purple_proxy_info_get_proxy_type(gpi) == PURPLE_PROXY_TYPE_USE_ENVVAR) {
6621
2a18ef3e5224 [gaim-migrate @ 7145]
Robert McQueen <robot101@debian.org>
parents: 6320
diff changeset
82 if ((tmp = g_getenv("HTTP_PROXY")) != NULL ||
2a18ef3e5224 [gaim-migrate @ 7145]
Robert McQueen <robot101@debian.org>
parents: 6320
diff changeset
83 (tmp = g_getenv("http_proxy")) != NULL ||
34219
eee308def583 HTTP: get rid of purple_url_parse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34218
diff changeset
84 (tmp = g_getenv("HTTPPROXY")) != NULL)
eee308def583 HTTP: get rid of purple_url_parse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34218
diff changeset
85 {
41211
2e804c9c0919 Switch SoupURI to GUri
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41157
diff changeset
86 gchar *scheme, *host, *username, *password;
2e804c9c0919 Switch SoupURI to GUri
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41157
diff changeset
87 gint port;
2e804c9c0919 Switch SoupURI to GUri
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41157
diff changeset
88 GError *error = NULL;
6621
2a18ef3e5224 [gaim-migrate @ 7145]
Robert McQueen <robot101@debian.org>
parents: 6320
diff changeset
89
9129
9510867e614f [gaim-migrate @ 9907]
Nathan Walp <nwalp@pidgin.im>
parents: 9100
diff changeset
90 /* http_proxy-format:
9227
95c28297b72c [gaim-migrate @ 10023]
Don Seiler <rizzo@gentoo.org>
parents: 9148
diff changeset
91 * export http_proxy="http://user:passwd@your.proxy.server:port/"
7652
d60ba2565661 [gaim-migrate @ 8296]
Björn Voigt <bjoern@cs.tu-berlin.de>
parents: 7475
diff changeset
92 */
41211
2e804c9c0919 Switch SoupURI to GUri
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41157
diff changeset
93 if (!g_uri_split_with_user(tmp, G_URI_FLAGS_HAS_PASSWORD, &scheme,
2e804c9c0919 Switch SoupURI to GUri
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41157
diff changeset
94 &username, &password, NULL,
2e804c9c0919 Switch SoupURI to GUri
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41157
diff changeset
95 &host, &port, NULL, NULL, NULL, &error))
2e804c9c0919 Switch SoupURI to GUri
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41157
diff changeset
96 {
2e804c9c0919 Switch SoupURI to GUri
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41157
diff changeset
97 purple_debug_warning("proxy", "Couldn't parse URL: %s: %s", tmp, error->message);
2e804c9c0919 Switch SoupURI to GUri
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41157
diff changeset
98 g_error_free(error);
2e804c9c0919 Switch SoupURI to GUri
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41157
diff changeset
99 return gpi;
2e804c9c0919 Switch SoupURI to GUri
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41157
diff changeset
100 }
2e804c9c0919 Switch SoupURI to GUri
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41157
diff changeset
101 if (!purple_strequal(scheme, "http")) {
39990
7fb53d5427a8 Use SoupURI to parse proxy environment variables.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39659
diff changeset
102 purple_debug_warning("proxy", "Couldn't parse URL: %s", tmp);
41211
2e804c9c0919 Switch SoupURI to GUri
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41157
diff changeset
103 g_free(username);
2e804c9c0919 Switch SoupURI to GUri
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41157
diff changeset
104 g_free(password);
2e804c9c0919 Switch SoupURI to GUri
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41157
diff changeset
105 g_free(host);
34219
eee308def583 HTTP: get rid of purple_url_parse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34218
diff changeset
106 return gpi;
7652
d60ba2565661 [gaim-migrate @ 8296]
Björn Voigt <bjoern@cs.tu-berlin.de>
parents: 7475
diff changeset
107 }
34219
eee308def583 HTTP: get rid of purple_url_parse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34218
diff changeset
108
41318
56092ffeae95 Move PurpleProxyInfo from a boxed type to a GObject
Gary Kramlich <grim@reaperworld.com>
parents: 41211
diff changeset
109 purple_proxy_info_set_hostname(gpi, host);
56092ffeae95 Move PurpleProxyInfo from a boxed type to a GObject
Gary Kramlich <grim@reaperworld.com>
parents: 41211
diff changeset
110 purple_proxy_info_set_port(gpi, port);
41211
2e804c9c0919 Switch SoupURI to GUri
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41157
diff changeset
111 purple_proxy_info_set_username(gpi, username);
2e804c9c0919 Switch SoupURI to GUri
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41157
diff changeset
112 purple_proxy_info_set_password(gpi, password);
39990
7fb53d5427a8 Use SoupURI to parse proxy environment variables.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39659
diff changeset
113
41211
2e804c9c0919 Switch SoupURI to GUri
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41157
diff changeset
114 g_free(host);
2e804c9c0919 Switch SoupURI to GUri
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41157
diff changeset
115 g_free(username);
2e804c9c0919 Switch SoupURI to GUri
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41157
diff changeset
116 g_free(password);
34219
eee308def583 HTTP: get rid of purple_url_parse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34218
diff changeset
117
eee308def583 HTTP: get rid of purple_url_parse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34218
diff changeset
118 /* XXX: Do we want to skip this step if user/password/port were part of url? */
eee308def583 HTTP: get rid of purple_url_parse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34218
diff changeset
119 if ((tmp = g_getenv("HTTP_PROXY_USER")) != NULL ||
eee308def583 HTTP: get rid of purple_url_parse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34218
diff changeset
120 (tmp = g_getenv("http_proxy_user")) != NULL ||
eee308def583 HTTP: get rid of purple_url_parse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34218
diff changeset
121 (tmp = g_getenv("HTTPPROXYUSER")) != NULL)
eee308def583 HTTP: get rid of purple_url_parse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34218
diff changeset
122 purple_proxy_info_set_username(gpi, tmp);
eee308def583 HTTP: get rid of purple_url_parse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34218
diff changeset
123
eee308def583 HTTP: get rid of purple_url_parse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34218
diff changeset
124 if ((tmp = g_getenv("HTTP_PROXY_PASS")) != NULL ||
eee308def583 HTTP: get rid of purple_url_parse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34218
diff changeset
125 (tmp = g_getenv("http_proxy_pass")) != NULL ||
eee308def583 HTTP: get rid of purple_url_parse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34218
diff changeset
126 (tmp = g_getenv("HTTPPROXYPASS")) != NULL)
eee308def583 HTTP: get rid of purple_url_parse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34218
diff changeset
127 purple_proxy_info_set_password(gpi, tmp);
eee308def583 HTTP: get rid of purple_url_parse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34218
diff changeset
128
eee308def583 HTTP: get rid of purple_url_parse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34218
diff changeset
129 if ((tmp = g_getenv("HTTP_PROXY_PORT")) != NULL ||
eee308def583 HTTP: get rid of purple_url_parse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34218
diff changeset
130 (tmp = g_getenv("http_proxy_port")) != NULL ||
eee308def583 HTTP: get rid of purple_url_parse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34218
diff changeset
131 (tmp = g_getenv("HTTPPROXYPORT")) != NULL)
eee308def583 HTTP: get rid of purple_url_parse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 34218
diff changeset
132 purple_proxy_info_set_port(gpi, atoi(tmp));
10534
c28eef1b882a [gaim-migrate @ 11866]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10320
diff changeset
133 } else {
c28eef1b882a [gaim-migrate @ 11866]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10320
diff changeset
134 /* no proxy environment variable found, don't use a proxy */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15746
diff changeset
135 purple_debug_info("proxy", "No environment settings found, not using a proxy\n");
15032
65a111aba7a8 [gaim-migrate @ 17749]
Daniel Atallah <datallah@pidgin.im>
parents: 15015
diff changeset
136 gpi = tmp_none_proxy_info;
6621
2a18ef3e5224 [gaim-migrate @ 7145]
Robert McQueen <robot101@debian.org>
parents: 6320
diff changeset
137 }
2a18ef3e5224 [gaim-migrate @ 7145]
Robert McQueen <robot101@debian.org>
parents: 6320
diff changeset
138
2a18ef3e5224 [gaim-migrate @ 7145]
Robert McQueen <robot101@debian.org>
parents: 6320
diff changeset
139 }
2a18ef3e5224 [gaim-migrate @ 7145]
Robert McQueen <robot101@debian.org>
parents: 6320
diff changeset
140
13515
0cea461e904c [gaim-migrate @ 15890]
Bartosz Oler <bartosz@pidgin.im>
parents: 13426
diff changeset
141 return gpi;
0cea461e904c [gaim-migrate @ 15890]
Bartosz Oler <bartosz@pidgin.im>
parents: 13426
diff changeset
142 }
0cea461e904c [gaim-migrate @ 15890]
Bartosz Oler <bartosz@pidgin.im>
parents: 13426
diff changeset
143
37532
5aaf2d93e7e3 Implement function to get a GProxyResolver with an account's settings
Mike Ruprecht <cmaiku@gmail.com>
parents: 37518
diff changeset
144 GProxyResolver *
37965
b67fb3fb5f85 proxy: Add GError argument to purple_proxy_get_proxy_resolver()
Mike Ruprecht <cmaiku@gmail.com>
parents: 37964
diff changeset
145 purple_proxy_get_proxy_resolver(PurpleAccount *account, GError **error)
37532
5aaf2d93e7e3 Implement function to get a GProxyResolver with an account's settings
Mike Ruprecht <cmaiku@gmail.com>
parents: 37518
diff changeset
146 {
5aaf2d93e7e3 Implement function to get a GProxyResolver with an account's settings
Mike Ruprecht <cmaiku@gmail.com>
parents: 37518
diff changeset
147 PurpleProxyInfo *info = purple_proxy_get_setup(account);
5aaf2d93e7e3 Implement function to get a GProxyResolver with an account's settings
Mike Ruprecht <cmaiku@gmail.com>
parents: 37518
diff changeset
148 const gchar *protocol;
5aaf2d93e7e3 Implement function to get a GProxyResolver with an account's settings
Mike Ruprecht <cmaiku@gmail.com>
parents: 37518
diff changeset
149 const gchar *username;
5aaf2d93e7e3 Implement function to get a GProxyResolver with an account's settings
Mike Ruprecht <cmaiku@gmail.com>
parents: 37518
diff changeset
150 const gchar *password;
5aaf2d93e7e3 Implement function to get a GProxyResolver with an account's settings
Mike Ruprecht <cmaiku@gmail.com>
parents: 37518
diff changeset
151 gchar *auth;
5aaf2d93e7e3 Implement function to get a GProxyResolver with an account's settings
Mike Ruprecht <cmaiku@gmail.com>
parents: 37518
diff changeset
152 gchar *proxy;
5aaf2d93e7e3 Implement function to get a GProxyResolver with an account's settings
Mike Ruprecht <cmaiku@gmail.com>
parents: 37518
diff changeset
153 GProxyResolver *resolver;
5aaf2d93e7e3 Implement function to get a GProxyResolver with an account's settings
Mike Ruprecht <cmaiku@gmail.com>
parents: 37518
diff changeset
154
41318
56092ffeae95 Move PurpleProxyInfo from a boxed type to a GObject
Gary Kramlich <grim@reaperworld.com>
parents: 41211
diff changeset
155 if (purple_proxy_info_get_proxy_type(info) == PURPLE_PROXY_TYPE_NONE) {
37942
33f8691a69df proxy: don't use default resolver if direct connection is wanted
Jakub Adam <jakub.adam@ktknet.cz>
parents: 37939
diff changeset
156 /* Return an empty simple resolver, which will resolve on direct
33f8691a69df proxy: don't use default resolver if direct connection is wanted
Jakub Adam <jakub.adam@ktknet.cz>
parents: 37939
diff changeset
157 * connection. */
33f8691a69df proxy: don't use default resolver if direct connection is wanted
Jakub Adam <jakub.adam@ktknet.cz>
parents: 37939
diff changeset
158 return g_simple_proxy_resolver_new(NULL, NULL);
37532
5aaf2d93e7e3 Implement function to get a GProxyResolver with an account's settings
Mike Ruprecht <cmaiku@gmail.com>
parents: 37518
diff changeset
159 }
5aaf2d93e7e3 Implement function to get a GProxyResolver with an account's settings
Mike Ruprecht <cmaiku@gmail.com>
parents: 37518
diff changeset
160
5aaf2d93e7e3 Implement function to get a GProxyResolver with an account's settings
Mike Ruprecht <cmaiku@gmail.com>
parents: 37518
diff changeset
161 switch (purple_proxy_info_get_proxy_type(info))
5aaf2d93e7e3 Implement function to get a GProxyResolver with an account's settings
Mike Ruprecht <cmaiku@gmail.com>
parents: 37518
diff changeset
162 {
5aaf2d93e7e3 Implement function to get a GProxyResolver with an account's settings
Mike Ruprecht <cmaiku@gmail.com>
parents: 37518
diff changeset
163 /* PURPLE_PROXY_NONE already handled above */
5aaf2d93e7e3 Implement function to get a GProxyResolver with an account's settings
Mike Ruprecht <cmaiku@gmail.com>
parents: 37518
diff changeset
164
41318
56092ffeae95 Move PurpleProxyInfo from a boxed type to a GObject
Gary Kramlich <grim@reaperworld.com>
parents: 41211
diff changeset
165 case PURPLE_PROXY_TYPE_USE_ENVVAR:
37532
5aaf2d93e7e3 Implement function to get a GProxyResolver with an account's settings
Mike Ruprecht <cmaiku@gmail.com>
parents: 37518
diff changeset
166 /* Intentional passthrough */
41318
56092ffeae95 Move PurpleProxyInfo from a boxed type to a GObject
Gary Kramlich <grim@reaperworld.com>
parents: 41211
diff changeset
167 case PURPLE_PROXY_TYPE_HTTP:
37532
5aaf2d93e7e3 Implement function to get a GProxyResolver with an account's settings
Mike Ruprecht <cmaiku@gmail.com>
parents: 37518
diff changeset
168 protocol = "http";
5aaf2d93e7e3 Implement function to get a GProxyResolver with an account's settings
Mike Ruprecht <cmaiku@gmail.com>
parents: 37518
diff changeset
169 break;
41318
56092ffeae95 Move PurpleProxyInfo from a boxed type to a GObject
Gary Kramlich <grim@reaperworld.com>
parents: 41211
diff changeset
170 case PURPLE_PROXY_TYPE_SOCKS4:
37532
5aaf2d93e7e3 Implement function to get a GProxyResolver with an account's settings
Mike Ruprecht <cmaiku@gmail.com>
parents: 37518
diff changeset
171 protocol = "socks4";
5aaf2d93e7e3 Implement function to get a GProxyResolver with an account's settings
Mike Ruprecht <cmaiku@gmail.com>
parents: 37518
diff changeset
172 break;
41318
56092ffeae95 Move PurpleProxyInfo from a boxed type to a GObject
Gary Kramlich <grim@reaperworld.com>
parents: 41211
diff changeset
173 case PURPLE_PROXY_TYPE_SOCKS5:
37532
5aaf2d93e7e3 Implement function to get a GProxyResolver with an account's settings
Mike Ruprecht <cmaiku@gmail.com>
parents: 37518
diff changeset
174 /* Intentional passthrough */
41318
56092ffeae95 Move PurpleProxyInfo from a boxed type to a GObject
Gary Kramlich <grim@reaperworld.com>
parents: 41211
diff changeset
175 case PURPLE_PROXY_TYPE_TOR:
37532
5aaf2d93e7e3 Implement function to get a GProxyResolver with an account's settings
Mike Ruprecht <cmaiku@gmail.com>
parents: 37518
diff changeset
176 protocol = "socks5";
5aaf2d93e7e3 Implement function to get a GProxyResolver with an account's settings
Mike Ruprecht <cmaiku@gmail.com>
parents: 37518
diff changeset
177 break;
5aaf2d93e7e3 Implement function to get a GProxyResolver with an account's settings
Mike Ruprecht <cmaiku@gmail.com>
parents: 37518
diff changeset
178
5aaf2d93e7e3 Implement function to get a GProxyResolver with an account's settings
Mike Ruprecht <cmaiku@gmail.com>
parents: 37518
diff changeset
179 default:
37965
b67fb3fb5f85 proxy: Add GError argument to purple_proxy_get_proxy_resolver()
Mike Ruprecht <cmaiku@gmail.com>
parents: 37964
diff changeset
180 g_set_error(error, PURPLE_CONNECTION_ERROR,
b67fb3fb5f85 proxy: Add GError argument to purple_proxy_get_proxy_resolver()
Mike Ruprecht <cmaiku@gmail.com>
parents: 37964
diff changeset
181 PURPLE_CONNECTION_ERROR_INVALID_SETTINGS,
b67fb3fb5f85 proxy: Add GError argument to purple_proxy_get_proxy_resolver()
Mike Ruprecht <cmaiku@gmail.com>
parents: 37964
diff changeset
182 _("Invalid Proxy type (%d) specified"),
37532
5aaf2d93e7e3 Implement function to get a GProxyResolver with an account's settings
Mike Ruprecht <cmaiku@gmail.com>
parents: 37518
diff changeset
183 purple_proxy_info_get_proxy_type(info));
5aaf2d93e7e3 Implement function to get a GProxyResolver with an account's settings
Mike Ruprecht <cmaiku@gmail.com>
parents: 37518
diff changeset
184 return NULL;
5aaf2d93e7e3 Implement function to get a GProxyResolver with an account's settings
Mike Ruprecht <cmaiku@gmail.com>
parents: 37518
diff changeset
185 }
5aaf2d93e7e3 Implement function to get a GProxyResolver with an account's settings
Mike Ruprecht <cmaiku@gmail.com>
parents: 37518
diff changeset
186
5aaf2d93e7e3 Implement function to get a GProxyResolver with an account's settings
Mike Ruprecht <cmaiku@gmail.com>
parents: 37518
diff changeset
187
41318
56092ffeae95 Move PurpleProxyInfo from a boxed type to a GObject
Gary Kramlich <grim@reaperworld.com>
parents: 41211
diff changeset
188 if (purple_proxy_info_get_hostname(info) == NULL ||
37532
5aaf2d93e7e3 Implement function to get a GProxyResolver with an account's settings
Mike Ruprecht <cmaiku@gmail.com>
parents: 37518
diff changeset
189 purple_proxy_info_get_port(info) <= 0) {
37965
b67fb3fb5f85 proxy: Add GError argument to purple_proxy_get_proxy_resolver()
Mike Ruprecht <cmaiku@gmail.com>
parents: 37964
diff changeset
190 g_set_error_literal(error, PURPLE_CONNECTION_ERROR,
b67fb3fb5f85 proxy: Add GError argument to purple_proxy_get_proxy_resolver()
Mike Ruprecht <cmaiku@gmail.com>
parents: 37964
diff changeset
191 PURPLE_CONNECTION_ERROR_INVALID_SETTINGS,
37532
5aaf2d93e7e3 Implement function to get a GProxyResolver with an account's settings
Mike Ruprecht <cmaiku@gmail.com>
parents: 37518
diff changeset
192 _("Either the host name or port number "
5aaf2d93e7e3 Implement function to get a GProxyResolver with an account's settings
Mike Ruprecht <cmaiku@gmail.com>
parents: 37518
diff changeset
193 "specified for your given proxy type is "
37965
b67fb3fb5f85 proxy: Add GError argument to purple_proxy_get_proxy_resolver()
Mike Ruprecht <cmaiku@gmail.com>
parents: 37964
diff changeset
194 "invalid."));
37532
5aaf2d93e7e3 Implement function to get a GProxyResolver with an account's settings
Mike Ruprecht <cmaiku@gmail.com>
parents: 37518
diff changeset
195 return NULL;
5aaf2d93e7e3 Implement function to get a GProxyResolver with an account's settings
Mike Ruprecht <cmaiku@gmail.com>
parents: 37518
diff changeset
196 }
5aaf2d93e7e3 Implement function to get a GProxyResolver with an account's settings
Mike Ruprecht <cmaiku@gmail.com>
parents: 37518
diff changeset
197
5aaf2d93e7e3 Implement function to get a GProxyResolver with an account's settings
Mike Ruprecht <cmaiku@gmail.com>
parents: 37518
diff changeset
198 /* Everything checks out. Create and return the GProxyResolver */
5aaf2d93e7e3 Implement function to get a GProxyResolver with an account's settings
Mike Ruprecht <cmaiku@gmail.com>
parents: 37518
diff changeset
199
5aaf2d93e7e3 Implement function to get a GProxyResolver with an account's settings
Mike Ruprecht <cmaiku@gmail.com>
parents: 37518
diff changeset
200 username = purple_proxy_info_get_username(info);
5aaf2d93e7e3 Implement function to get a GProxyResolver with an account's settings
Mike Ruprecht <cmaiku@gmail.com>
parents: 37518
diff changeset
201 password = purple_proxy_info_get_password(info);
5aaf2d93e7e3 Implement function to get a GProxyResolver with an account's settings
Mike Ruprecht <cmaiku@gmail.com>
parents: 37518
diff changeset
202
5aaf2d93e7e3 Implement function to get a GProxyResolver with an account's settings
Mike Ruprecht <cmaiku@gmail.com>
parents: 37518
diff changeset
203 /* Username and password are optional */
41157
f223b69f7da2 Fix some bugs with proxies for xmpp
Gary Kramlich <grim@reaperworld.com>
parents: 40654
diff changeset
204 if(username != NULL && *username != '\0') {
f223b69f7da2 Fix some bugs with proxies for xmpp
Gary Kramlich <grim@reaperworld.com>
parents: 40654
diff changeset
205 if(password != NULL && *password != '\0') {
f223b69f7da2 Fix some bugs with proxies for xmpp
Gary Kramlich <grim@reaperworld.com>
parents: 40654
diff changeset
206 auth = g_strdup_printf("%s:%s@", username, password);
f223b69f7da2 Fix some bugs with proxies for xmpp
Gary Kramlich <grim@reaperworld.com>
parents: 40654
diff changeset
207 } else {
f223b69f7da2 Fix some bugs with proxies for xmpp
Gary Kramlich <grim@reaperworld.com>
parents: 40654
diff changeset
208 auth = g_strdup_printf("%s@", username);
f223b69f7da2 Fix some bugs with proxies for xmpp
Gary Kramlich <grim@reaperworld.com>
parents: 40654
diff changeset
209 }
37532
5aaf2d93e7e3 Implement function to get a GProxyResolver with an account's settings
Mike Ruprecht <cmaiku@gmail.com>
parents: 37518
diff changeset
210 } else {
5aaf2d93e7e3 Implement function to get a GProxyResolver with an account's settings
Mike Ruprecht <cmaiku@gmail.com>
parents: 37518
diff changeset
211 auth = NULL;
5aaf2d93e7e3 Implement function to get a GProxyResolver with an account's settings
Mike Ruprecht <cmaiku@gmail.com>
parents: 37518
diff changeset
212 }
5aaf2d93e7e3 Implement function to get a GProxyResolver with an account's settings
Mike Ruprecht <cmaiku@gmail.com>
parents: 37518
diff changeset
213
5aaf2d93e7e3 Implement function to get a GProxyResolver with an account's settings
Mike Ruprecht <cmaiku@gmail.com>
parents: 37518
diff changeset
214 proxy = g_strdup_printf("%s://%s%s:%i", protocol,
5aaf2d93e7e3 Implement function to get a GProxyResolver with an account's settings
Mike Ruprecht <cmaiku@gmail.com>
parents: 37518
diff changeset
215 auth != NULL ? auth : "",
41318
56092ffeae95 Move PurpleProxyInfo from a boxed type to a GObject
Gary Kramlich <grim@reaperworld.com>
parents: 41211
diff changeset
216 purple_proxy_info_get_hostname(info),
37532
5aaf2d93e7e3 Implement function to get a GProxyResolver with an account's settings
Mike Ruprecht <cmaiku@gmail.com>
parents: 37518
diff changeset
217 purple_proxy_info_get_port(info));
5aaf2d93e7e3 Implement function to get a GProxyResolver with an account's settings
Mike Ruprecht <cmaiku@gmail.com>
parents: 37518
diff changeset
218 g_free(auth);
5aaf2d93e7e3 Implement function to get a GProxyResolver with an account's settings
Mike Ruprecht <cmaiku@gmail.com>
parents: 37518
diff changeset
219
5aaf2d93e7e3 Implement function to get a GProxyResolver with an account's settings
Mike Ruprecht <cmaiku@gmail.com>
parents: 37518
diff changeset
220 resolver = g_simple_proxy_resolver_new(proxy, NULL);
5aaf2d93e7e3 Implement function to get a GProxyResolver with an account's settings
Mike Ruprecht <cmaiku@gmail.com>
parents: 37518
diff changeset
221 g_free(proxy);
5aaf2d93e7e3 Implement function to get a GProxyResolver with an account's settings
Mike Ruprecht <cmaiku@gmail.com>
parents: 37518
diff changeset
222
5aaf2d93e7e3 Implement function to get a GProxyResolver with an account's settings
Mike Ruprecht <cmaiku@gmail.com>
parents: 37518
diff changeset
223 return resolver;
5aaf2d93e7e3 Implement function to get a GProxyResolver with an account's settings
Mike Ruprecht <cmaiku@gmail.com>
parents: 37518
diff changeset
224 }
5aaf2d93e7e3 Implement function to get a GProxyResolver with an account's settings
Mike Ruprecht <cmaiku@gmail.com>
parents: 37518
diff changeset
225
5681
514fbc5374dc [gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents: 5580
diff changeset
226 static void
41960
c8a4853205e3 Bump C standard to C99 for libpurple files and fix warnings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41840
diff changeset
227 proxy_pref_cb(const char *name, G_GNUC_UNUSED PurplePrefType type,
c8a4853205e3 Bump C standard to C99 for libpurple files and fix warnings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41840
diff changeset
228 gconstpointer value, G_GNUC_UNUSED gpointer data)
5681
514fbc5374dc [gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents: 5580
diff changeset
229 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15746
diff changeset
230 PurpleProxyInfo *info = purple_global_proxy_get_info();
5681
514fbc5374dc [gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents: 5580
diff changeset
231
25859
b42be7bb9dac Patch from Paul Aurich to add purple_strequal to help readability and simplicity of code. Ie, don't need to negate the value of strcmp, since this does a strcmp and does the negation for us
Paul Aurich <darkrain42@pidgin.im>
parents: 24866
diff changeset
232 if (purple_strequal(name, "/purple/proxy/type")) {
6001
1abbeff6571c [gaim-migrate @ 6449]
Mark Doliner <markdoliner@pidgin.im>
parents: 5970
diff changeset
233 int proxytype;
12816
5f93e09fa9a6 [gaim-migrate @ 15164]
Mark Doliner <markdoliner@pidgin.im>
parents: 12811
diff changeset
234 const char *type = value;
6001
1abbeff6571c [gaim-migrate @ 6449]
Mark Doliner <markdoliner@pidgin.im>
parents: 5970
diff changeset
235
25859
b42be7bb9dac Patch from Paul Aurich to add purple_strequal to help readability and simplicity of code. Ie, don't need to negate the value of strcmp, since this does a strcmp and does the negation for us
Paul Aurich <darkrain42@pidgin.im>
parents: 24866
diff changeset
236 if (purple_strequal(type, "none"))
41318
56092ffeae95 Move PurpleProxyInfo from a boxed type to a GObject
Gary Kramlich <grim@reaperworld.com>
parents: 41211
diff changeset
237 proxytype = PURPLE_PROXY_TYPE_NONE;
25859
b42be7bb9dac Patch from Paul Aurich to add purple_strequal to help readability and simplicity of code. Ie, don't need to negate the value of strcmp, since this does a strcmp and does the negation for us
Paul Aurich <darkrain42@pidgin.im>
parents: 24866
diff changeset
238 else if (purple_strequal(type, "http"))
41318
56092ffeae95 Move PurpleProxyInfo from a boxed type to a GObject
Gary Kramlich <grim@reaperworld.com>
parents: 41211
diff changeset
239 proxytype = PURPLE_PROXY_TYPE_HTTP;
25859
b42be7bb9dac Patch from Paul Aurich to add purple_strequal to help readability and simplicity of code. Ie, don't need to negate the value of strcmp, since this does a strcmp and does the negation for us
Paul Aurich <darkrain42@pidgin.im>
parents: 24866
diff changeset
240 else if (purple_strequal(type, "socks4"))
41318
56092ffeae95 Move PurpleProxyInfo from a boxed type to a GObject
Gary Kramlich <grim@reaperworld.com>
parents: 41211
diff changeset
241 proxytype = PURPLE_PROXY_TYPE_SOCKS4;
25859
b42be7bb9dac Patch from Paul Aurich to add purple_strequal to help readability and simplicity of code. Ie, don't need to negate the value of strcmp, since this does a strcmp and does the negation for us
Paul Aurich <darkrain42@pidgin.im>
parents: 24866
diff changeset
242 else if (purple_strequal(type, "socks5"))
41318
56092ffeae95 Move PurpleProxyInfo from a boxed type to a GObject
Gary Kramlich <grim@reaperworld.com>
parents: 41211
diff changeset
243 proxytype = PURPLE_PROXY_TYPE_SOCKS5;
31677
042eaab1468c Add a new proxy type of "Tor". This is really just a SOCKS5 proxy, but can be
Daniel Atallah <datallah@pidgin.im>
parents: 30626
diff changeset
244 else if (purple_strequal(type, "tor"))
41318
56092ffeae95 Move PurpleProxyInfo from a boxed type to a GObject
Gary Kramlich <grim@reaperworld.com>
parents: 41211
diff changeset
245 proxytype = PURPLE_PROXY_TYPE_TOR;
25859
b42be7bb9dac Patch from Paul Aurich to add purple_strequal to help readability and simplicity of code. Ie, don't need to negate the value of strcmp, since this does a strcmp and does the negation for us
Paul Aurich <darkrain42@pidgin.im>
parents: 24866
diff changeset
246 else if (purple_strequal(type, "envvar"))
41318
56092ffeae95 Move PurpleProxyInfo from a boxed type to a GObject
Gary Kramlich <grim@reaperworld.com>
parents: 41211
diff changeset
247 proxytype = PURPLE_PROXY_TYPE_USE_ENVVAR;
6001
1abbeff6571c [gaim-migrate @ 6449]
Mark Doliner <markdoliner@pidgin.im>
parents: 5970
diff changeset
248 else
1abbeff6571c [gaim-migrate @ 6449]
Mark Doliner <markdoliner@pidgin.im>
parents: 5970
diff changeset
249 proxytype = -1;
1abbeff6571c [gaim-migrate @ 6449]
Mark Doliner <markdoliner@pidgin.im>
parents: 5970
diff changeset
250
35378
5d9e2581005b gtk-doc prep: *_get_type() functions are hidden as standard GType-returning funcs, so rename them.
Ankit Vani <a@nevitus.org>
parents: 35265
diff changeset
251 purple_proxy_info_set_proxy_type(info, proxytype);
25859
b42be7bb9dac Patch from Paul Aurich to add purple_strequal to help readability and simplicity of code. Ie, don't need to negate the value of strcmp, since this does a strcmp and does the negation for us
Paul Aurich <darkrain42@pidgin.im>
parents: 24866
diff changeset
252 } else if (purple_strequal(name, "/purple/proxy/host"))
41318
56092ffeae95 Move PurpleProxyInfo from a boxed type to a GObject
Gary Kramlich <grim@reaperworld.com>
parents: 41211
diff changeset
253 purple_proxy_info_set_hostname(info, value);
25859
b42be7bb9dac Patch from Paul Aurich to add purple_strequal to help readability and simplicity of code. Ie, don't need to negate the value of strcmp, since this does a strcmp and does the negation for us
Paul Aurich <darkrain42@pidgin.im>
parents: 24866
diff changeset
254 else if (purple_strequal(name, "/purple/proxy/port"))
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15746
diff changeset
255 purple_proxy_info_set_port(info, GPOINTER_TO_INT(value));
25859
b42be7bb9dac Patch from Paul Aurich to add purple_strequal to help readability and simplicity of code. Ie, don't need to negate the value of strcmp, since this does a strcmp and does the negation for us
Paul Aurich <darkrain42@pidgin.im>
parents: 24866
diff changeset
256 else if (purple_strequal(name, "/purple/proxy/username"))
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15746
diff changeset
257 purple_proxy_info_set_username(info, value);
25859
b42be7bb9dac Patch from Paul Aurich to add purple_strequal to help readability and simplicity of code. Ie, don't need to negate the value of strcmp, since this does a strcmp and does the negation for us
Paul Aurich <darkrain42@pidgin.im>
parents: 24866
diff changeset
258 else if (purple_strequal(name, "/purple/proxy/password"))
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15746
diff changeset
259 purple_proxy_info_set_password(info, value);
1087
bc9c6b635358 [gaim-migrate @ 1097]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1057
diff changeset
260 }
5681
514fbc5374dc [gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents: 5580
diff changeset
261
42038
ecb08d1c66eb Make purple_proxy_get_handle private
Gary Kramlich <grim@reaperworld.com>
parents: 41960
diff changeset
262 static void *
41840
fe350460fb1c Remove C99-obsoleted constructs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41685
diff changeset
263 purple_proxy_get_handle(void)
14151
34427f138b1f [gaim-migrate @ 16712]
Mark Doliner <markdoliner@pidgin.im>
parents: 14097
diff changeset
264 {
34427f138b1f [gaim-migrate @ 16712]
Mark Doliner <markdoliner@pidgin.im>
parents: 14097
diff changeset
265 static int handle;
34427f138b1f [gaim-migrate @ 16712]
Mark Doliner <markdoliner@pidgin.im>
parents: 14097
diff changeset
266
34427f138b1f [gaim-migrate @ 16712]
Mark Doliner <markdoliner@pidgin.im>
parents: 14097
diff changeset
267 return &handle;
34427f138b1f [gaim-migrate @ 16712]
Mark Doliner <markdoliner@pidgin.im>
parents: 14097
diff changeset
268 }
34427f138b1f [gaim-migrate @ 16712]
Mark Doliner <markdoliner@pidgin.im>
parents: 14097
diff changeset
269
5681
514fbc5374dc [gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents: 5580
diff changeset
270 void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15746
diff changeset
271 purple_proxy_init(void)
5681
514fbc5374dc [gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents: 5580
diff changeset
272 {
10087
e5b80a38939d [gaim-migrate @ 11098]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9863
diff changeset
273 void *handle;
e5b80a38939d [gaim-migrate @ 11098]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9863
diff changeset
274
5681
514fbc5374dc [gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents: 5580
diff changeset
275 /* Initialize a default proxy info struct. */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15746
diff changeset
276 global_proxy_info = purple_proxy_info_new();
5681
514fbc5374dc [gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents: 5580
diff changeset
277
514fbc5374dc [gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents: 5580
diff changeset
278 /* Proxy */
16478
19107605c565 Works for me! Renames prefs: /core to /purple, /gaim/gtk to /pidgin, /gaim/gnt to /finch
Sean Egan <seanegan@pidgin.im>
parents: 16037
diff changeset
279 purple_prefs_add_none("/purple/proxy");
19107605c565 Works for me! Renames prefs: /core to /purple, /gaim/gtk to /pidgin, /gaim/gnt to /finch
Sean Egan <seanegan@pidgin.im>
parents: 16037
diff changeset
280 purple_prefs_add_string("/purple/proxy/type", "none");
19107605c565 Works for me! Renames prefs: /core to /purple, /gaim/gtk to /pidgin, /gaim/gnt to /finch
Sean Egan <seanegan@pidgin.im>
parents: 16037
diff changeset
281 purple_prefs_add_string("/purple/proxy/host", "");
19107605c565 Works for me! Renames prefs: /core to /purple, /gaim/gtk to /pidgin, /gaim/gnt to /finch
Sean Egan <seanegan@pidgin.im>
parents: 16037
diff changeset
282 purple_prefs_add_int("/purple/proxy/port", 0);
19107605c565 Works for me! Renames prefs: /core to /purple, /gaim/gtk to /pidgin, /gaim/gnt to /finch
Sean Egan <seanegan@pidgin.im>
parents: 16037
diff changeset
283 purple_prefs_add_string("/purple/proxy/username", "");
19107605c565 Works for me! Renames prefs: /core to /purple, /gaim/gtk to /pidgin, /gaim/gnt to /finch
Sean Egan <seanegan@pidgin.im>
parents: 16037
diff changeset
284 purple_prefs_add_string("/purple/proxy/password", "");
5681
514fbc5374dc [gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents: 5580
diff changeset
285
514fbc5374dc [gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents: 5580
diff changeset
286 /* Setup callbacks for the preferences. */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15746
diff changeset
287 handle = purple_proxy_get_handle();
16478
19107605c565 Works for me! Renames prefs: /core to /purple, /gaim/gtk to /pidgin, /gaim/gnt to /finch
Sean Egan <seanegan@pidgin.im>
parents: 16037
diff changeset
288 purple_prefs_connect_callback(handle, "/purple/proxy/type", proxy_pref_cb,
13201
8c224ef70efa [gaim-migrate @ 15563]
Daniel Atallah <datallah@pidgin.im>
parents: 13085
diff changeset
289 NULL);
16478
19107605c565 Works for me! Renames prefs: /core to /purple, /gaim/gtk to /pidgin, /gaim/gnt to /finch
Sean Egan <seanegan@pidgin.im>
parents: 16037
diff changeset
290 purple_prefs_connect_callback(handle, "/purple/proxy/host", proxy_pref_cb,
13201
8c224ef70efa [gaim-migrate @ 15563]
Daniel Atallah <datallah@pidgin.im>
parents: 13085
diff changeset
291 NULL);
16478
19107605c565 Works for me! Renames prefs: /core to /purple, /gaim/gtk to /pidgin, /gaim/gnt to /finch
Sean Egan <seanegan@pidgin.im>
parents: 16037
diff changeset
292 purple_prefs_connect_callback(handle, "/purple/proxy/port", proxy_pref_cb,
13201
8c224ef70efa [gaim-migrate @ 15563]
Daniel Atallah <datallah@pidgin.im>
parents: 13085
diff changeset
293 NULL);
16478
19107605c565 Works for me! Renames prefs: /core to /purple, /gaim/gtk to /pidgin, /gaim/gnt to /finch
Sean Egan <seanegan@pidgin.im>
parents: 16037
diff changeset
294 purple_prefs_connect_callback(handle, "/purple/proxy/username",
13201
8c224ef70efa [gaim-migrate @ 15563]
Daniel Atallah <datallah@pidgin.im>
parents: 13085
diff changeset
295 proxy_pref_cb, NULL);
16478
19107605c565 Works for me! Renames prefs: /core to /purple, /gaim/gtk to /pidgin, /gaim/gnt to /finch
Sean Egan <seanegan@pidgin.im>
parents: 16037
diff changeset
296 purple_prefs_connect_callback(handle, "/purple/proxy/password",
13201
8c224ef70efa [gaim-migrate @ 15563]
Daniel Atallah <datallah@pidgin.im>
parents: 13085
diff changeset
297 proxy_pref_cb, NULL);
20053
68ce40196f8a grab revision 6be36979d022284283217c2a32f2b812740cbbf3
Luke Schierer <lschiere@pidgin.im>
parents: 19985
diff changeset
298
68ce40196f8a grab revision 6be36979d022284283217c2a32f2b812740cbbf3
Luke Schierer <lschiere@pidgin.im>
parents: 19985
diff changeset
299 /* Load the initial proxy settings */
20055
ca7144d5605f grab revision 240d37f3b465527200f862ff3c0da77618ae32ae
Luke Schierer <lschiere@pidgin.im>
parents: 20053
diff changeset
300 purple_prefs_trigger_callback("/purple/proxy/type");
ca7144d5605f grab revision 240d37f3b465527200f862ff3c0da77618ae32ae
Luke Schierer <lschiere@pidgin.im>
parents: 20053
diff changeset
301 purple_prefs_trigger_callback("/purple/proxy/host");
ca7144d5605f grab revision 240d37f3b465527200f862ff3c0da77618ae32ae
Luke Schierer <lschiere@pidgin.im>
parents: 20053
diff changeset
302 purple_prefs_trigger_callback("/purple/proxy/port");
ca7144d5605f grab revision 240d37f3b465527200f862ff3c0da77618ae32ae
Luke Schierer <lschiere@pidgin.im>
parents: 20053
diff changeset
303 purple_prefs_trigger_callback("/purple/proxy/username");
ca7144d5605f grab revision 240d37f3b465527200f862ff3c0da77618ae32ae
Luke Schierer <lschiere@pidgin.im>
parents: 20053
diff changeset
304 purple_prefs_trigger_callback("/purple/proxy/password");
5681
514fbc5374dc [gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents: 5580
diff changeset
305 }
10087
e5b80a38939d [gaim-migrate @ 11098]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9863
diff changeset
306
14151
34427f138b1f [gaim-migrate @ 16712]
Mark Doliner <markdoliner@pidgin.im>
parents: 14097
diff changeset
307 void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15746
diff changeset
308 purple_proxy_uninit(void)
10087
e5b80a38939d [gaim-migrate @ 11098]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9863
diff changeset
309 {
28177
e62fe687ca6c Clean up various file-scoped globals at uninit.
Paul Aurich <darkrain42@pidgin.im>
parents: 27943
diff changeset
310 purple_prefs_disconnect_by_handle(purple_proxy_get_handle());
e62fe687ca6c Clean up various file-scoped globals at uninit.
Paul Aurich <darkrain42@pidgin.im>
parents: 27943
diff changeset
311
41318
56092ffeae95 Move PurpleProxyInfo from a boxed type to a GObject
Gary Kramlich <grim@reaperworld.com>
parents: 41211
diff changeset
312 g_clear_object(&global_proxy_info);
10087
e5b80a38939d [gaim-migrate @ 11098]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9863
diff changeset
313 }

mercurial