[Pidgin] #2910: NTLM proxy authorization broken
Pidgin
trac at pidgin.im
Thu Dec 3 13:44:14 EST 2009
#2910: NTLM proxy authorization broken
---------------------+------------------------------------------------------
Reporter: thecrux | Owner: datallah
Type: patch | Status: new
Milestone: | Component: libpurple
Version: 2.1.1 | Resolution:
Keywords: ntlm |
---------------------+------------------------------------------------------
Comment(by thecrux):
Replying to [comment:24 darkrain42@…]:
> (In [d612071593881b9ae7e92a1820cf13d3e45b1f94]):[[BR]]
> disapproval of revision 'd6f80b7ba5ba2da4ae203eac6f07565721b10ad8'
>
> This change has produced regressions when using HTTP/1.0, as the proxy
closes the connection, which is treated as a connection failure. Refs
#10880, #10856 for examples. Refs #2910
Sorry for that. Patch was not tested carefully...
I will attach another patch (against 2.6.4) to fix this issue.
Patch description:
* add field of type PurpleProxyAuth in struct PurpleProxyInfo to save
type of authorization on proxy (unknown, basic, ntlm)
* when receive 407 code from proxy save type of authorization from
"Proxy-Authenticate" header to this field
* disconnect from proxy, initialte new connection to the same proxy host
and sent correct Proxy-Authorization header
* if specified wrong credentials - disconnect from proxy finnaly
Some details:
* do not use g_slist_remove() in function try_connect() and dont free
addr (we need address of proxy for the next connection)
* move g_slist_remove() to function
purple_proxy_connect_data_disconnect()
* dont free elements of GSlist in purple_proxy_connect_data_destroy()
(pidgin crash on free, may be because g_slist_remove() free it before us)
Patched pidgin was tested with proxy server squid with NTLM auth, and on
another proxy with Basic auth. All works fine (wireshark's dumps also show
that schema works correctly).
--
Ticket URL: <http://developer.pidgin.im/ticket/2910#comment:28>
Pidgin <http://pidgin.im>
Pidgin
More information about the Tracker
mailing list