summaryrefslogtreecommitdiffstats
path: root/daemon/regmaild
diff options
context:
space:
mode:
Diffstat (limited to 'daemon/regmaild')
-rw-r--r--daemon/regmaild/regmaild.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/daemon/regmaild/regmaild.c b/daemon/regmaild/regmaild.c
index a5cc9138..65eb8ff5 100644
--- a/daemon/regmaild/regmaild.c
+++ b/daemon/regmaild/regmaild.c
@@ -166,6 +166,7 @@ client_cb(int fd, short event, void *arg)
int ret = -1;
assert(ev);
+
if ( (event & EV_TIMEOUT) ||
!(event & EV_READ) ||
toread(fd, &req, sizeof(req)) != sizeof(req) ||
@@ -177,6 +178,14 @@ client_cb(int fd, short event, void *arg)
return;
}
+ if (!*req.email)
+ {
+ fprintf(stderr, "invalid request: uid=[%s]\r\n", req.userid);
+ close(fd);
+ free(ev);
+ return;
+ }
+
switch(req.operation)
{
case REGMAILDB_REQ_COUNT:
@@ -191,6 +200,7 @@ client_cb(int fd, short event, void *arg)
case REGMAILDB_REQ_SET:
ret = regmaildb_update_email(req.userid, strlen(req.userid),
req.email, strlen(req.email));
+ fprintf(stderr, "%s update mail to [%s]: ret=%d\r\n", req.userid, req.email, ret);
if (towrite(fd, &ret, sizeof(ret)) != sizeof(ret))
{
fprintf(stderr, " error: cannot write response...\r\n");