diff options
author | Dan Winship <danw@gnome.org> | 2009-06-06 18:52:30 -0400 |
---|---|---|
committer | Dan Winship <danw@gnome.org> | 2009-06-06 22:58:49 -0400 |
commit | dee7dc77b3ec662f60044f25abe6b5193b87f086 (patch) | |
tree | 016678b3dbdac9d23f5fffceb9804f2a0340e176 /libsoup/soup-session-sync.c | |
parent | 777af4c8ec7b73d3c2376091401c00cb945cd6fc (diff) | |
download | libsoup-dee7dc77b3ec662f60044f25abe6b5193b87f086.tar.gz |
Fix hostname resolution behavior
Previously we went to some effort to resolve the message URI hostname
to an IP address before figuring out proxies/connections, but this
turns out to be wrong for multiple reasons:
1. Some hosts that send all requests via proxy don't even have a
working DNS config.
(http://bugzilla.gnome.org/show_bug.cgi?id=577532)
2. Apparently no one expects hostnames in requests to be matched
against IP addresses in proxy ignore lists anyway.
3. The big web browsers all implement connection limits on a
per-hostname basis, not a per-IP basis, and some web pages take
advantage of this by using multiple aliases for the same host
to get around the connection limit.
Also update tests/proxy-test to verify that the hostname is not
resolved when passing a request to a proxy.
Diffstat (limited to 'libsoup/soup-session-sync.c')
-rw-r--r-- | libsoup/soup-session-sync.c | 12 |
1 files changed, 0 insertions, 12 deletions
diff --git a/libsoup/soup-session-sync.c b/libsoup/soup-session-sync.c index bb8e336b..624bfefd 100644 --- a/libsoup/soup-session-sync.c +++ b/libsoup/soup-session-sync.c @@ -202,20 +202,8 @@ process_queue_item (SoupMessageQueueItem *item) SoupSessionSyncPrivate *priv = SOUP_SESSION_SYNC_GET_PRIVATE (item->session); SoupMessage *msg = item->msg; SoupConnection *conn; - SoupAddress *addr; - guint status; do { - /* Resolve address */ - addr = soup_message_get_address (msg); - status = soup_address_resolve_sync (addr, item->cancellable); - if (!SOUP_STATUS_IS_SUCCESSFUL (status)) { - if (status != SOUP_STATUS_CANCELLED) - soup_session_cancel_message (item->session, msg, status); - break; - } - - /* Get a connection */ conn = wait_for_connection (item->session, msg); if (!conn) break; |