]>
Commit | Line | Data |
---|---|---|
354b3c0a CP |
1 | #include "chanserv.h" |
2 | #include "../control/control.h" | |
7f32dbdf P |
3 | #include "../lib/version.h" |
4 | ||
5 | MODULE_VERSION(QVERSION); | |
354b3c0a CP |
6 | |
7 | int csa_docheckhashpass(void *source, int cargc, char **cargv); | |
8 | ||
9 | void _init(void) { | |
10 | registercontrolhelpcmd("checkhashpass", NO_RELAY, 3, csa_docheckhashpass, "Usage: checkhashpass <username> <digest> ?junk?"); | |
11 | } | |
12 | ||
13 | void _fini(void) { | |
14 | deregistercontrolcmd("checkhashpass", csa_docheckhashpass); | |
15 | } | |
16 | ||
17 | int csa_docheckhashpass(void *source, int cargc, char **cargv) { | |
18 | nick *sender=(nick *)source; | |
19 | reguser *rup; | |
20 | char *flags; | |
21 | ||
22 | if(cargc<3) { | |
23 | controlreply(sender, "CHECKHASHPASS FAIL args"); | |
24 | return CMD_ERROR; | |
25 | } | |
26 | ||
27 | if (!(rup=findreguserbynick(cargv[0]))) { | |
28 | controlreply(sender, "CHECKHASHPASS FAIL user"); | |
29 | return CMD_OK; | |
30 | } | |
31 | ||
32 | flags = printflags(QUFLAG_ALL & rup->flags, ruflags); | |
33 | if(UHasSuspension(rup)) { | |
34 | controlreply(sender, "CHECKHASHPASS FAIL suspended %s %s %u", rup->username, flags, rup->ID); | |
35 | } else if(!checkhashpass(rup, cargc<3?NULL:cargv[2], cargv[1])) { | |
36 | controlreply(sender, "CHECKHASHPASS FAIL digest %s %s %u", rup->username, flags, rup->ID); | |
37 | } else { | |
38 | controlreply(sender, "CHECKHASHPASS OK %s %s %u %s", rup->username, flags, rup->ID, rup->email?rup->email->content:"-"); | |
39 | } | |
40 | ||
41 | return CMD_OK; | |
42 | } |