# HG changeset patch # User Mikael Berthe # Date 1126356781 -7200 # Node ID 0bb3d37579aaab4da6ca4ae6f505f9555949ed83 # Parent 4470868f90e50f82cf44ed87e7cf89069c8b65f9 Enable proxy support diff -r 4470868f90e5 -r 0bb3d37579aa mcabber/mcabberrc.example --- a/mcabber/mcabberrc.example Sat Sep 10 14:51:57 2005 +0200 +++ b/mcabber/mcabberrc.example Sat Sep 10 14:53:01 2005 +0200 @@ -19,6 +19,14 @@ set resource = mcabber #set priority = 3 +# Proxy +# mcabber can use a proxy if it supports the CONNECT method +# The proxy_user/proxy_pass variables are optional. +#set proxy_host = "proxy-hostname" +#set proxy_port = 3128 +#set proxy_user = "username" +#set proxy_pass = "password" + # Keepalive # If you need a ping/keepalive to leave your connection open, you # can use the pinginterval. Setting this option to 0 disables the ping. diff -r 4470868f90e5 -r 0bb3d37579aa mcabber/src/main.c --- a/mcabber/src/main.c Sat Sep 10 14:51:57 2005 +0200 +++ b/mcabber/src/main.c Sat Sep 10 14:53:01 2005 +0200 @@ -46,6 +46,7 @@ void mcabber_connect(void) { const char *username, *password, *resource, *servername; + const char *proxy_host; char *jid; int ssl; unsigned int port; @@ -54,6 +55,7 @@ username = settings_opt_get("username"); password = settings_opt_get("password"); resource = settings_opt_get("resource"); + proxy_host = settings_opt_get("proxy_host"); if (!servername) { scr_LogPrint(LPRINT_NORMAL, "Server name has not been specified!"); @@ -81,6 +83,21 @@ if (port) scr_LogPrint(LPRINT_NORMAL|LPRINT_DEBUG, " using port %d", port); + if (proxy_host) { + int proxy_port = settings_opt_get_int("proxy_port"); + if (proxy_port <= 0 || proxy_port > 65535) { + scr_LogPrint(LPRINT_LOGNORM, "Invalid proxy port: %d", proxy_port); + } else { + const char *proxy_user, *proxy_pass; + proxy_user = settings_opt_get("proxy_user"); + proxy_pass = settings_opt_get("proxy_pass"); + // Proxy initialization + cw_setproxy(proxy_host, proxy_port, proxy_user, proxy_pass); + scr_LogPrint(LPRINT_NORMAL|LPRINT_DEBUG, " using proxy %s:%d", + proxy_host, proxy_port); + } + } + jid = compose_jid(username, servername, resource); jc = jb_connect(jid, servername, port, ssl, password); g_free(jid);