From 160e4402e4f5a0cecce14207d0b9bdd3763c459a Mon Sep 17 00:00:00 2001 From: Carlos Daniel Ruvalcaba Valenzuela Date: Thu, 27 Sep 2007 22:37:40 -0700 Subject: [PATCH] Applied WANG Cong patch: Do some cleanups and fix a memory leak. --- backends/mailbox/fsmailbox.cpp | 52 +++++++++++++++++++++--------------------- backends/protocol/pop3.cpp | 8 +++---- src/posixsocket.cpp | 5 ++++ 3 files changed, 35 insertions(+), 30 deletions(-) diff --git a/backends/mailbox/fsmailbox.cpp b/backends/mailbox/fsmailbox.cpp index a84bda5..2f87f9b 100644 --- a/backends/mailbox/fsmailbox.cpp +++ b/backends/mailbox/fsmailbox.cpp @@ -26,28 +26,28 @@ public: cmdtree.Insert("store", MSG_STORE); cmdtree.Insert("retr", MSG_RETR); } - int Handle(Socket *s){ - IPCMessage *msg; - IPC *ipc; - int onRun, msgid, n, i, len; - char *user, *pass, *rcpt, *msglen, buffer[255], auxbuffer[255]; - FILE *fd; - DIR *dir; + int Handle(Socket *s){ + IPCMessage *msg; + IPC *ipc; + int onRun, msgid, n, i, len; + char *user, *rcpt, *msglen, buffer[255]; + FILE *fd; + //DIR *dir; struct dirent **dent; - - printf("Got Client\n"); - printf("Creating new IPC\n"); - - ipc = new SocketIPC(s); - onRun = 1; - - while(onRun){ - printf("Waiting for Message\n"); - if (ipc->PeekMessage()){ - printf("Got Message\n"); - msg = ipc->PopMessage(); + + printf("Got Client\n"); + printf("Creating new IPC\n"); + + ipc = new SocketIPC(s); + onRun = 1; + + while(onRun){ + printf("Waiting for Message\n"); + if (ipc->PeekMessage()){ + printf("Got Message\n"); + msg = ipc->PopMessage(); try{ - msgid = cmdtree.Lookup(msg->GetMessageName()); + msgid = cmdtree.Lookup(msg->GetMessageName()); }catch (SearchNotFound){ msgid = -1; } @@ -91,12 +91,12 @@ public: default: break; } - } - } - ipc->CloseIPC(); - delete ipc; - return 0; - } + } + } + ipc->CloseIPC(); + delete ipc; + return 0; + } }; class SimpleLoad : public LoadHandler{ diff --git a/backends/protocol/pop3.cpp b/backends/protocol/pop3.cpp index bb25eaf..6ed437c 100644 --- a/backends/protocol/pop3.cpp +++ b/backends/protocol/pop3.cpp @@ -95,8 +95,8 @@ public: } int Handle(Socket *s){ char buffer[255]; - char userbuff[255]; - char outbuff[255]; + //char userbuff[255]; + //char outbuff[255]; int r, i, j; int onrun, cmd, state; IPC *ipc, *ipcmb; @@ -306,8 +306,8 @@ public: }; int main(){ - BaseServer *srv; - SimpleLoad *lh; + //BaseServer *srv; + //SimpleLoad *lh; POP3Handler *pop3; Socket *s, *client; ThreadLoad *tlh; diff --git a/src/posixsocket.cpp b/src/posixsocket.cpp index 44cc402..dd9eb0f 100644 --- a/src/posixsocket.cpp +++ b/src/posixsocket.cpp @@ -58,6 +58,7 @@ public: sock = socket(family, SOCK_STREAM, 0); sock_addr = (struct sockaddr_in*)malloc(sizeof(struct sockaddr_in)); + memset(sock_addr, 0, sizeof(*sock_addr)); sock_addr->sin_family = family; sock_poll.fd = sock; @@ -72,6 +73,10 @@ public: sock_addr = addr; } + ~PosixSocket(){ + free(sock_addr); + } + void setPort(int port){ sock_port = port; sock_addr->sin_port = htons(port); -- 2.11.4.GIT