16 while ((r == -1) && (
errno == EINTR));
17 if (r == -1)
return -1;
18 if (r == 0) {
errno = EIO;
return -1; }
35 for (i = 0;i <
n;++
i)
if (buf[i] !=
key[i])
return 0;
55 if (lseek(fd,(off_t) pos,
SEEK_SET) == -1)
return -1;
57 if (
cdb_bread(fd,packbuf,8) == -1)
return -1;
62 if (!lenhash)
return 0;
63 h2 = (h >> 8) % lenhash;
65 for (loop = 0;loop < lenhash;++loop) {
66 if (lseek(fd,(off_t) (pos + 8 * h2),
SEEK_SET) == -1)
return -1;
67 if (
cdb_bread(fd,packbuf,8) == -1)
return -1;
71 if (lseek(fd,(off_t) poskd,
SEEK_SET) == -1)
return -1;
72 if (
cdb_bread(fd,packbuf,8) == -1)
return -1;
74 switch(
match(fd,key,len)) {
82 if (++h2 == lenhash) h2 = 0;
uint32 cdb_unpack(unsigned char *buf)
int cdb_seek(int fd, char *key, unsigned int len, uint32 *dlen)
int cdb_bread(int fd, char *buf, int len)
void h(char *home, int uid, int gid, int mode)
uint32 cdb_hash(char *, unsigned int)