From b1c66ff90d7ea15f5667afec1658f395c5465e28 Mon Sep 17 00:00:00 2001 From: Mattias Andrée Date: Wed, 14 May 2014 05:18:44 +0200 Subject: m fix MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Mattias Andrée --- src/libmdsserver/mds-message.c | 9 +++++++-- test.d/dumb-client | 2 +- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/libmdsserver/mds-message.c b/src/libmdsserver/mds-message.c index dcb8986..b324ad4 100644 --- a/src/libmdsserver/mds-message.c +++ b/src/libmdsserver/mds-message.c @@ -120,7 +120,7 @@ int mds_message_read(mds_message_t* restrict this, int fd) char* header; /* We have found an empty line, i.e. the end of the headers.*/ - if (len == 0) + if (len == 1) { /* Remove the \n (end of empty line) we found from the buffer. */ memmove(this->buffer, this->buffer + 1, this->buffer_ptr -= 1); @@ -162,7 +162,7 @@ int mds_message_read(mds_message_t* restrict this, int fd) if (header_commit_buffer == 0) { header_commit_buffer = 8; - if (this->headers == NULL) + if (this->header_count == 0) { if (xmalloc(this->headers, header_commit_buffer, char*)) return -1; @@ -211,6 +211,11 @@ int mds_message_read(mds_message_t* restrict this, int fd) } /* Stage 1: payload. */ + if ((this->stage == 1) && (this->payload_ptr == 0)) + { + this->stage = 2; + return 0; + } if ((this->stage == 1) && (this->payload_ptr > 0)) { /* How much of the payload that has not yet been filled. */ diff --git a/test.d/dumb-client b/test.d/dumb-client index 4868813..0ee7331 100755 --- a/test.d/dumb-client +++ b/test.d/dumb-client @@ -50,7 +50,7 @@ thread.start() while True: try: - data = input().encode('utf-8') + data = (input() + '\n').encode('utf-8') except: break socket.send(data); -- cgit v1.2.3-70-g09d2