summaryrefslogtreecommitdiff
path: root/libsoup/soup-connection-auth.c
Commit message (Collapse)AuthorAgeFilesLines
* Rework some of the SoupAuthNegotiate internalsTomas Popela2017-06-221-5/+24
| | | | | | | | | | | | | | | | | | | | There are several problems with the current state. The main problem is that the SoupMessage can outlive the SoupAuthNegotiate object and if the SoupMessage signals handlers are active then they could be called with invalid SoupAuthNegotiate object. To avoid that use the g_signal_connect_data() and increase the reference on the SoupAuthNegotiate object. Also rework how we are connecting the 'got_headers' signal handler to the SoupMessage object, so they are really connected only once, even if the GSS mechanism involves multiple rounds. The whole concept of how we are working with the SoupAuthNegotiateConnectionState is also wrong. When the connection state is created it's saved to the private structure and then accessed from there. The problem is that another state for different message could be created in the mean time and that one would overwrite the currently set (or if one would be freed then it would erase the one that is currently set). To solve this expose the SoupConnectionAuth's get_connection_state_for_message() and call it when we need the connection state object.
* Port some of the classes to the new glib private apiIgnacio Casal Quinteiro2016-11-141-5/+3
| | | | | | | | We are already depending on the a newly enough glib so we are now allowed to clean up a bit and use the new private api. https://bugzilla.gnome.org/show_bug.cgi?id=774189
* soup-auth-manager: split out connection handlingDan Winship2013-01-021-0/+173
Add a new SoupConnectionAuth class to help with connection tracking, and make SoupAuthNTLM a subclass of it. Allow a single SoupAuthNTLM to carry state information about multiple connections. Make SoupSession store the SoupConnection a SoupMessage is associated with on the message, and use that from SoupConnectionAuth rather than tracking sockets by hand like SoupAuthManager had previously done. Remove the connection tracking in SoupAuthManager, since it is no longer needed.