summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan-Michael Brummer <jan.brummer@tabos.org>2023-03-12 00:02:31 +0100
committerJan-Michael Brummer <jan.brummer@tabos.org>2023-03-27 16:31:58 +0200
commitf3c0d55c5964696937cc3281de22a7a2f9aa65c8 (patch)
treea9ace3e4c6afca92b016e93757d44534cb0d0a98
parente0424607df081c88b0c4531c9b2a3da6bfb506c0 (diff)
downloadlibproxy-git-f3c0d55c5964696937cc3281de22a7a2f9aa65c8.tar.gz
Improve non http proxy tests (#72)
-rw-r--r--src/backend/px-manager.c16
-rw-r--r--tests/data/px-manager-sample.pac12
-rw-r--r--tests/px-manager-test.c16
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;