Mercurial > pidgin.yaz
comparison src/proxy.c @ 11878:f672349cfc1c
[gaim-migrate @ 14169]
Use GNOME proxy preferences.
Works For Me. People are going to go crazy.
We'll try it out in beta.
committer: Tailor Script <tailor@pidgin.im>
author | Sean Egan <seanegan@gmail.com> |
---|---|
date | Fri, 28 Oct 2005 23:12:04 +0000 |
parents | c39a48818f66 |
children | c5f12ada46d1 |
comparison
equal
deleted
inserted
replaced
11877:f1f7c83d7b6c | 11878:f672349cfc1c |
---|---|
181 gaim_global_proxy_get_info(void) | 181 gaim_global_proxy_get_info(void) |
182 { | 182 { |
183 return global_proxy_info; | 183 return global_proxy_info; |
184 } | 184 } |
185 | 185 |
186 GaimProxyInfo * | |
187 gaim_gnome_proxy_get_info(void) | |
188 { | |
189 static GaimProxyInfo info = {0, NULL, 0, NULL, NULL}; | |
190 gchar *path; | |
191 if ((path = g_find_program_in_path("gconftool-2"))) { | |
192 gchar *tmp; | |
193 | |
194 /* See whether to use a proxy. */ | |
195 if (!g_spawn_command_line_sync("gconftool-2 -g /system/http_proxy/use_http_proxy", &tmp, | |
196 NULL, NULL, NULL)) | |
197 return gaim_global_proxy_get_info(); | |
198 if (strcmp(tmp, "true\n")) { | |
199 info.type = GAIM_PROXY_NONE; | |
200 g_free(tmp); | |
201 return gaim_global_proxy_get_info(); | |
202 } | |
203 | |
204 g_free(tmp); | |
205 info.type = GAIM_PROXY_HTTP; | |
206 | |
207 /* Free the old fields */ | |
208 if (info.host) { | |
209 g_free(info.host); | |
210 info.host = NULL; | |
211 } | |
212 if (info.username) { | |
213 g_free(info.username); | |
214 info.username = NULL; | |
215 } | |
216 if (info.password) { | |
217 g_free(info.password); | |
218 info.password = NULL; | |
219 } | |
220 | |
221 /* Get the new ones */ | |
222 if (!g_spawn_command_line_sync("gconftool-2 -g /system/http_proxy/host", &info.host, | |
223 NULL, NULL, NULL)) | |
224 return gaim_global_proxy_get_info(); | |
225 g_strchomp(info.host); | |
226 | |
227 if (!g_spawn_command_line_sync("gconftool-2 -g /system/http_proxy/authentication_user", &info.username, | |
228 NULL, NULL, NULL)) | |
229 return gaim_global_proxy_get_info(); | |
230 g_strchomp(info.username); | |
231 | |
232 if (!g_spawn_command_line_sync("gconftool-2 -g /system/http_proxy/authentication_password", &info.password, | |
233 NULL, NULL, NULL)) | |
234 return gaim_global_proxy_get_info(); | |
235 g_strchomp(info.password); | |
236 | |
237 if (!g_spawn_command_line_sync("gconftool-2 -g /system/http_proxy/port", &tmp, | |
238 NULL, NULL, NULL)) | |
239 return gaim_global_proxy_get_info(); | |
240 info.port = atoi(tmp); | |
241 | |
242 g_free(path); | |
243 return &info; | |
244 } | |
245 return gaim_global_proxy_get_info(); | |
246 } | |
186 /************************************************************************** | 247 /************************************************************************** |
187 * Proxy API | 248 * Proxy API |
188 **************************************************************************/ | 249 **************************************************************************/ |
189 | 250 |
190 #ifdef __unix__ | 251 #ifdef __unix__ |
1804 g_return_val_if_fail(port != 0 && port != -1, -1); | 1865 g_return_val_if_fail(port != 0 && port != -1, -1); |
1805 g_return_val_if_fail(func != NULL, -1); | 1866 g_return_val_if_fail(func != NULL, -1); |
1806 | 1867 |
1807 phb = g_new0(struct PHB, 1); | 1868 phb = g_new0(struct PHB, 1); |
1808 | 1869 |
1809 if (account == NULL || gaim_account_get_proxy_info(account) == NULL) | 1870 if (account && gaim_account_get_proxy_info(account) != NULL) |
1871 phb->gpi = gaim_account_get_proxy_info(account); | |
1872 else if (gaim_running_gnome()) | |
1873 phb->gpi = gaim_gnome_proxy_get_info(); | |
1874 else | |
1810 phb->gpi = gaim_global_proxy_get_info(); | 1875 phb->gpi = gaim_global_proxy_get_info(); |
1811 else | |
1812 phb->gpi = gaim_account_get_proxy_info(account); | |
1813 | 1876 |
1814 phb->func = func; | 1877 phb->func = func; |
1815 phb->data = data; | 1878 phb->data = data; |
1816 phb->host = g_strdup(host); | 1879 phb->host = g_strdup(host); |
1817 phb->port = port; | 1880 phb->port = port; |