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