1
0
mirror of https://github.com/moparisthebest/hexchat synced 2024-11-26 11:12:19 -05:00

Use macros instead of raw numbers for login type

This commit is contained in:
Berke Viktor 2013-05-13 13:22:25 +02:00
parent 2c15270be1
commit 83107ee222
5 changed files with 50 additions and 34 deletions

View File

@ -1373,12 +1373,15 @@ static int
inbound_nickserv_login (server *serv) inbound_nickserv_login (server *serv)
{ {
/* this could grow ugly, but let's hope there won't be new NickServ types */ /* this could grow ugly, but let's hope there won't be new NickServ types */
if (serv->loginmethod >= 1 && serv->loginmethod <= 5) switch (serv->loginmethod)
{ {
case LOGIN_MSG_NICKSERV:
case LOGIN_NICKSERV:
case LOGIN_NS:
case LOGIN_MSG_NS:
case LOGIN_AUTH:
return 1; return 1;
} default:
else
{
return 0; return 0;
} }
} }

View File

@ -50,7 +50,7 @@ irc_login (server *serv, char *user, char *realname)
{ {
tcp_sendf (serv, "CAP LS\r\n"); /* start with CAP LS as Charybdis sasl.txt suggests */ tcp_sendf (serv, "CAP LS\r\n"); /* start with CAP LS as Charybdis sasl.txt suggests */
if (serv->password[0] && serv->loginmethod == 7) if (serv->password[0] && serv->loginmethod == LOGIN_PASS)
{ {
tcp_sendf (serv, "PASS %s\r\n", serv->password); tcp_sendf (serv, "PASS %s\r\n", serv->password);
} }
@ -67,19 +67,21 @@ irc_nickserv (server *serv, char *cmd, char *arg1, char *arg2, char *arg3)
/* are all ircd authors idiots? */ /* are all ircd authors idiots? */
switch (serv->loginmethod) switch (serv->loginmethod)
{ {
case 1: case LOGIN_MSG_NICKSERV:
tcp_sendf (serv, "PRIVMSG NICKSERV :%s %s%s%s\r\n", cmd, arg1, arg2, arg3); tcp_sendf (serv, "PRIVMSG NICKSERV :%s %s%s%s\r\n", cmd, arg1, arg2, arg3);
break; break;
case 2: case LOGIN_NICKSERV:
tcp_sendf (serv, "NICKSERV %s %s%s%s\r\n", cmd, arg1, arg2, arg3); tcp_sendf (serv, "NICKSERV %s %s%s%s\r\n", cmd, arg1, arg2, arg3);
break; break;
case 3: #if 0
case LOGIN_NS:
tcp_sendf (serv, "NS %s %s%s%s\r\n", cmd, arg1, arg2, arg3); tcp_sendf (serv, "NS %s %s%s%s\r\n", cmd, arg1, arg2, arg3);
break; break;
case 4: #endif
case LOGIN_MSG_NS:
tcp_sendf (serv, "PRIVMSG NS :%s %s%s%s\r\n", cmd, arg1, arg2, arg3); tcp_sendf (serv, "PRIVMSG NS :%s %s%s%s\r\n", cmd, arg1, arg2, arg3);
break; break;
case 5: case LOGIN_AUTH:
/* why couldn't QuakeNet implement one of the existing ones? */ /* why couldn't QuakeNet implement one of the existing ones? */
tcp_sendf (serv, "AUTH %s %s\r\n", arg1, arg2); tcp_sendf (serv, "AUTH %s %s\r\n", arg1, arg2);
} }
@ -88,7 +90,7 @@ irc_nickserv (server *serv, char *cmd, char *arg1, char *arg2, char *arg3)
static void static void
irc_ns_identify (server *serv, char *pass) irc_ns_identify (server *serv, char *pass)
{ {
if (serv->loginmethod == 5) /* QuakeNet needs to do everything in its own ways... */ if (serv->loginmethod == LOGIN_AUTH) /* QuakeNet needs to do everything in its own ways... */
{ {
irc_nickserv (serv, "", serv->nick, pass, ""); irc_nickserv (serv, "", serv->nick, pass, "");
} }
@ -101,7 +103,7 @@ irc_ns_identify (server *serv, char *pass)
static void static void
irc_ns_ghost (server *serv, char *usname, char *pass) irc_ns_ghost (server *serv, char *usname, char *pass)
{ {
if (serv->loginmethod != 5) if (serv->loginmethod != LOGIN_AUTH)
{ {
irc_nickserv (serv, "GHOST", usname, " ", pass); irc_nickserv (serv, "GHOST", usname, " ", pass);
} }
@ -1276,7 +1278,7 @@ process_named_msg (session *sess, char *type, char *word[], char *word_eol[])
want_cap = 1; want_cap = 1;
} }
/* if the SASL password is set AND auth mode is set to SASL, request SASL auth */ /* if the SASL password is set AND auth mode is set to SASL, request SASL auth */
if (strstr (word_eol[5], "sasl") != 0 && strlen (sess->server->password) != 0 && serv->loginmethod == 6) if (strstr (word_eol[5], "sasl") != 0 && strlen (sess->server->password) != 0 && serv->loginmethod == LOGIN_SASL)
{ {
strcat (buffer, "sasl "); strcat (buffer, "sasl ");
want_cap = 1; want_cap = 1;

View File

@ -167,7 +167,7 @@ static const struct defaultserver def[] =
{0, "irc.criten.net"}, {0, "irc.criten.net"},
{0, "irc.eu.criten.net"}, {0, "irc.eu.criten.net"},
{"DALnet", 0, 0, 0, 2}, {"DALnet", 0},
{0, "irc.dal.net"}, {0, "irc.dal.net"},
{0, "irc.eu.dal.net"}, {0, "irc.eu.dal.net"},
@ -245,7 +245,7 @@ static const struct defaultserver def[] =
{0, "irc.ggn.net"}, {0, "irc.ggn.net"},
{0, "irc.vendetta.com"}, {0, "irc.vendetta.com"},
{"freenode", 0, "#hexchat", 0, 6}, {"freenode", 0, "#hexchat", 0, LOGIN_SASL},
#ifdef USE_OPENSSL #ifdef USE_OPENSSL
{0, "irc.freenode.net/+6697"}, {0, "irc.freenode.net/+6697"},
#endif #endif
@ -263,7 +263,7 @@ static const struct defaultserver def[] =
/* {0, "sprynet.us.galaxynet.org"}, /* {0, "sprynet.us.galaxynet.org"},
{0, "atlanta.ga.us.galaxynet.org"},*/ {0, "atlanta.ga.us.galaxynet.org"},*/
{"GameSurge", 0, 0, 0, 2}, {"GameSurge", 0},
{0, "irc.gamesurge.net"}, {0, "irc.gamesurge.net"},
/* {"GamesNET", 0}, /* {"GamesNET", 0},
@ -426,7 +426,7 @@ static const struct defaultserver def[] =
{0, "nfsi.ptnet.org"}, {0, "nfsi.ptnet.org"},
{0, "fctunl.ptnet.org"}, {0, "fctunl.ptnet.org"},
{"QuakeNet", 0, 0, 0, 5}, {"QuakeNet", 0, 0, 0, LOGIN_AUTH},
{0, "irc.quakenet.org"}, {0, "irc.quakenet.org"},
{0, "irc.se.quakenet.org"}, {0, "irc.se.quakenet.org"},
{0, "irc.dk.quakenet.org"}, {0, "irc.dk.quakenet.org"},
@ -460,7 +460,7 @@ static const struct defaultserver def[] =
{"Rizon", 0}, {"Rizon", 0},
{0, "irc.rizon.net"}, {0, "irc.rizon.net"},
{"RusNet", 0, 0, "KOI8-R (Cyrillic)", 2}, {"RusNet", 0, 0, "KOI8-R (Cyrillic)"},
{0, "irc.tomsk.net"}, {0, "irc.tomsk.net"},
{0, "irc.rinet.ru"}, {0, "irc.rinet.ru"},
{0, "irc.run.net"}, {0, "irc.run.net"},
@ -545,7 +545,7 @@ static const struct defaultserver def[] =
{0, "us.undernet.org"}, {0, "us.undernet.org"},
{0, "eu.undernet.org"}, {0, "eu.undernet.org"},
{"UniBG", 0, 0, 0, 4}, {"UniBG", 0, 0, 0, LOGIN_MSG_NS},
{0, "irc.lirex.com"}, {0, "irc.lirex.com"},
{0, "irc.naturella.com"}, {0, "irc.naturella.com"},
{0, "irc.spnet.net"}, {0, "irc.spnet.net"},
@ -638,7 +638,7 @@ servlist_connect (session *sess, ircnet *net, gboolean join)
return; return;
ircserv = list->data; ircserv = list->data;
/* incase a protocol switch is added to the servlist gui */ /* in case a protocol switch is added to the servlist gui */
server_fill_her_up (sess->server); server_fill_her_up (sess->server);
if (join) if (join)
@ -661,7 +661,7 @@ servlist_connect (session *sess, ircnet *net, gboolean join)
} }
else else
{ {
serv->loginmethod = 7; /* Use server password by default. If we had a NickServ password, it'd be set to 2 already. */ serv->loginmethod = LOGIN_DEFAULT_REAL;
} }
serv->password[0] = 0; serv->password[0] = 0;
@ -1264,7 +1264,7 @@ servlist_load (void)
net->pass = strdup (buf + 2); net->pass = strdup (buf + 2);
if (!net->logintype) if (!net->logintype)
{ {
net->logintype = 6; net->logintype = LOGIN_SASL;
} }
} }
case 'B': case 'B':
@ -1273,7 +1273,7 @@ servlist_load (void)
net->pass = strdup (buf + 2); net->pass = strdup (buf + 2);
if (!net->logintype) if (!net->logintype)
{ {
net->logintype = 2; net->logintype = LOGIN_NICKSERV;
} }
} }
} }

