diff options
author | Jan-Michael Brummer <jan.brummer@tabos.org> | 2023-03-12 00:02:31 +0100 |
---|---|---|
committer | Jan-Michael Brummer <jan.brummer@tabos.org> | 2023-03-27 16:31:58 +0200 |
commit | f3c0d55c5964696937cc3281de22a7a2f9aa65c8 (patch) | |
tree | a9ace3e4c6afca92b016e93757d44534cb0d0a98 | |
parent | e0424607df081c88b0c4531c9b2a3da6bfb506c0 (diff) | |
download | libproxy-git-f3c0d55c5964696937cc3281de22a7a2f9aa65c8.tar.gz |
Improve non http proxy tests (#72)
-rw-r--r-- | src/backend/px-manager.c | 16 | ||||
-rw-r--r-- | tests/data/px-manager-sample.pac | 12 | ||||
-rw-r--r-- | tests/px-manager-test.c | 16 |
3 files changed, 33 insertions, 11 deletions
diff --git a/src/backend/px-manager.c b/src/backend/px-manager.c index 51669cb..f2c0a2c 100644 --- a/src/backend/px-manager.c +++ b/src/backend/px-manager.c @@ -56,7 +56,6 @@ struct _PxManager { CURL *curl; #endif char *plugins_dir; - GCancellable *cancellable; char *config_plugin; char *config_option; @@ -142,8 +141,8 @@ px_manager_constructed (GObject *object) self->pac_data = NULL; self->network_monitor = g_network_monitor_get_default (); - self->online = g_network_monitor_get_network_available (self->network_monitor); g_signal_connect_object (G_OBJECT (self->network_monitor), "network-changed", G_CALLBACK (px_manager_on_network_changed), self, 0); + px_manager_on_network_changed (self->network_monitor, g_network_monitor_get_network_available (self->network_monitor), self); g_debug ("%s: Up and running", __FUNCTION__); } @@ -153,11 +152,6 @@ px_manager_dispose (GObject *object) PxManager *self = PX_MANAGER (object); const GList *list; - if (self->cancellable) { - g_cancellable_cancel (self->cancellable); - g_clear_object (&self->cancellable); - } - list = peas_engine_get_plugin_list (self->engine); for (; list && list->data; list = list->next) { PeasPluginInfo *info = PEAS_PLUGIN_INFO (list->data); @@ -446,14 +440,14 @@ px_manager_run_pac (PeasExtensionSet *set, if (g_ascii_strncasecmp (method, "proxy", 5) == 0) { proxy_string = g_uri_to_string (uri); - } else if (g_ascii_strncasecmp (method, "socks", 5) == 0) { - proxy_string = g_strconcat ("socks://", server, NULL); - } else if (g_ascii_strncasecmp (method, "socks4", 6) == 0) { - proxy_string = g_strconcat ("socks4://", server, NULL); } else if (g_ascii_strncasecmp (method, "socks4a", 7) == 0) { proxy_string = g_strconcat ("socks4a://", server, NULL); + } else if (g_ascii_strncasecmp (method, "socks4", 6) == 0) { + proxy_string = g_strconcat ("socks4://", server, NULL); } else if (g_ascii_strncasecmp (method, "socks5", 6) == 0) { proxy_string = g_strconcat ("socks5://", server, NULL); + } else if (g_ascii_strncasecmp (method, "socks", 5) == 0) { + proxy_string = g_strconcat ("socks://", server, NULL); } g_strv_builder_add (pac_data->builder, proxy_string); diff --git a/tests/data/px-manager-sample.pac b/tests/data/px-manager-sample.pac index b86c555..335c6b8 100644 --- a/tests/data/px-manager-sample.pac +++ b/tests/data/px-manager-sample.pac @@ -2,5 +2,17 @@ function FindProxyForURL(url, host) { var myIP = myIpAddress(); + if(shExpMatch(host,"192.168.10.4")) + return "SOCKS 127.0.0.1:1983" + + if(shExpMatch(host,"192.168.10.5")) + return "SOCKS4 127.0.0.1:1983" + + if(shExpMatch(host,"192.168.10.6")) + return "SOCKS4A 127.0.0.1:1983" + + if(shExpMatch(host,"192.168.10.7")) + return "SOCKS5 127.0.0.1:1983" + return "PROXY 127.0.0.1:1983" } diff --git a/tests/px-manager-test.c b/tests/px-manager-test.c index 85936c8..c5d0bf3 100644 --- a/tests/px-manager-test.c +++ b/tests/px-manager-test.c @@ -140,6 +140,22 @@ get_proxies_pac (gpointer data) g_assert_nonnull (config); g_assert_cmpstr (config[0], ==, "http://127.0.0.1:1983"); + config = px_manager_get_proxies_sync (self->manager, "https://192.168.10.4", NULL); + g_assert_nonnull (config); + g_assert_cmpstr (config[0], ==, "socks://127.0.0.1:1983"); + + config = px_manager_get_proxies_sync (self->manager, "https://192.168.10.5", NULL); + g_assert_nonnull (config); + g_assert_cmpstr (config[0], ==, "socks4://127.0.0.1:1983"); + + config = px_manager_get_proxies_sync (self->manager, "https://192.168.10.6", NULL); + g_assert_nonnull (config); + g_assert_cmpstr (config[0], ==, "socks4a://127.0.0.1:1983"); + + config = px_manager_get_proxies_sync (self->manager, "https://192.168.10.7", NULL); + g_assert_nonnull (config); + g_assert_cmpstr (config[0], ==, "socks5://127.0.0.1:1983"); + g_main_loop_quit (self->loop); return NULL; |