# HG changeset patch # User Daniel Atallah # Date 1189792505 0 # Node ID 1846fd2da2b4b442affa42d4535a0879f2d39cf6 # Parent 1691f4c9b6a82379294a9108fa5334c9a5814c96 Fix proxy settings to be loaded correctly when libpurple is initialized. This was broken because it relied on the prefs being loaded after proxy initialization so that the pref callbacks would be triggered and I changed the prefs loading to happen right at the beginning to fix other issues. Fixes #3092. diff -r 1691f4c9b6a8 -r 1846fd2da2b4 libpurple/proxy.c --- a/libpurple/proxy.c Fri Sep 14 15:39:51 2007 +0000 +++ b/libpurple/proxy.c Fri Sep 14 17:55:05 2007 +0000 @@ -400,7 +400,7 @@ */ if (!PURPLE_PROXY_CONNECT_DATA_IS_VALID(connect_data)) return; - + purple_debug_info("proxy", "Connected to %s:%d.\n", connect_data->host, connect_data->port); @@ -1992,6 +1992,13 @@ proxy_pref_cb, NULL); purple_prefs_connect_callback(handle, "/purple/proxy/password", proxy_pref_cb, NULL); + + /* Load the initial proxy settings */ + proxy_pref_cb("/purple/proxy/type", PURPLE_PREF_STRING, purple_prefs_get_string("/purple/proxy/type"), NULL); + proxy_pref_cb("/purple/proxy/host", PURPLE_PREF_STRING, purple_prefs_get_string("/purple/proxy/host"), NULL); + proxy_pref_cb("/purple/proxy/port", PURPLE_PREF_STRING, GINT_TO_POINTER(purple_prefs_get_int("/purple/proxy/port")), NULL); + proxy_pref_cb("/purple/proxy/username", PURPLE_PREF_STRING, purple_prefs_get_string("/purple/proxy/username"), NULL); + proxy_pref_cb("/purple/proxy/password", PURPLE_PREF_STRING, purple_prefs_get_string("/purple/proxy/password"), NULL); } void diff -r 1691f4c9b6a8 -r 1846fd2da2b4 pidgin/gtkprefs.c --- a/pidgin/gtkprefs.c Fri Sep 14 15:39:51 2007 +0000 +++ b/pidgin/gtkprefs.c Fri Sep 14 17:55:05 2007 +0000 @@ -1093,7 +1093,7 @@ const char *proxy = value; if (strcmp(proxy, "none") && strcmp(proxy, "envvar")) - gtk_widget_show_all(frame); + gtk_widget_show_all(frame); else gtk_widget_hide(frame); }