]>
jfr.im git - irc/quakenet/newserv.git/blob - chanserv/authlib.c
5 #include "../lib/irc_string.h"
15 if (regcomp(&preg
, VALID_EMAIL
, REG_EXTENDED
| REG_NOSUB
| REG_ICASE
))
21 void csa_freeregex() {
26 * use regex matching to determine if it's a valid eboy or not
28 int csa_checkeboy(nick
*sender
, char *eboy
)
32 len
= (((strlen(eboy
)) < (EMAILLEN
)) ? (strlen(eboy
)) : (EMAILLEN
));
35 chanservstdmessage(sender
, QM_EMAILTOOSHORT
, eboy
);
39 if (strstr(&eboy
[1], "@") == NULL
) {
41 chanservstdmessage(sender
, QM_EMAILNOAT
, eboy
);
45 if (eboy
[len
- 1] == '@') {
47 chanservstdmessage(sender
, QM_EMAILATEND
, eboy
);
51 for (i
= 0; i
< len
; i
++) {
52 if (!isalpha(eboy
[i
]) && !isdigit(eboy
[i
])
53 && !(eboy
[i
] == '@') && !(eboy
[i
] == '.')
54 && !(eboy
[i
] == '_') && !(eboy
[i
] == '-')) {
56 chanservstdmessage(sender
, QM_EMAILINVCHR
, eboy
);
61 /* catch some real lame attempts */
62 if (!ircd_strncmp("user@mymailhost.xx", eboy
, len
) || !ircd_strncmp("info@quakenet.org", eboy
, len
)
63 || !ircd_strncmp("user@mymail.xx", eboy
, len
) || !ircd_strncmp("user@mail.cc", eboy
, len
)
64 || !ircd_strncmp("user@host.com", eboy
, len
) || !ircd_strncmp("Jackie@your.isp.com", eboy
, len
)
65 || !ircd_strncmp("QBot@QuakeNet.org", eboy
, len
)) {
67 chanservstdmessage(sender
, QM_NOTYOUREMAIL
, eboy
);
71 if (regexec(&preg
, eboy
, (size_t) 0, NULL
, 0)) {
73 chanservstdmessage(sender
, QM_INVALIDEMAIL
, eboy
);
81 * create a random pw. code stolen from fox's O
83 void csa_createrandompw(char *pw
, int n
)
86 char upwdchars
[] = "ABCDEFGHIJKLMNPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz123456789-!";
88 for (i
= 0; i
< n
; i
++) {
89 pw
[i
] = upwdchars
[rand() % (sizeof(upwdchars
) - 1)];