mirror of
https://github.com/moparisthebest/wget
synced 2024-07-03 16:38:41 -04:00
Properly format IPv6 addresses.
This commit is contained in:
parent
c2ee928302
commit
5e1badae1e
@ -1,3 +1,8 @@
|
|||||||
|
2012-01-09 Sasikantha Babu <sasikanth.v19@gmail.com> (tiny change)
|
||||||
|
* connect.c (connect_to_ip): properly formatted ipv6 address display.
|
||||||
|
(socket_family): New function - returns socket family type.
|
||||||
|
* http.c (gethttp): properly formatted ipv6 address display.
|
||||||
|
|
||||||
2011-11-09 Gijs van Tulder <address@hidden>
|
2011-11-09 Gijs van Tulder <address@hidden>
|
||||||
|
|
||||||
* warc.c: Call gzdopen() with wb9 instead of wb+9, which fails on
|
* warc.c: Call gzdopen() with wb9 instead of wb+9, which fails on
|
||||||
|
@ -298,7 +298,12 @@ connect_to_ip (const ip_address *ip, int port, const char *print)
|
|||||||
xfree (str);
|
xfree (str);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
{
|
||||||
|
if (ip->family == AF_INET)
|
||||||
logprintf (LOG_VERBOSE, _("Connecting to %s:%d... "), txt_addr, port);
|
logprintf (LOG_VERBOSE, _("Connecting to %s:%d... "), txt_addr, port);
|
||||||
|
else if (ip->family == AF_INET6)
|
||||||
|
logprintf (LOG_VERBOSE, _("Connecting to [%s]:%d... "), txt_addr, port);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Store the sockaddr info to SA. */
|
/* Store the sockaddr info to SA. */
|
||||||
@ -586,6 +591,36 @@ socket_ip_address (int sock, ip_address *ip, int endpoint)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Get the socket family of connection on FD and store
|
||||||
|
Return family type on success, -1 otherwise.
|
||||||
|
|
||||||
|
If ENDPOINT is ENDPOINT_LOCAL, it returns the sock family of the local
|
||||||
|
(client) side of the socket. Else if ENDPOINT is ENDPOINT_PEER, it
|
||||||
|
returns the sock family of the remote (peer's) side of the socket. */
|
||||||
|
|
||||||
|
int
|
||||||
|
socket_family (int sock, int endpoint)
|
||||||
|
{
|
||||||
|
struct sockaddr_storage storage;
|
||||||
|
struct sockaddr *sockaddr = (struct sockaddr *) &storage;
|
||||||
|
socklen_t addrlen = sizeof (storage);
|
||||||
|
int ret;
|
||||||
|
|
||||||
|
memset (sockaddr, 0, addrlen);
|
||||||
|
|
||||||
|
if (endpoint == ENDPOINT_LOCAL)
|
||||||
|
ret = getsockname (sock, sockaddr, &addrlen);
|
||||||
|
else if (endpoint == ENDPOINT_PEER)
|
||||||
|
ret = getpeername (sock, sockaddr, &addrlen);
|
||||||
|
else
|
||||||
|
abort ();
|
||||||
|
|
||||||
|
if (ret < 0)
|
||||||
|
return -1;
|
||||||
|
|
||||||
|
return sockaddr->sa_family;
|
||||||
|
}
|
||||||
|
|
||||||
/* Return true if the error from the connect code can be considered
|
/* Return true if the error from the connect code can be considered
|
||||||
retryable. Wget normally retries after errors, but the exception
|
retryable. Wget normally retries after errors, but the exception
|
||||||
are the "unsupported protocol" type errors (possible on IPv4/IPv6
|
are the "unsupported protocol" type errors (possible on IPv4/IPv6
|
||||||
|
@ -51,6 +51,7 @@ enum {
|
|||||||
ENDPOINT_PEER
|
ENDPOINT_PEER
|
||||||
};
|
};
|
||||||
bool socket_ip_address (int, ip_address *, int);
|
bool socket_ip_address (int, ip_address *, int);
|
||||||
|
int socket_family (int sock, int endpoint);
|
||||||
|
|
||||||
bool retryable_socket_connect_error (int);
|
bool retryable_socket_connect_error (int);
|
||||||
|
|
||||||
|
@ -1951,8 +1951,14 @@ gethttp (struct url *u, struct http_stat *hs, int *dt, struct url *proxy,
|
|||||||
#endif
|
#endif
|
||||||
&host_lookup_failed))
|
&host_lookup_failed))
|
||||||
{
|
{
|
||||||
|
int family = socket_family (pconn.socket, ENDPOINT_PEER);
|
||||||
sock = pconn.socket;
|
sock = pconn.socket;
|
||||||
using_ssl = pconn.ssl;
|
using_ssl = pconn.ssl;
|
||||||
|
if (family == AF_INET6)
|
||||||
|
logprintf (LOG_VERBOSE, _("Reusing existing connection to [%s]:%d.\n"),
|
||||||
|
quotearg_style (escape_quoting_style, pconn.host),
|
||||||
|
pconn.port);
|
||||||
|
else
|
||||||
logprintf (LOG_VERBOSE, _("Reusing existing connection to %s:%d.\n"),
|
logprintf (LOG_VERBOSE, _("Reusing existing connection to %s:%d.\n"),
|
||||||
quotearg_style (escape_quoting_style, pconn.host),
|
quotearg_style (escape_quoting_style, pconn.host),
|
||||||
pconn.port);
|
pconn.port);
|
||||||
|
Loading…
Reference in New Issue
Block a user