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