SOCK_get_next_byte should not return garbage after error/EOF. Return

zero bytes instead.
This commit is contained in:
Tom Lane 2001-02-11 23:46:40 +00:00
parent 07faa2fdce
commit d9eb5b75e3

View File

@ -286,7 +286,7 @@ SOCK_get_next_byte(SocketClass *self)
{
if (self->buffer_read_in >= self->buffer_filled_in)
{
/* there are no more bytes left in the buffer -> */
/* there are no more bytes left in the buffer, so */
/* reload the buffer */
self->buffer_read_in = 0;
@ -296,17 +296,19 @@ SOCK_get_next_byte(SocketClass *self)
mylog("read %d, global_socket_buffersize=%d\n",
self->buffer_filled_in, globals.socket_buffersize);
if (self->buffer_filled_in == -1)
if (self->buffer_filled_in < 0)
{
self->errornumber = SOCKET_READ_ERROR;
self->errormsg = "Error while reading from the socket.";
self->buffer_filled_in = 0;
return 0;
}
if (self->buffer_filled_in == 0)
{
self->errornumber = SOCKET_CLOSED;
self->errormsg = "Socket has been closed.";
self->buffer_filled_in = 0;
return 0;
}
}
return self->buffer_in[self->buffer_read_in++];