return nil;
}
if(auth_rpc(rpc, "start", keyspec, strlen(keyspec)) != ARok){
- auth_freerpc(rpc);
+ authfree(rpc);
return nil;
}
return rpc;
{
AuthRpc *rpc;
- if(rpc = auth)
+ if(rpc = auth){
+ close(rpc->afd);
auth_freerpc(rpc);
+ }
}
int
-authread(Chan *chan, File *file, uchar *data, int count)
+authread(File *file, uchar *data, int count)
{
AuthInfo *ai;
AuthRpc *rpc;
+ Chan *chan;
+ chan = file->cp;
if((rpc = file->auth) == nil){
snprint(chan->err, sizeof(chan->err),
"not an auth fid");
if((ai = auth_getinfo(rpc)) == nil)
goto Phase;
file->uid = strtouid(ai->cuid);
- auth_freeAI(ai);
if(file->uid < 0){
snprint(chan->err, sizeof(chan->err),
"unknown user '%s'", ai->cuid);
+ auth_freeAI(ai);
return -1;
}
+ auth_freeAI(ai);
return 0;
case ARok:
if(count < rpc->narg){
}
int
-authwrite(Chan *chan, File *file, uchar *data, int count)
+authwrite(File *file, uchar *data, int count)
{
AuthRpc *rpc;
+ Chan *chan;
+ chan = file->cp;
if((rpc = file->auth) == nil){
snprint(chan->err, sizeof(chan->err),
"not an auth fid");