pidgin.2.6.5: 583c1ae1: *** Plucked rev a35d515dd2c8f385ed456335...
datallah at pidgin.im
datallah at pidgin.im
Thu Jan 7 19:00:55 EST 2010
-----------------------------------------------------------------
Revision: 583c1ae15e7cbb18ba5a65705fff249b5eda32c7
Ancestor: 3bc270281fbb0f1322d25cf344feec8bb045862e
Author: datallah at pidgin.im
Date: 2010-01-07T23:42:35
Branch: im.pidgin.pidgin.2.6.5
URL: http://d.pidgin.im/viewmtn/revision/info/583c1ae15e7cbb18ba5a65705fff249b5eda32c7
Modified files:
libpurple/proxy.c
ChangeLog:
*** Plucked rev a35d515dd2c8f385ed4563358fccee9108573018 (f05c54b03e6bbfdbff38c01697fbd353a969e05e):
disapproval of revision '32e63a51dbb65b8b63d134bde098d40167574148'
This change has produced regressions when using HTTP/1.0, as the proxy closes the connection, which is treated as a connection failure. Closes #10880, #10856 for examples. Refs #2910.
-------------- next part --------------
============================================================
--- libpurple/proxy.c d2f4232885d1987d012511c354e31560180ecae5
+++ libpurple/proxy.c 9635445cccc76924bbfb3b4cf2934a0ea2425e74
@@ -1099,6 +1099,36 @@ http_start_connect_tunneling(PurpleProxy
connect_data->host, connect_data->port,
connect_data->host, connect_data->port);
+ if (purple_proxy_info_get_username(connect_data->gpi) != NULL)
+ {
+ char *t1, *t2, *ntlm_type1;
+ char hostname[256];
+
+ ret = gethostname(hostname, sizeof(hostname));
+ hostname[sizeof(hostname) - 1] = '\0';
+ if (ret < 0 || hostname[0] == '\0') {
+ purple_debug_warning("proxy", "gethostname() failed -- is your hostname set?");
+ strcpy(hostname, "localhost");
+ }
+
+ t1 = g_strdup_printf("%s:%s",
+ purple_proxy_info_get_username(connect_data->gpi),
+ purple_proxy_info_get_password(connect_data->gpi) ?
+ purple_proxy_info_get_password(connect_data->gpi) : "");
+ t2 = purple_base64_encode((const guchar *)t1, strlen(t1));
+ g_free(t1);
+
+ ntlm_type1 = purple_ntlm_gen_type1(hostname, "");
+
+ g_string_append_printf(request,
+ "Proxy-Authorization: Basic %s\r\n"
+ "Proxy-Authorization: NTLM %s\r\n"
+ "Proxy-Connection: Keep-Alive\r\n",
+ t2, ntlm_type1);
+ g_free(ntlm_type1);
+ g_free(t2);
+ }
+
g_string_append(request, "\r\n");
connect_data->write_buf_len = request->len;
More information about the Commits
mailing list