[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