From e73c8d959dbdfd2708986eb5d60410bc7fd6f028 Mon Sep 17 00:00:00 2001 From: Georg Hopp Date: Thu, 1 Mar 2012 17:37:44 +0100 Subject: [PATCH] get rid of some unneccessary system calls...one socket and one close --- src/http/writer/write.c | 4 ---- src/socket.c | 10 +++++++++- src/socket/accept.c | 6 +----- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/http/writer/write.c b/src/http/writer/write.c index 5f3de61..24833f4 100644 --- a/src/http/writer/write.c +++ b/src/http/writer/write.c @@ -122,10 +122,6 @@ httpWriterWrite(void * _this, int fd) break; case HTTP_WRITER_DONE: - if (HTTP_MESSAGE_PIPED == this->current->type) { - close(this->current->handle); - } - this->state = HTTP_WRITER_GET; memmove(respq->msgs, diff --git a/src/socket.c b/src/socket.c index 2bd9e7c..3106861 100644 --- a/src/socket.c +++ b/src/socket.c @@ -35,9 +35,17 @@ socketCtor(void * _this, va_list * params) { Sock this = _this; int reUse = 1; //! \todo make this configurable + int port; this->log = va_arg(* params, Logger); - this->port = va_arg(* params, int); + port = va_arg(* params, int); + + //! if port is -1 do not initialize the socket. (Used with accept) + if (-1 == port) { + return 0; + } else { + this->port = port; + } //! Create socket for incoming connections if (-1 == (this->handle = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP))) { diff --git a/src/socket/accept.c b/src/socket/accept.c index f0d63ae..3d97e20 100644 --- a/src/socket/accept.c +++ b/src/socket/accept.c @@ -43,11 +43,7 @@ socketAccept(Sock this, char (*remoteAddr)[16]) * the data structure without creation of a socket at all. * For now i simply close the socket here.... :D */ - sock = new(Sock, this->log, this->port); - close(sock->handle); - /** - * \todo change port to remote port on success - */ + sock = new(Sock, this->log, -1); // Wait for a client to connect sock->handle = accept(this->handle, (struct sockaddr *) &(sock->addr), &len);