Socket fixes 3
This commit is contained in:
parent
08f78a8bed
commit
8f3466ea78
2 changed files with 8 additions and 18 deletions
|
@ -211,12 +211,14 @@ int DDV::Socket::iread(void * buffer, int len){
|
||||||
/// \return True if new data arrived, false otherwise.
|
/// \return True if new data arrived, false otherwise.
|
||||||
bool DDV::Socket::read(std::string & buffer){
|
bool DDV::Socket::read(std::string & buffer){
|
||||||
char cbuffer[5000];
|
char cbuffer[5000];
|
||||||
int num = iread(cbuffer, 5000);
|
if (!read(cbuffer, 1)){return false;}
|
||||||
|
int num = iread(cbuffer+1, 4999);
|
||||||
if (num > 0){
|
if (num > 0){
|
||||||
buffer.append(cbuffer, num);
|
buffer.append(cbuffer, num+1);
|
||||||
return true;
|
}else{
|
||||||
|
buffer.append(cbuffer, 1);
|
||||||
}
|
}
|
||||||
return false;
|
return true;
|
||||||
}//read
|
}//read
|
||||||
|
|
||||||
/// Create a new base ServerSocket. The socket is never connected, and a placeholder for later connections.
|
/// Create a new base ServerSocket. The socket is never connected, and a placeholder for later connections.
|
||||||
|
|
|
@ -134,20 +134,8 @@ bool HTTP::Parser::Read(DDV::Socket & sock){
|
||||||
int r = 0;
|
int r = 0;
|
||||||
int b = 0;
|
int b = 0;
|
||||||
char buffer[500];
|
char buffer[500];
|
||||||
while (true){
|
sock.read(HTTPbuffer);
|
||||||
r = sock.ready();
|
return parse();
|
||||||
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;
|
|
||||||
}//HTTPReader::ReadSocket
|
}//HTTPReader::ReadSocket
|
||||||
|
|
||||||
/// Reads a full set of HTTP responses/requests from file F.
|
/// Reads a full set of HTTP responses/requests from file F.
|
||||||
|
|
Loading…
Add table
Reference in a new issue