summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorTimo Sirainen <cras@irssi.org>2002-01-24 20:57:16 +0000
committercras <cras@dbcabf3a-b0e7-0310-adc4-f8d773084564>2002-01-24 20:57:16 +0000
commit182adb805c59a2469810789697821c70249438f8 (patch)
tree49c1a8b28fd2f0901724a9c1f88908f60671cbc7 /src
parentd74d284463d4aa490b789f9be45a3e478929b0f7 (diff)
downloadirssi-182adb805c59a2469810789697821c70249438f8.zip
/SERVER ADD: added -noproxy option and -proxy which just removes the
-noproxy. git-svn-id: http://svn.irssi.org/repos/irssi/trunk@2344 dbcabf3a-b0e7-0310-adc4-f8d773084564
Diffstat (limited to 'src')
-rw-r--r--src/core/server-setup-rec.h1
-rw-r--r--src/core/servers-setup.c3
-rw-r--r--src/fe-common/core/fe-server.c4
-rw-r--r--src/fe-common/irc/fe-irc-server.c2
4 files changed, 9 insertions, 1 deletions
diff --git a/src/core/server-setup-rec.h b/src/core/server-setup-rec.h
index 4352bef7..f94ec9ae 100644
--- a/src/core/server-setup-rec.h
+++ b/src/core/server-setup-rec.h
@@ -14,6 +14,7 @@ IPADDR *own_ip4, *own_ip6; /* resolved own_address if not NULL */
time_t last_connect; /* to avoid reconnecting too fast.. */
unsigned int autoconnect:1;
+unsigned int no_proxy:1;
unsigned int last_failed:1; /* if last connection attempt failed */
unsigned int banned:1; /* if we're banned from this server */
unsigned int dns_error:1; /* DNS said the host doesn't exist */
diff --git a/src/core/servers-setup.c b/src/core/servers-setup.c
index 3f500a07..a8dd8467 100644
--- a/src/core/servers-setup.c
+++ b/src/core/servers-setup.c
@@ -156,6 +156,9 @@ static void server_setup_fill_server(SERVER_CONNECT_REC *conn,
sserver->last_connect = time(NULL);
+ if (sserver->no_proxy)
+ g_free_and_null(conn->proxy);
+
if (sserver->family != 0 && conn->family == 0)
conn->family = sserver->family;
if (sserver->port > 0 && conn->port <= 0)
diff --git a/src/fe-common/core/fe-server.c b/src/fe-common/core/fe-server.c
index cd783898..d8f9d137 100644
--- a/src/fe-common/core/fe-server.c
+++ b/src/fe-common/core/fe-server.c
@@ -146,6 +146,8 @@ static void cmd_server_add(const char *data)
if (g_hash_table_lookup(optlist, "auto")) rec->autoconnect = TRUE;
if (g_hash_table_lookup(optlist, "noauto")) rec->autoconnect = FALSE;
+ if (g_hash_table_lookup(optlist, "proxy")) rec->no_proxy = FALSE;
+ if (g_hash_table_lookup(optlist, "noproxy")) rec->no_proxy = TRUE;
if (*password != '\0' && strcmp(password, "-") != 0) rec->password = g_strdup(password);
value = g_hash_table_lookup(optlist, "host");
@@ -322,7 +324,7 @@ void fe_server_init(void)
command_bind("server connect", NULL, (SIGNAL_FUNC) cmd_server_connect);
command_bind("server add", NULL, (SIGNAL_FUNC) cmd_server_add);
command_bind("server remove", NULL, (SIGNAL_FUNC) cmd_server_remove);
- command_set_options("server add", "4 6 auto noauto -host -port");
+ command_set_options("server add", "4 6 auto noauto proxy noproxy -host -port");
signal_add("server looking", (SIGNAL_FUNC) sig_server_looking);
signal_add("server connecting", (SIGNAL_FUNC) sig_server_connecting);
diff --git a/src/fe-common/irc/fe-irc-server.c b/src/fe-common/irc/fe-irc-server.c
index a2ce1c0e..221c7943 100644
--- a/src/fe-common/irc/fe-irc-server.c
+++ b/src/fe-common/irc/fe-irc-server.c
@@ -75,6 +75,8 @@ static void cmd_server_list(const char *data)
g_string_append(str, "(pass), ");
if (rec->autoconnect)
g_string_append(str, "autoconnect, ");
+ if (rec->no_proxy)
+ g_string_append(str, "noproxy, ");
if (rec->max_cmds_at_once > 0)
g_string_sprintfa(str, "cmdmax: %d, ", rec->max_cmds_at_once);
if (rec->cmd_queue_speed > 0)