version 1.21, 2003/11/21 11:57:03 |
version 1.21.4.1, 2005/03/10 16:28:27 |
|
|
|
|
/* Gets data from the beginning of the buffer. */ |
/* Gets data from the beginning of the buffer. */ |
|
|
void |
int |
buffer_get(Buffer *buffer, void *buf, u_int len) |
buffer_get_ret(Buffer *buffer, void *buf, u_int len) |
{ |
{ |
if (len > buffer->end - buffer->offset) |
if (len > buffer->end - buffer->offset) { |
fatal("buffer_get: trying to get more bytes %d than in buffer %d", |
error("buffer_get_ret: trying to get more bytes %d than in buffer %d", |
len, buffer->end - buffer->offset); |
len, buffer->end - buffer->offset); |
|
return (-1); |
|
} |
memcpy(buf, buffer->buf + buffer->offset, len); |
memcpy(buf, buffer->buf + buffer->offset, len); |
buffer->offset += len; |
buffer->offset += len; |
|
return (0); |
} |
} |
|
|
|
void |
|
buffer_get(Buffer *buffer, void *buf, u_int len) |
|
{ |
|
if (buffer_get_ret(buffer, buf, len) == -1) |
|
fatal("buffer_get: buffer error"); |
|
} |
|
|
/* Consumes the given number of bytes from the beginning of the buffer. */ |
/* Consumes the given number of bytes from the beginning of the buffer. */ |
|
|
|
int |
|
buffer_consume_ret(Buffer *buffer, u_int bytes) |
|
{ |
|
if (bytes > buffer->end - buffer->offset) { |
|
error("buffer_consume_ret: trying to get more bytes than in buffer"); |
|
return (-1); |
|
} |
|
buffer->offset += bytes; |
|
return (0); |
|
} |
|
|
void |
void |
buffer_consume(Buffer *buffer, u_int bytes) |
buffer_consume(Buffer *buffer, u_int bytes) |
{ |
{ |
if (bytes > buffer->end - buffer->offset) |
if (buffer_consume_ret(buffer, bytes) == -1) |
fatal("buffer_consume: trying to get more bytes than in buffer"); |
fatal("buffer_consume: buffer error"); |
buffer->offset += bytes; |
|
} |
} |
|
|
/* Consumes the given number of bytes from the end of the buffer. */ |
/* Consumes the given number of bytes from the end of the buffer. */ |
|
|
|
int |
|
buffer_consume_end_ret(Buffer *buffer, u_int bytes) |
|
{ |
|
if (bytes > buffer->end - buffer->offset) |
|
return (-1); |
|
buffer->end -= bytes; |
|
return (0); |
|
} |
|
|
void |
void |
buffer_consume_end(Buffer *buffer, u_int bytes) |
buffer_consume_end(Buffer *buffer, u_int bytes) |
{ |
{ |
if (bytes > buffer->end - buffer->offset) |
if (buffer_consume_end_ret(buffer, bytes) == -1) |
fatal("buffer_consume_end: trying to get more bytes than in buffer"); |
fatal("buffer_consume_end: trying to get more bytes than in buffer"); |
buffer->end -= bytes; |
|
} |
} |
|
|
/* Returns a pointer to the first used byte in the buffer. */ |
/* Returns a pointer to the first used byte in the buffer. */ |