1219b2ee8SDavid du Colombier #include <u.h> 2219b2ee8SDavid du Colombier #include <libc.h> 3*9a747e4fSDavid du Colombier #include "authcmdlib.h" 4219b2ee8SDavid du Colombier 5219b2ee8SDavid du Colombier /* 6219b2ee8SDavid du Colombier * read exactly len bytes 7219b2ee8SDavid du Colombier */ 8219b2ee8SDavid du Colombier int 9219b2ee8SDavid du Colombier readn(int fd, char *buf, int len) 10219b2ee8SDavid du Colombier { 11219b2ee8SDavid du Colombier int m, n; 12219b2ee8SDavid du Colombier 13219b2ee8SDavid du Colombier for(n = 0; n < len; n += m){ 14219b2ee8SDavid du Colombier m = read(fd, buf+n, len-n); 15219b2ee8SDavid du Colombier if(m <= 0) 16219b2ee8SDavid du Colombier return -1; 17219b2ee8SDavid du Colombier } 18219b2ee8SDavid du Colombier return n; 19219b2ee8SDavid du Colombier } 20