Replace various network options with universal login method option

This commit is contained in:
Berke Viktor
2013-05-10 23:52:47 +02:00
parent beb3ab506d
commit 873a3ef047
5 changed files with 98 additions and 94 deletions

View File

@@ -43,7 +43,7 @@ struct defaultserver
char *host;
char *channel;
char *charset;
int nsmode; /* default NickServ type */
int loginmode; /* default authentication type */
};
static const struct defaultserver def[] =
@@ -245,7 +245,7 @@ static const struct defaultserver def[] =
{0, "irc.ggn.net"},
{0, "irc.vendetta.com"},
{"freenode", 0, "#hexchat"},
{"freenode", 0, "#hexchat", 0, 6},
#ifdef USE_OPENSSL
{0, "irc.freenode.net/+6697"},
#endif
@@ -618,18 +618,17 @@ servlist_connect (session *sess, ircnet *net, gboolean join)
}
}
if (net->nstype >= 1) /* once again, make sure gtk_combo_box_get_active() is not bugging us, just in case */
if (net->logintype)
{
serv->nickservtype = net->nstype - 1; /* ircnet->nstype starts at 1, server->nickservtype starts at 0! */
serv->loginmethod = net->logintype;
}
else
{
serv->nickservtype = 1; /* use /NickServ by default */
serv->loginmethod = 2; /* use /NickServ by default */
}
serv->password[0] = 0;
serv->sasluser[0] = 0;
serv->saslpassword[0] = 0;
if (net->pass)
{
@@ -645,11 +644,6 @@ servlist_connect (session *sess, ircnet *net, gboolean join)
safe_strcpy (serv->sasluser, net->user, sizeof (serv->sasluser));
}
if (net->saslpass)
{
safe_strcpy (serv->saslpassword, net->saslpass, sizeof (serv->saslpassword));
}
if (net->flags & FLAG_USE_GLOBAL)
{
strcpy (serv->nick, prefs.hex_irc_nick1);
@@ -941,7 +935,6 @@ servlist_cleanup (void)
{
net = list->data;
free_and_clear (net->pass);
free_and_clear (net->saslpass);
free_and_clear (net->nickserv);
}
}
@@ -964,7 +957,6 @@ servlist_net_remove (ircnet *net)
if (net->real)
free (net->real);
free_and_clear (net->pass);
free_and_clear (net->saslpass);
if (net->autojoin)
free (net->autojoin);
if (net->command)
@@ -1029,9 +1021,9 @@ servlist_load_defaults (void)
free (net->encoding);
net->encoding = strdup (def[i].charset);
}
if (def[i].nsmode)
if (def[i].loginmode)
{
net->nstype = def[i].nsmode;
net->logintype = def[i].loginmode;
}
if (g_str_hash (def[i].network) == def_hash)
{
@@ -1100,9 +1092,6 @@ servlist_load (void)
case 'P':
net->pass = strdup (buf + 2);
break;
case 'A':
net->saslpass = strdup (buf + 2);
break;
case 'J':
net->autojoin = strdup (buf + 2);
break;
@@ -1134,8 +1123,8 @@ servlist_load (void)
case 'B':
net->nickserv = strdup (buf + 2);
break;
case 'T':
net->nstype = atoi (buf + 2);
case 'L':
net->logintype = atoi (buf + 2);
break;
}
}
@@ -1244,26 +1233,12 @@ servlist_save (void)
fprintf (fp, "R=%s\n", net->real);
if (net->pass)
fprintf (fp, "P=%s\n", net->pass);
if (net->saslpass)
fprintf (fp, "A=%s\n", net->saslpass);
if (net->autojoin)
fprintf (fp, "J=%s\n", net->autojoin);
if (net->nickserv)
fprintf (fp, "B=%s\n", net->nickserv);
if (net->nstype)
{
if (net->nstype == -1) /* gtk_combo_box_get_active() returns -1 for invalid indices */
{
net->nstype = 0; /* avoid further crashes for the current session */
buf = g_strdup_printf (_("Warning: invalid NickServ type. Falling back to default type for network %s."), net->name);
fe_message (buf, FE_MSG_WARN);
g_free (buf);
}
else /* the selection was fine, save it */
{
fprintf (fp, "T=%d\n", net->nstype);
}
}
if (net->logintype)
fprintf (fp, "L=%d\n", net->logintype);
if (net->encoding && g_ascii_strcasecmp (net->encoding, "System") &&
g_ascii_strcasecmp (net->encoding, "System default"))
{