fixed: method Client::PrepareToNewRequest() should not set close_connection flag to false
git-svn-id: svn://ttmath.org/publicrep/libscorpiohttpserver/trunk@1058 e52654a7-88a9-db11-a3e9-0013d4bc506e
This commit is contained in:
parent
eafb671c15
commit
0c2dfab903
|
@ -80,9 +80,10 @@ void Client::PrepareToNewRequest()
|
||||||
http_version = http_version_unsupported;
|
http_version = http_version_unsupported;
|
||||||
answer_generated = false;
|
answer_generated = false;
|
||||||
output_buffer_sent = 0;
|
output_buffer_sent = 0;
|
||||||
close_connection = false;
|
|
||||||
|
|
||||||
http_method_str.clear();
|
http_method_str.clear();
|
||||||
output_buffer.clear();
|
output_buffer.clear();
|
||||||
url.clear();
|
url.clear();
|
||||||
|
|
||||||
|
// don't set flag close_connection to false here
|
||||||
}
|
}
|
||||||
|
|
|
@ -63,9 +63,20 @@ bool HeadersParser::IsHeadersEnding(const char * ptr)
|
||||||
|
|
||||||
bool HeadersParser::ParseFirstHeader(Client & client)
|
bool HeadersParser::ParseFirstHeader(Client & client)
|
||||||
{
|
{
|
||||||
return ParseFirstHeaderMethodName(client) &&
|
bool first_ok = ParseFirstHeaderMethodName(client) &&
|
||||||
ParseFirstHeaderURL(client) &&
|
ParseFirstHeaderURL(client) &&
|
||||||
ParseFirstHeaderHTTPVersion(client);
|
ParseFirstHeaderHTTPVersion(client);
|
||||||
|
|
||||||
|
SkipWhite(client);
|
||||||
|
|
||||||
|
if( header_index + 1 < client.input_buffer.size() &&
|
||||||
|
client.input_buffer[header_index] == '\r' &&
|
||||||
|
client.input_buffer[header_index+1] == '\n' )
|
||||||
|
{
|
||||||
|
header_index += 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
return first_ok;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -181,31 +192,6 @@ bool HeadersParser::ParseFirstHeaderHTTPVersion(Client & client)
|
||||||
int d1 = client.input_buffer[header_index + 5] - '0';
|
int d1 = client.input_buffer[header_index + 5] - '0';
|
||||||
int d2 = client.input_buffer[header_index + 7] - '0';
|
int d2 = client.input_buffer[header_index + 7] - '0';
|
||||||
|
|
||||||
int ddd1 = client.input_buffer[header_index + 5] - '0';
|
|
||||||
int ddd2 = client.input_buffer[header_index + 7] - '0';
|
|
||||||
|
|
||||||
if( d1 == 1 )
|
|
||||||
{
|
|
||||||
client.http_version = http_version_1_0;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
if( d2 == 1 )
|
|
||||||
{
|
|
||||||
client.http_version = http_version_1_1;
|
|
||||||
}
|
|
||||||
|
|
||||||
if( ddd1 == 1 )
|
|
||||||
{
|
|
||||||
client.http_version = http_version_1_0;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
if( ddd2 == 1 )
|
|
||||||
{
|
|
||||||
client.http_version = http_version_1_1;
|
|
||||||
}
|
|
||||||
|
|
||||||
if( d1 == 1 )
|
if( d1 == 1 )
|
||||||
{
|
{
|
||||||
if( d2 == 0 )
|
if( d2 == 0 )
|
||||||
|
|
|
@ -193,6 +193,7 @@ int client_socket;
|
||||||
Client c;
|
Client c;
|
||||||
|
|
||||||
c.socket = client_socket;
|
c.socket = client_socket;
|
||||||
|
c.close_connection = false;
|
||||||
|
|
||||||
client_tab.push_back(c);
|
client_tab.push_back(c);
|
||||||
client_tab.back().PrepareToNewRequest();
|
client_tab.back().PrepareToNewRequest();
|
||||||
|
|
Loading…
Reference in New Issue