Change the SoupURI properties to SoupAddress properties.
authorDan Winship <danw@src.gnome.org>
Fri, 3 Oct 2008 21:01:54 +0000 (21:01 +0000)
committerDan Winship <danw@src.gnome.org>
Fri, 3 Oct 2008 21:01:54 +0000 (21:01 +0000)
commitd0f981d4761fb088ebbcbc2a1c387c209ce0c243
treeb9ffe58b4e51ec09bbd3ffabbc1d09d088d03405
parente67b923bffa8fe1d7b6b876e77cf588fa43dd18e
Change the SoupURI properties to SoupAddress properties.

* libsoup/soup-connection.c: Change the SoupURI properties to
SoupAddress properties.

* libsoup/soup-address.c (soup_address_resolve_async)
(soup_address_resolve_sync): Redo slightly so that multiple
simultaneous attempts to resolve the same address won't cause
problems.
(soup_address_hash_by_name, soup_address_equal_by_name):
(soup_address_hash_by_ip, soup_address_equal_by_ip): methods to
hash addresses by name or IP address

* libsoup/soup-message.c (soup_message_get_address): gets a
SoupAddress corresponding to the message's URI

* libsoup/soup-auth-manager.c (SoupAuthHost): hash hosts by
soup_address_hash_by_name() rather than by URI.

* libsoup/soup-session.c (soup_session_get_connection): pass
addresses to soup_connection_new(), not URIs.
(SoupSessionHost): hash hosts by soup_address_hash_by_ip() rather
than by URI. This requires that the addresses will have already
been resolved by the SoupSession subclasses before calling
soup_session_get_connection(), but also means that now requests
made to different virtual hosts on the same IP address can share a
connection.

* libsoup/soup-message-queue.c (SoupMessageQueueItem): add
address-resolving state

* libsoup/soup-session-sync.c (process_queue_item): resolve the
message's address before getting a connection

* libsoup/soup-session-async.c (run_queue, resolve_msg_addr)
(resolved_msg_addr): resolve the message's address before getting
a connection
(request_restarted): if the message gets requeued to a different
host, we'll need to re-resolve the address.

* libsoup/soup-uri.c (soup_uri_copy_root, soup_uri_host_hash)
(soup_uri_host_equal): No longer needed

* libsoup/soup-dns.c (do_async_callback): disconnect from the
cancellable before invoking the callback

* tests/proxy-test.c (tests): fix the 403 example; hostnames are
resolved by the session now, even when sending to a proxy, so we
need to use a hostname that actually exists

svn path=/trunk/; revision=1179
17 files changed:
ChangeLog
libsoup/soup-address.c
libsoup/soup-address.h
libsoup/soup-auth-manager.c
libsoup/soup-connection.c
libsoup/soup-connection.h
libsoup/soup-dns.c
libsoup/soup-message-private.h
libsoup/soup-message-queue.c
libsoup/soup-message-queue.h
libsoup/soup-message.c
libsoup/soup-message.h
libsoup/soup-session-async.c
libsoup/soup-session-sync.c
libsoup/soup-session.c
libsoup/soup-uri.c
tests/proxy-test.c