View File

@ -65,6 +65,17 @@ extern GSList *network_list;
#define FLAG_FAVORITE 64 #define FLAG_FAVORITE 64
#define FLAG_COUNT 7 #define FLAG_COUNT 7
/* Login methods. Use server password by default - if we had a NickServ password, it'd be set to 2 already by servlist_load() */
#define LOGIN_DEFAULT_REAL LOGIN_PASS /* this is to set the default login method for unknown servers */
#define LOGIN_DEFAULT 0 /* this is for the login type dropdown, doesn't serve any other purpose */
#define LOGIN_MSG_NICKSERV 1
#define LOGIN_NICKSERV 2
#define LOGIN_NS 3
#define LOGIN_MSG_NS 4
#define LOGIN_AUTH 5
#define LOGIN_SASL 6
#define LOGIN_PASS 7
/* DEFAULT_CHARSET is already defined in wingdi.h */ /* DEFAULT_CHARSET is already defined in wingdi.h */
#define IRC_DEFAULT_CHARSET "UTF-8 (Unicode)" #define IRC_DEFAULT_CHARSET "UTF-8 (Unicode)"

View File

@ -116,16 +116,16 @@ static const char *pages[]=
*/ */
static int login_types_conf[] = static int login_types_conf[] =
{ {
0, /* default - we don't use this but it makes indexing consistent with login_types[] so it's nice */ LOGIN_DEFAULT, /* default entry - we don't use this but it makes indexing consistent with login_types[] so it's nice */
6, /* SASL */ LOGIN_SASL,
7, /* /pass */ LOGIN_PASS,
1, /* /msg NickServ */ LOGIN_MSG_NICKSERV,
2, /* /NickServ */ LOGIN_NICKSERV,
#if 0 #if 0
3, /* /NS */ LOGIN_NS,
#endif #endif
4, /* /msg NS */ LOGIN_MSG_NS,
5, /* /auth */ LOGIN_AUTH,
}; };
static const char *login_types[]= static const char *login_types[]=