diff options
Diffstat (limited to 'src/cmd/factotum/xio.c')
-rw-r--r-- | src/cmd/factotum/xio.c | 165 |
1 files changed, 0 insertions, 165 deletions
diff --git a/src/cmd/factotum/xio.c b/src/cmd/factotum/xio.c deleted file mode 100644 index 2e6b141b..00000000 --- a/src/cmd/factotum/xio.c +++ /dev/null @@ -1,165 +0,0 @@ -#include "std.h" -#include "dat.h" - -static Ioproc *cache[5]; -static int ncache; - -static Ioproc* -xioproc(void) -{ - Ioproc *c; - int i; - - for(i=0; i<ncache; i++){ - if(c = cache[i]){ - cache[i] = nil; - return c; - } - } - - return ioproc(); -} - -static void -closexioproc(Ioproc *io) -{ - int i; - - for(i=0; i<ncache; i++) - if(cache[i] == nil){ - cache[i] = io; - return; - } - - closeioproc(io); -} - -int -xiodial(char *ds, char *local, char *dir, int *cfdp) -{ - int fd; - Ioproc *io; - - if((io = xioproc()) == nil) - return -1; - fd = iodial(io, ds, local, dir, cfdp); - closexioproc(io); - return fd; -} - -void -xioclose(int fd) -{ - Ioproc *io; - - if((io = xioproc()) == nil){ - close(fd); - return; - } - - ioclose(io, fd); - closexioproc(io); -} - -int -xiowrite(int fd, void *v, int n) -{ - int m; - Ioproc *io; - - if((io = xioproc()) == nil) - return -1; - m = iowrite(io, fd, v, n); - closexioproc(io); - if(m != n) - return -1; - return n; -} - -static long -_ioauthdial(va_list *arg) -{ - char *net; - char *dom; - int fd; - - net = va_arg(*arg, char*); - dom = va_arg(*arg, char*); - fd = _authdial(net, dom); - if(fd < 0) - fprint(2, "authdial: %r\n"); - return fd; -} - -int -xioauthdial(char *net, char *dom) -{ - int fd; - Ioproc *io; - - if((io = xioproc()) == nil) - return -1; - fd = iocall(io, _ioauthdial, net, dom); - closexioproc(io); - return fd; -} - -static long -_ioasrdresp(va_list *arg) -{ - int fd; - void *a; - int n; - - fd = va_arg(*arg, int); - a = va_arg(*arg, void*); - n = va_arg(*arg, int); - - return _asrdresp(fd, a, n); -} - -int -xioasrdresp(int fd, void *a, int n) -{ - Ioproc *io; - - if((io = xioproc()) == nil) - return -1; - - n = iocall(io, _ioasrdresp, fd, a, n); - closexioproc(io); - return n; -} - -static long -_ioasgetticket(va_list *arg) -{ - int asfd; - char *trbuf; - char *tbuf; - - asfd = va_arg(*arg, int); - trbuf = va_arg(*arg, char*); - tbuf = va_arg(*arg, char*); - - return _asgetticket(asfd, trbuf, tbuf); -} - -int -xioasgetticket(int fd, char *trbuf, char *tbuf) -{ - int n; - Ioproc *io; - - if((io = xioproc()) == nil) - return -1; - - n = iocall(io, _ioasgetticket, fd, trbuf, tbuf); - closexioproc(io); - if(n != 2*TICKETLEN) - n = -1; - else - n = 0; - return n; -} - |