]>
jfr.im git - irc/quakenet/newserv.git/blob - chanserv/authcmds/auth.c
1 /* Automatically generated by refactor.pl.
5 * CMDALIASES: login ircdauth
6 * CMDLEVEL: QCMD_SECURE | QCMD_NOTAUTHED
8 * CMDDESC: Authenticates you on the bot.
10 * CMDPROTO: int csa_doauth(void *source, int cargc, char **cargv);
11 * CMDHELP: Usage: @UCOMMAND@ <username> <password>
12 * CMDHELP: Authenticates you on the bot, where:
13 * CMDHELP: username - your username
14 * CMDHELP: password - your password
15 * CMDHELP: If you do not have a username and password, see HELLO.
16 * CMDHELP: Note: due to the sensitive nature of this command, you must send the message
17 * CMDHELP: to Q@CServe.quakenet.org when using it.
18 * CMDHELP: Note: the preferred way to authenticate is to use the /AUTH command.
21 #include "../chanserv.h"
22 #include "../authlib.h"
23 #include "../../lib/irc_string.h"
27 int csa_completeauth(nick
*sender
, reguser
*rup
, char *authtype
);
29 int csa_auth(void *source
, int cargc
, char **cargv
, CRAlgorithm alg
) {
34 char *authtype
= "AUTH";
38 authtype
= "CHALLENGEAUTH";
40 chanservstdmessage(sender
, QM_NOTENOUGHPARAMS
, "auth");
44 if (!(aup
= getactiveuserfromnick(sender
)))
48 if (aup
->authattempts
> MAXAUTHATTEMPT
) {
50 if ((aup->authattempts % 100) == 0)
51 chanservwallmessage("Warning: User %s!%s@%s attempted to auth %d times. Last attempt: %s %s %s",
52 sender->nick, sender->ident, sender->host->name->content, aup->authattempts, authtype, cargv[0], cargv[1]);
55 chanservstdmessage(sender
, QM_TOOMANYAUTHATTEMPTS
);
56 cs_log(sender
,"%s FAIL too many auth attempts (last attempt: %s %s %s)", authtype
, authtype
, cargv
[0], cargv
[1]);
60 if (!(rup
=findreguserbynick(cargv
[0]))) {
61 chanservstdmessage(sender
, QM_AUTHFAIL
);
62 cs_log(sender
,"%s FAIL bad username %s",authtype
,cargv
[0]);
67 if (!checkpassword(rup
, cargv
[1])) {
68 chanservstdmessage(sender
, QM_AUTHFAIL
);
69 cs_log(sender
,"%s FAIL username %s bad password %s",authtype
,rup
->username
,cargv
[1]);
73 if (!checkresponse(rup
, aup
->entropy
, cargv
[1], alg
)) {
74 chanservstdmessage(sender
, QM_AUTHFAIL
);
75 cs_log(sender
,"%s FAIL username %s bad response",authtype
,rup
->username
);
80 return csa_completeauth(sender
, rup
, authtype
);
83 int csa_doauth(void *source
, int cargc
, char **cargv
) {
84 return csa_auth(source
, cargc
, cargv
, NULL
);
87 int csa_completeauth(nick
*sender
, reguser
*rup
, char *authtype
) {
91 oldlastauth
=rup
->lastauth
;
93 if(!csa_completeauth2(rup
, sender
->nick
, sender
->ident
, sender
->host
->name
->content
, authtype
, chanservstdmessage
, sender
))
96 localusersetaccount(sender
, rup
->username
, rup
->ID
, cs_accountflagmap(rup
), rup
->lastauth
);
98 chanservstdmessage(sender
, QM_AUTHOK
, rup
->username
);
101 args
[1]=(void *)oldlastauth
;
102 /* note: not triggered for REMOTEAUTH */
103 triggerhook(HOOK_CHANSERV_AUTH
, args
);