--- 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.
--- 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);