diff --git a/src/http/request/parser.c b/src/http/request/parser.c index 2ac415c..86a088f 100644 --- a/src/http/request/parser.c +++ b/src/http/request/parser.c @@ -64,7 +64,7 @@ get_data(void * _this, int fd) size_t remaining, chunks; char buffer[1024]; - size_t size = read(fd, buffer, 1024); + ssize_t size = read(fd, buffer, 1024); if (0 < size) { remaining = this->buffer_used % HTTP_REQUEST_PARSER_READ_CHUNK; diff --git a/src/server/run.c b/src/server/run.c index af7e112..85b8e37 100644 --- a/src/server/run.c +++ b/src/server/run.c @@ -99,6 +99,7 @@ serverRun(Server this) char timestr[200]; #define RESP_HEAD "HTTP/1.1 404 Not Found\r\n" \ + "Connection: Keep-Alive\r\n" \ "Content-Type: text/html\r\n" \ "Content-Length: %lu\r\n" \ "Date: %s\r\n" \ @@ -120,8 +121,8 @@ serverRun(Server this) * @TODO: just to send an answer and be able to make some * apache benchs i do it here...this definetly MUST BE moved */ - sprintf((this->conns)[fd].wbuf, RESP_HEAD "\r\n" RESP_DATA, sizeof(RESP_DATA), timestr); - (this->fds)[i].events = (this->fds)[i].events | POLLOUT; + sprintf((this->conns)[fd].wbuf, RESP_HEAD "\r\n" RESP_DATA, sizeof(RESP_DATA) - 1, timestr); + (this->fds)[i].events |= POLLOUT; } queue->nrequests = 0; @@ -147,7 +148,8 @@ serverRun(Server this) "write error, closing connection"); } - serverCloseConn(this, i); + //serverCloseConn(this, i); + (this->fds)[i].events &= ~POLLOUT; } else { memmove((this->conns)[fd].wbuf,