From ae6d2014e5c2916a17b17320159b0b4b63956746 Mon Sep 17 00:00:00 2001 From: Timo Sirainen Date: Tue, 20 Mar 2001 23:24:45 +0000 Subject: [PATCH] added /SET proxy_password git-svn-id: http://svn.irssi.org/repos/irssi/trunk@1414 dbcabf3a-b0e7-0310-adc4-f8d773084564 --- src/core/server-connect-rec.h | 2 +- src/core/servers-reconnect.c | 1 + src/core/servers-setup.c | 2 ++ src/core/servers.c | 1 + src/irc/core/irc-servers.c | 3 +++ 5 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/core/server-connect-rec.h b/src/core/server-connect-rec.h index 0186f964..f1b3d075 100644 --- a/src/core/server-connect-rec.h +++ b/src/core/server-connect-rec.h @@ -6,7 +6,7 @@ int chat_type; /* chat_protocol_lookup(xx) */ /* if we're connecting via proxy, or just NULLs */ char *proxy; int proxy_port; -char *proxy_string; +char *proxy_string, *proxy_password; unsigned short family; /* 0 = don't care, AF_INET or AF_INET6 */ char *address; diff --git a/src/core/servers-reconnect.c b/src/core/servers-reconnect.c index 1e2813d3..a9491f92 100644 --- a/src/core/servers-reconnect.c +++ b/src/core/servers-reconnect.c @@ -131,6 +131,7 @@ server_connect_copy_skeleton(SERVER_CONNECT_REC *src, int connect_info) dest->proxy = g_strdup(src->proxy); dest->proxy_port = src->proxy_port; dest->proxy_string = g_strdup(src->proxy_string); + dest->proxy_password = g_strdup(src->proxy_password); if (connect_info) { dest->family = src->family; diff --git a/src/core/servers-setup.c b/src/core/servers-setup.c index a2baa3c2..deaf3cc9 100644 --- a/src/core/servers-setup.c +++ b/src/core/servers-setup.c @@ -131,6 +131,7 @@ static void server_setup_fill(SERVER_CONNECT_REC *conn, conn->proxy = g_strdup(settings_get_str("proxy_address")); conn->proxy_port = settings_get_int("proxy_port"); conn->proxy_string = g_strdup(settings_get_str("proxy_string")); + conn->proxy_password = g_strdup(settings_get_str("proxy_password")); } /* source IP */ @@ -502,6 +503,7 @@ void servers_setup_init(void) settings_add_str("proxy", "proxy_address", ""); settings_add_int("proxy", "proxy_port", 6667); settings_add_str("proxy", "proxy_string", "CONNECT %s %d"); + settings_add_str("proxy", "proxy_password", ""); setupservers = NULL; source_host_ip4 = source_host_ip6 = NULL; diff --git a/src/core/servers.c b/src/core/servers.c index b78b9161..f74e7f58 100644 --- a/src/core/servers.c +++ b/src/core/servers.c @@ -408,6 +408,7 @@ void server_connect_free(SERVER_CONNECT_REC *conn) signal_emit("server connect free", 1, conn); g_free_not_null(conn->proxy); g_free_not_null(conn->proxy_string); + g_free_not_null(conn->proxy_password); g_free_not_null(conn->address); g_free_not_null(conn->chatnet); diff --git a/src/irc/core/irc-servers.c b/src/irc/core/irc-servers.c index 82e1dd0c..966ddf5e 100644 --- a/src/irc/core/irc-servers.c +++ b/src/irc/core/irc-servers.c @@ -109,6 +109,9 @@ static void server_init(IRC_SERVER_REC *server) conn = server->connrec; + if (conn->proxy_password != NULL && *conn->proxy_password != '\0') + irc_send_cmdv(server, "PASS %s", conn->proxy_password); + if (conn->proxy_string != NULL) irc_send_cmdv(server, conn->proxy_string, conn->address, conn->port);