xref: /plan9/sys/src/cmd/auth/lib/readarg.c (revision 219b2ee8daee37f4aad58d63f21287faa8e4ffdc)
1*219b2ee8SDavid du Colombier #include <u.h>
2*219b2ee8SDavid du Colombier #include <libc.h>
3*219b2ee8SDavid du Colombier #include <auth.h>
4*219b2ee8SDavid du Colombier #include "authsrv.h"
5*219b2ee8SDavid du Colombier 
6*219b2ee8SDavid du Colombier int
7*219b2ee8SDavid du Colombier readarg(int fd, char *arg, int len)
8*219b2ee8SDavid du Colombier {
9*219b2ee8SDavid du Colombier 	char buf[1];
10*219b2ee8SDavid du Colombier 	int i;
11*219b2ee8SDavid du Colombier 
12*219b2ee8SDavid du Colombier 	i = 0;
13*219b2ee8SDavid du Colombier 	for(;;){
14*219b2ee8SDavid du Colombier 		if(read(fd, buf, 1) != 1)
15*219b2ee8SDavid du Colombier 			return -1;
16*219b2ee8SDavid du Colombier 		if(i < len - 1)
17*219b2ee8SDavid du Colombier 			arg[i++] = *buf;
18*219b2ee8SDavid du Colombier 		if(*buf == '\0'){
19*219b2ee8SDavid du Colombier 			arg[i] = '\0';
20*219b2ee8SDavid du Colombier 			return 0;
21*219b2ee8SDavid du Colombier 		}
22*219b2ee8SDavid du Colombier 	}
23*219b2ee8SDavid du Colombier }
24