diff options
author | Taru Karttunen <taruti@taruti.net> | 2011-03-30 15:46:40 +0300 |
---|---|---|
committer | Taru Karttunen <taruti@taruti.net> | 2011-03-30 15:46:40 +0300 |
commit | e5888a1ffdae813d7575f5fb02275c6bb07e5199 (patch) | |
tree | d8d51eac403f07814b9e936eed0c9a79195e2450 /sys/src/libauth/auth_wep.c |
Import sources from 2011-03-30 iso image
Diffstat (limited to 'sys/src/libauth/auth_wep.c')
-rwxr-xr-x | sys/src/libauth/auth_wep.c | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/sys/src/libauth/auth_wep.c b/sys/src/libauth/auth_wep.c new file mode 100755 index 000000000..afde46b90 --- /dev/null +++ b/sys/src/libauth/auth_wep.c @@ -0,0 +1,50 @@ +#include <u.h> +#include <libc.h> +#include <auth.h> +#include "authlocal.h" + +/* + * make factotum add wep keys to an 802.11 device + */ +int +auth_wep(char *dev, char *fmt, ...) +{ + AuthRpc *rpc; + char *params, *p; + int fd; + va_list arg; + int rv; + + rv = -1; + + if(dev == nil){ + werrstr("no device specified"); + return rv; + } + + fd = open("/mnt/factotum/rpc", ORDWR); + if(fd < 0) + return rv; + + rpc = auth_allocrpc(fd); + if(rpc != nil){ + quotefmtinstall(); /* just in case */ + va_start(arg, fmt); + params = vsmprint(fmt, arg); + va_end(arg); + if(params != nil){ + p = smprint("proto=wep %s", params); + if(p != nil){ + if(auth_rpc(rpc, "start", p, strlen(p)) == ARok + && auth_rpc(rpc, "write", dev, strlen(dev)) == ARok) + rv = 0; + free(p); + } + free(params); + } + auth_freerpc(rpc); + } + close(fd); + + return rv; +} |