aux/acpi: do not expose empty files

This commit is contained in:
Sigrid 2021-01-22 10:57:43 +01:00
parent 6a78bb2e4f
commit 9025176193

View file

@ -62,6 +62,8 @@ enum {
Qbattery, Qbattery,
Qcputemp, Qcputemp,
Qctl, Qctl,
Qdisable = (uvlong)-1,
}; };
static void rootread(Req*); static void rootread(Req*);
@ -354,7 +356,7 @@ fswalk1(Fid *fid, char *name, Qid *qid)
} }
for(i = 1; i < nelem(dfile); i++){ /* i=1: 0 is root dir */ for(i = 1; i < nelem(dfile); i++){ /* i=1: 0 is root dir */
if(strcmp(dfile[i].name, name) == 0){ if(dfile[i].qid.path != Qdisable && strcmp(dfile[i].name, name) == 0){
*qid = dfile[i].qid; *qid = dfile[i].qid;
fid->qid = *qid; fid->qid = *qid;
return nil; return nil;
@ -424,12 +426,14 @@ rootread(Req *r)
if(offset == 0) /* skip root */ if(offset == 0) /* skip root */
offset = 1; offset = 1;
for(; p+2 < ep; p += n){ for(; p+2 < ep && offset < nelem(dfile); p += n){
if(fillstat(offset, &d, 0) < 0) if(fillstat(offset, &d, 0) < 0)
break; n = 0;
n = convD2M(&d, (uchar*)p, ep-p); else{
if(n <= BIT16SZ) n = convD2M(&d, (uchar*)p, ep-p);
break; if(n <= BIT16SZ)
break;
}
offset++; offset++;
} }
r->fid->aux = (void*)offset; r->fid->aux = (void*)offset;
@ -540,6 +544,11 @@ threadmain(int argc, char **argv)
amlenum(amlroot, "_BIF", enumbat, nil); amlenum(amlroot, "_BIF", enumbat, nil);
amlenum(amlroot, "_PSL", enumtmp, nil); amlenum(amlroot, "_PSL", enumtmp, nil);
if(nbats < 1)
dfile[Qbattery].qid.path = Qdisable;
if(ntherms < 1)
dfile[Qcputemp].qid.path = Qdisable;
threadpostmountsrv(&fs, srv, mtpt, MREPL); threadpostmountsrv(&fs, srv, mtpt, MREPL);
threadexits(nil); threadexits(nil);