]> jfr.im git - irc/quakenet/newserv.git/blob - chanserv/newsearch/csns-qemail.c
6db9fea5bfc840870ab2feda9488d941dd7eca27
[irc/quakenet/newserv.git] / chanserv / newsearch / csns-qemail.c
1 /*
2 * qemail functionality
3 */
4
5 #include "../../newsearch/newsearch.h"
6 #include "../chanserv.h"
7
8 #include <stdlib.h>
9
10 void *qemail_exe(searchCtx *ctx, struct searchNode *thenode, void *theinput);
11 void qemail_free(searchCtx *ctx, struct searchNode *thenode);
12
13 struct searchNode *qemail_parse(searchCtx *ctx, int type, int argc, char **argv) {
14 struct searchNode *thenode;
15
16 if (type != SEARCHTYPE_USER) {
17 parseError = "qemail: this function is only valid for user searches.";
18 return NULL;
19 }
20
21 if (!(thenode=(struct searchNode *)malloc(sizeof (struct searchNode)))) {
22 parseError = "malloc: could not allocate memory for this search.";
23 return NULL;
24 }
25
26 thenode->returntype = RETURNTYPE_STRING;
27 thenode->exe = qemail_exe;
28 thenode->free = qemail_free;
29
30 return thenode;
31 }
32
33 void *qemail_exe(searchCtx *ctx, struct searchNode *thenode, void *theinput) {
34 authname *ap = (authname *)theinput;
35 reguser *rup = ap->exts[chanservext];
36 if(!rup || !rup->email)
37 return "";
38
39 return rup->email->content;
40 }
41
42 void qemail_free(searchCtx *ctx, struct searchNode *thenode) {
43 free(thenode);
44 }
45