From 1ac60148eb818857ad667789cb84973e76f02a4f Mon Sep 17 00:00:00 2001 From: rsc Date: Fri, 27 Jan 2006 04:11:37 +0000 Subject: add --- src/lib9pclient/access.c | 36 ++++++++++++++++++++++++++++++++++++ src/lib9pclient/mkfile | 1 + 2 files changed, 37 insertions(+) create mode 100755 src/lib9pclient/access.c (limited to 'src/lib9pclient') diff --git a/src/lib9pclient/access.c b/src/lib9pclient/access.c new file mode 100755 index 00000000..210b1684 --- /dev/null +++ b/src/lib9pclient/access.c @@ -0,0 +1,36 @@ +#include +#include +#include +#include <9pclient.h> +#include "fsimpl.h" + +int +fsaccess(CFsys *fsys, char *name, int mode) +{ + CFid *fid; + Dir *db; + static char omode[] = { + 0, + OEXEC, + OWRITE, + ORDWR, + OREAD, + OEXEC, /* only approximate */ + ORDWR, + ORDWR /* only approximate */ + }; + + if(mode == AEXIST){ + db = fsdirstat(fsys, name); + free(db); + if(db != nil) + return 0; + return -1; + } + fid = fsopen(fsys, name, omode[mode&7]); + if(fid != nil){ + fsclose(fid); + return 0; + } + return -1; +} diff --git a/src/lib9pclient/mkfile b/src/lib9pclient/mkfile index 5f1eb78c..55882cae 100644 --- a/src/lib9pclient/mkfile +++ b/src/lib9pclient/mkfile @@ -3,6 +3,7 @@ LIB=lib9pclient.a OFILES=\ + access.$O\ auth.$O\ close.$O\ create.$O\ -- cgit v1.2.3