make sure to return just 1 for rio.c write when the target is a buffer, as we do when the target is a file.

This commit is contained in:
antirez 2011-09-22 15:54:08 +02:00
parent 4c0462972e
commit 69cecb511f

View File

@ -6,13 +6,13 @@
static size_t rioBufferWrite(rio *r, const void *buf, size_t len) { static size_t rioBufferWrite(rio *r, const void *buf, size_t len) {
r->io.buffer.ptr = sdscatlen(r->io.buffer.ptr,(char*)buf,len); r->io.buffer.ptr = sdscatlen(r->io.buffer.ptr,(char*)buf,len);
r->io.buffer.pos += len; r->io.buffer.pos += len;
return len; return 1;
} }
/* Returns 1 or 0 for success/failure. */ /* Returns 1 or 0 for success/failure. */
static size_t rioBufferRead(rio *r, void *buf, size_t len) { static size_t rioBufferRead(rio *r, void *buf, size_t len) {
if (sdslen(r->io.buffer.ptr)-r->io.buffer.pos < len) if (sdslen(r->io.buffer.ptr)-r->io.buffer.pos < len)
return 0; return 0; /* not enough buffer to return len bytes. */
memcpy(buf,r->io.buffer.ptr+r->io.buffer.pos,len); memcpy(buf,r->io.buffer.ptr+r->io.buffer.pos,len);
r->io.buffer.pos += len; r->io.buffer.pos += len;
return 1; return 1;