diff options
Diffstat (limited to 'src/libstddjb/cdb_read.c')
-rw-r--r-- | src/libstddjb/cdb_read.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/src/libstddjb/cdb_read.c b/src/libstddjb/cdb_read.c index 76fbd63..e857511 100644 --- a/src/libstddjb/cdb_read.c +++ b/src/libstddjb/cdb_read.c @@ -1,23 +1,24 @@ /* ISC license. */ +#include <unistd.h> +#include <stdint.h> +#include <string.h> #include <errno.h> #include <skalibs/error.h> -#include <skalibs/bytestr.h> #include <skalibs/allreadwrite.h> #include <skalibs/uint32.h> -#include <skalibs/djbunix.h> #include <skalibs/cdb.h> -int cdb_read (struct cdb *c, char *buf, unsigned int len, uint32 pos) +int cdb_read (struct cdb *c, char *buf, unsigned int len, uint32_t pos) { if (c->map) { if ((pos > c->size) || (c->size - pos < len)) return (errno = EPROTO, -1) ; - byte_copy(buf, len, c->map + pos) ; + memcpy(buf, c->map + pos, len) ; } else { - if (seek_set(c->fd, pos) < 0) return -1 ; + if (lseek(c->fd, pos, SEEK_SET) < 0) return -1 ; if (allread(c->fd, buf, len) < len) return -1 ; } return 0 ; |