Socket fixes 3

This commit is contained in:
Thulinma 2011-04-18 15:42:14 +02:00
parent 08f78a8bed
commit 8f3466ea78
2 changed files with 8 additions and 18 deletions

View file

@ -211,12 +211,14 @@ int DDV::Socket::iread(void * buffer, int len){
/// \return True if new data arrived, false otherwise.
bool DDV::Socket::read(std::string & buffer){
char cbuffer[5000];
int num = iread(cbuffer, 5000);
if (!read(cbuffer, 1)){return false;}
int num = iread(cbuffer+1, 4999);
if (num > 0){
buffer.append(cbuffer, num);
return true;
buffer.append(cbuffer, num+1);
}else{
buffer.append(cbuffer, 1);
}
return false;
return true;
}//read
/// Create a new base ServerSocket. The socket is never connected, and a placeholder for later connections.

View file

@ -134,20 +134,8 @@ bool HTTP::Parser::Read(DDV::Socket & sock){
int r = 0;
int b = 0;
char buffer[500];
while (true){
r = sock.ready();
if (r < 1){
if (r == -1){
#if DEBUG >= 1
fprintf(stderr, "User socket is disconnected.\n");
#endif
}
return parse();
}
b = sock.iread(buffer, 500);
HTTPbuffer.append(buffer, b);
}
return false;
sock.read(HTTPbuffer);
return parse();
}//HTTPReader::ReadSocket
/// Reads a full set of HTTP responses/requests from file F.