]> jfr.im git - irc/quakenet/newserv.git/blob - chanserv/authcmds/setemail.c
*sigh*
[irc/quakenet/newserv.git] / chanserv / authcmds / setemail.c
1 /* Automatically generated by refactor.pl.
2 *
3 *
4 * CMDNAME: setemail
5 * CMDLEVEL: QCMD_OPER
6 * CMDARGS: 2
7 * CMDDESC: Set the email address.
8 * CMDFUNC: csa_dosetmail
9 * CMDPROTO: int csa_dosetmail(void *source, int cargc, char **cargv);
10 */
11
12 #include "../chanserv.h"
13 #include "../authlib.h"
14 #include "../../lib/irc_string.h"
15 #include <stdio.h>
16 #include <string.h>
17
18 int csa_dosetmail(void *source, int cargc, char **cargv) {
19 reguser *rup;
20 nick *sender=source;
21 char *dupemail;
22
23 if (cargc<2) {
24 chanservstdmessage(sender, QM_NOTENOUGHPARAMS, "setemail");
25 return CMD_ERROR;
26 }
27
28 if (!(rup=findreguser(sender, cargv[0])))
29 return CMD_ERROR;
30
31 if (csa_checkeboy(sender, cargv[1]))
32 return CMD_ERROR;
33
34 csdb_accounthistory_insert(sender, NULL, NULL, rup->email, getsstring(cargv[1], EMAILLEN));
35 delreguserfrommaildomain(rup,rup->domain);
36 freesstring(rup->email);
37 rup->email=getsstring(cargv[1],EMAILLEN);
38 rup->lastemailchange=time(NULL);
39 rup->domain=findorcreatemaildomain(rup->email->content);
40 addregusertomaildomain(rup, rup->domain);
41 dupemail = strdup(rup->email->content);
42 if(local=strchr(dupemail, '@')) {
43 *(local++)='\0';
44 rup->localpart=getsstring(local,EMAILLEN);
45 } else {
46 rup->localpart=NULL;
47 }
48 free(dupemail);
49
50 chanservstdmessage(sender, QM_EMAILCHANGED, cargv[1]);
51 cs_log(sender,"SETEMAIL OK username %s <%s>",rup->username,rup->email->content);
52 csdb_updateuser(rup);
53
54 return CMD_OK;
55 }