diff options
-rw-r--r-- | daemon/regmaild/regmaild.c | 10 |
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"); |