--- a/src/line_proto.c Sat Feb 28 17:39:37 2009 +0200
+++ b/src/line_proto.c Sat Feb 28 18:48:10 2009 +0200
@@ -154,7 +154,7 @@
size_t recv_offset = 0, peek_offset = 0, next_offset = 0;
int ret;
- // adjust offset from previous data
+ // adjust offset to beyond previous data (as will be moved next)
recv_offset = lp->tail_len;
// move trailing data from previous line to front of buffer
@@ -183,23 +183,16 @@
assert(recv_offset < lp->buf_len);
// otherwise, read more data
- if ((ret = sock_stream_read(lp->sock, lp->buf + recv_offset, lp->buf_len - recv_offset)) < 0) {
- // we can special-case EAGAIN, as it's expected
- if (MATCH_ERROR(sock_stream_error(lp->sock), ERR_READ, EAGAIN)) {
- // return a NULL *line_ptr
- *line_ptr = NULL;
- break;
+ if ((ret = sock_stream_read(lp->sock, lp->buf + recv_offset, lp->buf_len - recv_offset)) < 0)
+ // store and return NULL on errors
+ RETURN_SET_ERROR_INFO(&lp->err, sock_stream_error(lp->sock));
- } else {
- // store and return NULL on errors
- RETURN_SET_ERROR_INFO(&lp->err, sock_stream_error(lp->sock));
-
- }
+ // EAGAIN?
+ if (ret == 0) {
+ // return a NULL *line_ptr
+ *line_ptr = NULL;
+ break;
}
-
- // EOF?
- if (ret == 0)
- return SET_ERROR(&lp->err, ERR_READ_EOF);
// update recv_offset
recv_offset += ret;