]> jfr.im git - irc/quakenet/newserv.git/blob - chanserv/usercmds/spewemail.c
More chanserv refactoring
[irc/quakenet/newserv.git] / chanserv / usercmds / spewemail.c
1 /* Automatically generated by refactor.pl.
2 *
3 *
4 * CMDNAME: spewemail
5 * CMDLEVEL: QCMD_OPER
6 * CMDARGS: 1
7 * CMDDESC: Search for an e-mail in the database.
8 * CMDFUNC: csu_dospewemail
9 * CMDPROTO: int csu_dospewemail(void *source, int cargc, char **cargv);
10 */
11
12 #include "../chanserv.h"
13 #include "../../lib/irc_string.h"
14 #include <stdio.h>
15 #include <string.h>
16
17 int csu_dospewemail(void *source, int cargc, char **cargv) {
18 nick *sender=source;
19 reguser *rup=getreguserfromnick(sender);
20 reguser *dbrup;
21 int i;
22 unsigned int count=0;
23
24 if (!rup)
25 return CMD_ERROR;
26
27 if (cargc < 1) {
28 chanservstdmessage(sender, QM_NOTENOUGHPARAMS, "spewemail");
29 return CMD_ERROR;
30 }
31
32 chanservstdmessage(sender, QM_SPEWHEADER);
33 for (i=0;i<REGUSERHASHSIZE;i++) {
34 for (dbrup=regusernicktable[i]; dbrup; dbrup=dbrup->nextbyname) {
35 if (!dbrup->email)
36 continue;
37 if (!match(cargv[0], dbrup->email->content)) {
38 chanservsendmessage(sender, "%-15s %-10s %-30s %s", dbrup->username, UHasSuspension(dbrup)?"yes":"no", dbrup->email?dbrup->email->content:"none set", dbrup->lastuserhost?dbrup->lastuserhost->content:"none");
39 count++;
40 if (count >= 2000) {
41 chanservstdmessage(sender, QM_TOOMANYRESULTS, 2000, "users");
42 return CMD_ERROR;
43 }
44 }
45 }
46 }
47 chanservstdmessage(sender, QM_RESULTCOUNT, count, "user", (count==1)?"":"s");
48
49 return CMD_OK;
50 }