Fri, 28 Nov 2008 00:31:28 +0000
disapproval of revision '424b07d5e8e2856a3cf1c118d52c4f8dbf4f8e51'
It turns out we do need to care about stderr with g_spawn_command_line_sync()
because if we don't pass a variable, it won't get captured, meaning it'll
go to the terminal, which we don't want.
| libpurple/proxy.c | file | annotate | diff | comparison | revisions |
--- a/libpurple/proxy.c Fri Nov 28 00:24:42 2008 +0000 +++ b/libpurple/proxy.c Fri Nov 28 00:31:28 2008 +0000 @@ -212,7 +212,7 @@ { static PurpleProxyInfo info = {0, NULL, 0, NULL, NULL}; gboolean use_same_proxy = FALSE; - gchar *tmp; + gchar *tmp, *err = NULL; tmp = g_find_program_in_path("gconftool-2"); if (tmp == NULL) @@ -223,8 +223,10 @@ /* Check whether to use a proxy. */ if (!g_spawn_command_line_sync("gconftool-2 -g /system/proxy/mode", - &tmp, NULL, NULL, NULL)) + &tmp, &err, NULL, NULL)) return purple_global_proxy_get_info(); + g_free(err); + err = NULL; if (!strcmp(tmp, "none\n")) { info.type = PURPLE_PROXY_NONE; @@ -256,8 +258,10 @@ } if (!g_spawn_command_line_sync("gconftool-2 -g /system/http_proxy/use_same_proxy", - &tmp, NULL, NULL, NULL)) + &tmp, &err, NULL, NULL)) return purple_global_proxy_get_info(); + g_free(err); + err = NULL; if (!strcmp(tmp, "true\n")) use_same_proxy = TRUE; @@ -266,8 +270,10 @@ if (!use_same_proxy) { if (!g_spawn_command_line_sync("gconftool-2 -g /system/proxy/socks_host", - &info.host, NULL, NULL, NULL)) + &info.host, &err, NULL, NULL)) return purple_global_proxy_get_info(); + g_free(err); + err = NULL; } if(info.host != NULL) @@ -276,19 +282,22 @@ if (!use_same_proxy && (info.host != NULL) && (*info.host != '\0')) { info.type = PURPLE_PROXY_SOCKS5; if (!g_spawn_command_line_sync("gconftool-2 -g /system/proxy/socks_port", - &tmp, NULL, NULL, NULL)) + &tmp, &err, NULL, NULL)) { g_free(info.host); info.host = NULL; return purple_global_proxy_get_info(); } + g_free(err); info.port = atoi(tmp); g_free(tmp); } else { g_free(info.host); if (!g_spawn_command_line_sync("gconftool-2 -g /system/http_proxy/host", - &info.host, NULL, NULL, NULL)) + &info.host, &err, NULL, NULL)) return purple_global_proxy_get_info(); + g_free(err); + err = NULL; /* If we get this far then we know we're using an HTTP proxy */ info.type = PURPLE_PROXY_HTTP; @@ -305,16 +314,18 @@ } if (!g_spawn_command_line_sync("gconftool-2 -g /system/http_proxy/authentication_user", - &info.username, NULL, NULL, NULL)) + &info.username, &err, NULL, NULL)) { g_free(info.host); info.host = NULL; return purple_global_proxy_get_info(); } + g_free(err); + err = NULL; g_strchomp(info.username); if (!g_spawn_command_line_sync("gconftool-2 -g /system/http_proxy/authentication_password", - &info.password, NULL, NULL, NULL)) + &info.password, &err, NULL, NULL)) { g_free(info.host); info.host = NULL; @@ -322,10 +333,12 @@ info.username = NULL; return purple_global_proxy_get_info(); } + g_free(err); + err = NULL; g_strchomp(info.password); if (!g_spawn_command_line_sync("gconftool-2 -g /system/http_proxy/port", - &tmp, NULL, NULL, NULL)) + &tmp, &err, NULL, NULL)) { g_free(info.host); info.host = NULL; @@ -335,6 +348,7 @@ info.password = NULL; return purple_global_proxy_get_info(); } + g_free(err); info.port = atoi(tmp); g_free(tmp); }