mirror of
https://github.com/irssi/irssi.git
synced 2026-08-11 21:00:40 +02:00
Merge pull request #290 from LemonBoy/ipv6
Network and IPv{4,6} related changes
This commit is contained in:
commit
2d69deb0a3
19 changed files with 88 additions and 241 deletions
|
|
@ -264,12 +264,12 @@ GIOChannel *dcc_connect_ip(IPADDR *ip, int port)
|
|||
}
|
||||
|
||||
if (own_ip == NULL)
|
||||
own_ip = IPADDR_IS_V6(ip) ? source_host_ip6 : source_host_ip4;
|
||||
own_ip = &source_host_ip;
|
||||
|
||||
handle = net_connect_ip(ip, port, own_ip);
|
||||
if (handle == NULL && errno == EADDRNOTAVAIL && own_ip != NULL) {
|
||||
/* dcc_own_ip is external address */
|
||||
own_ip = IPADDR_IS_V6(ip) ? source_host_ip6 : source_host_ip4;
|
||||
own_ip = &source_host_ip;
|
||||
handle = net_connect_ip(ip, port, own_ip);
|
||||
}
|
||||
return handle;
|
||||
|
|
|
|||
|
|
@ -585,7 +585,7 @@ static LISTEN_REC *find_listen(const char *ircnet, int port)
|
|||
static void add_listen(const char *ircnet, int port)
|
||||
{
|
||||
LISTEN_REC *rec;
|
||||
IPADDR ip4, ip6, *my_ip;
|
||||
IPADDR ip, *my_ip;
|
||||
|
||||
if (port <= 0 || *ircnet == '\0')
|
||||
return;
|
||||
|
|
@ -593,16 +593,13 @@ static void add_listen(const char *ircnet, int port)
|
|||
/* bind to specific host/ip? */
|
||||
my_ip = NULL;
|
||||
if (*settings_get_str("irssiproxy_bind") != '\0') {
|
||||
if (net_gethostbyname(settings_get_str("irssiproxy_bind"),
|
||||
&ip4, &ip6) != 0) {
|
||||
if (net_gethostbyname(settings_get_str("irssiproxy_bind"), &ip) != 0) {
|
||||
printtext(NULL, NULL, MSGLEVEL_CLIENTERROR,
|
||||
"Proxy: can not resolve '%s' - aborting",
|
||||
settings_get_str("irssiproxy_bind"));
|
||||
return;
|
||||
}
|
||||
|
||||
my_ip = ip6.family == 0 ? &ip4 : ip4.family == 0 ||
|
||||
settings_get_bool("resolve_prefer_ipv6") ? &ip6 : &ip4;
|
||||
my_ip = &ip;
|
||||
}
|
||||
|
||||
rec = g_new0(LISTEN_REC, 1);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue