From 49e3a1760fc2f5cacaa4e5cbde9077b879348ba0 Mon Sep 17 00:00:00 2001 From: wyy Date: Tue, 16 Sep 2014 21:53:33 +0800 Subject: [PATCH] interrupt socket receive when header is too long. --- server/Husky/HttpReqInfo.hpp | 2 +- server/Husky/WorkerThread.hpp | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/server/Husky/HttpReqInfo.hpp b/server/Husky/HttpReqInfo.hpp index 62394b1..63bca91 100644 --- a/server/Husky/HttpReqInfo.hpp +++ b/server/Husky/HttpReqInfo.hpp @@ -80,7 +80,7 @@ namespace Husky _contentLength = 0; } public: - bool parseHeaders(const char* buffer, size_t len) + bool parseHeader(const char* buffer, size_t len) { string headerStr(buffer, len); size_t lpos = 0, rpos = 0; diff --git a/server/Husky/WorkerThread.hpp b/server/Husky/WorkerThread.hpp index a272a50..2398890 100644 --- a/server/Husky/WorkerThread.hpp +++ b/server/Husky/WorkerThread.hpp @@ -82,7 +82,11 @@ namespace Husky { if(!httpInfo.isHeaderFinished()) { - httpInfo.parseHeaders(recvBuf, n); + if(!httpInfo.parseHeader(recvBuf, n)) + { + LogError("parseHeader failed. "); + return false; + } continue; } httpInfo.appendBody(recvBuf, n);