version 1.8, 2018/07/03 18:49:10 |
version 1.9, 2018/07/04 13:04:30 |
|
|
static ssize_t |
static ssize_t |
ber_readbuf(struct ber *b, void *buf, size_t nbytes) |
ber_readbuf(struct ber *b, void *buf, size_t nbytes) |
{ |
{ |
size_t sz; |
size_t sz, len; |
size_t len; |
|
|
|
if (b->br_rbuf == NULL) |
if (b->br_rbuf == NULL) |
return -1; |
return -1; |
|
|
|
|
bcopy(b->br_rptr, buf, len); |
bcopy(b->br_rptr, buf, len); |
b->br_rptr += len; |
b->br_rptr += len; |
|
b->br_offs += len; |
|
|
return (len); |
return (len); |
} |
} |
|
|
r = ber_readbuf(ber, b, remain); |
r = ber_readbuf(ber, b, remain); |
if (r == -1) |
if (r == -1) |
return -1; |
return -1; |
if (r == 0) |
|
return (b - (u_char *)buf); |
|
b += r; |
b += r; |
remain -= r; |
remain -= r; |
} |
} |
r = b - (u_char *)buf; |
return (b - (u_char *)buf); |
ber->br_offs += r; |
|
return r; |
|
} |
} |
|
|
int |
int |