]>
jfr.im git - irc/quakenet/newserv.git/blob - chanserv/authcmds/setemail.c
1 /* Automatically generated by refactor.pl.
7 * CMDDESC: Set the email address.
8 * CMDFUNC: csa_dosetmail
9 * CMDPROTO: int csa_dosetmail(void *source, int cargc, char **cargv);
10 * CMDHELP: Usage: setemail <username> <email address>
11 * CMDHELP: Sets the email address for the specified username.
14 #include "../chanserv.h"
15 #include "../authlib.h"
16 #include "../../lib/irc_string.h"
20 int csa_dosetmail(void *source
, int cargc
, char **cargv
) {
22 reguser
*rup
, *vrup
= getreguserfromnick(sender
);
27 chanservstdmessage(sender
, QM_NOTENOUGHPARAMS
, "setemail");
31 if (!(rup
=findreguser(sender
, cargv
[0])))
34 if(rup
->email
&& !strcasecmp(cargv
[1], rup
->email
->content
)) {
35 chanservstdmessage(sender
, QM_EMAILMATCHESOLD
);
39 if (csa_checkeboy(sender
, cargv
[1]))
42 if(UHasHelperPriv(rup
)) {
43 cs_log(sender
,"SETEMAIL FAILED username %s",rup
->username
);
44 chanservwallmessage("%s (%s) just FAILED using SETEMAIL on %s: %s", sender
->nick
, vrup
->username
, rup
->username
, cargv
[1]);
45 chanservsendmessage(sender
, "Sorry, that user is privileged.");
49 csdb_accounthistory_insert(sender
, NULL
, NULL
, rup
->email
?rup
->email
->content
:NULL
, cargv
[1]);
50 delreguserfrommaildomain(rup
,rup
->domain
);
51 freesstring(rup
->email
);
52 rup
->email
=getsstring(cargv
[1],EMAILLEN
);
53 rup
->lastemailchange
=time(NULL
);
55 freesstring(rup
->lastemail
);
59 rup
->domain
=findorcreatemaildomain(rup
->email
->content
);
60 addregusertomaildomain(rup
, rup
->domain
);
61 dupemail
= strdup(rup
->email
->content
);
62 if((local
=strchr(dupemail
, '@'))) {
64 rup
->localpart
=getsstring(dupemail
,EMAILLEN
);
70 chanservstdmessage(sender
, QM_EMAILCHANGED
, cargv
[1]);
71 cs_log(sender
,"SETEMAIL OK username %s <%s>",rup
->username
,rup
->email
->content
);
72 chanservwallmessage("%s (%s) just used SETEMAIL on %s: %s", sender
->nick
, vrup
->username
, rup
->username
, rup
->email
->content
);