@@ -5887,7 +5887,7 @@ static void connTimeout(HttpConn *conn, MprEvent *mprEvent)
58875887 httpTrace(conn, event, "error", "msg:'%s'", msg);
58885888 }
58895889 } else {
5890- httpError(conn, HTTP_CODE_REQUEST_TIMEOUT, "%s", msg);
5890+ httpError(conn, HTTP_CODE_REQUEST_TIMEOUT | HTTP_CLOSE , "%s", msg);
58915891 }
58925892 }
58935893 if (httpClientConn(conn)) {
@@ -6145,15 +6145,6 @@ PUBLIC void httpIO(HttpConn *conn, int eventMask)
61456145 assert(conn->tx);
61466146 assert(conn->rx);
61476147
6148- #if DEPRECATE
6149- /* Just IO state asserting */
6150- if (conn->io) {
6151- assert(!conn->io);
6152- return;
6153- }
6154- conn->io = 1;
6155- #endif
6156-
61576148 if ((eventMask & MPR_WRITABLE) && conn->connectorq) {
61586149 httpResumeQueue(conn->connectorq);
61596150 }
@@ -6197,6 +6188,7 @@ PUBLIC void httpIO(HttpConn *conn, int eventMask)
61976188 }
61986189 httpTrace(conn, "connection.close", "context", "msg:'%s'", conn->errorMsg);
61996190 httpDestroyConn(conn);
6191+
62006192 } else if (!mprIsSocketEof(conn->sock) && conn->async && !conn->delay) {
62016193 httpEnableConnEvents(conn);
62026194 }
@@ -16167,6 +16159,7 @@ static bool parseIncoming(HttpConn *conn)
1616716159 /*
1616816160 Don't start processing until all the headers have been received (delimited by two blank lines)
1616916161 */
16162+ start = mprGetBufStart(packet->content);
1617016163 if ((end = sncontains(start, "\r\n\r\n", len)) == 0 && (end = sncontains(start, "\n\n", len)) == 0) {
1617116164 if (len >= limits->headerSize) {
1617216165 httpLimitError(conn, HTTP_ABORT | HTTP_CODE_REQUEST_TOO_LARGE,
0 commit comments