Fix loading encoding from network list on connect
- Fix setting new encoding when switching networks - Ignore ports when looking for network by hostname - Only set UTF-8 when nothing explicitly set Fixes #1628
This commit is contained in:
parent
ebb0fd6905
commit
7c078db879
|
@ -3439,10 +3439,9 @@ cmd_server (struct session *sess, char *tbuf, char *word[], char *word_eol[])
|
|||
}
|
||||
|
||||
/* try to associate this connection with a listed network */
|
||||
if (!serv->network)
|
||||
/* search for this hostname in the entire server list */
|
||||
serv->network = servlist_net_find_from_server (server_name);
|
||||
/* may return NULL, but that's OK */
|
||||
if ((serv->network = servlist_net_find_from_server (server_name)))
|
||||
server_set_encoding (serv, ((ircnet*)serv->network)->encoding);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
|
|
@ -1728,6 +1728,7 @@ server_set_defaults (server *serv)
|
|||
serv->nick_modes = g_strdup ("ohv");
|
||||
serv->sasl_mech = MECH_PLAIN;
|
||||
|
||||
if (!serv->encoding)
|
||||
server_set_encoding (serv, "UTF-8");
|
||||
|
||||
serv->nickcount = 1;
|
||||
|
|
|
@ -714,8 +714,19 @@ servlist_net_find_from_server (char *server_name)
|
|||
slist = net->servlist;
|
||||
while (slist)
|
||||
{
|
||||
gsize hostname_len;
|
||||
const char *hostname, *p;
|
||||
|
||||
serv = slist->data;
|
||||
if (g_ascii_strcasecmp (serv->hostname, server_name) == 0)
|
||||
hostname = serv->hostname;
|
||||
|
||||
/* Ignore port when comparing */
|
||||
if ((p = strchr (hostname, '/')))
|
||||
hostname_len = p - hostname;
|
||||
else
|
||||
hostname_len = strlen (hostname);
|
||||
|
||||
if (g_ascii_strncasecmp (hostname, server_name, hostname_len) == 0)
|
||||
return net;
|
||||
slist = slist->next;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue