#include "headers.h"
SmbProcessResult
smbcomclose(SmbSession *s, SmbHeader *h, uchar *pdata, SmbBuffer *)
{
SmbTree *t;
SmbFile *f;
ushort fid;
if (!smbcheckwordcount("comclose", h, 3))
return SmbProcessResultFormat;
t = smbidmapfind(s->tidmap, h->tid);
if (t == nil) {
smbseterror(s, ERRSRV, ERRinvtid);
return SmbProcessResultError;
}
fid = smbnhgets(pdata);
f = smbidmapfind(s->fidmap, fid);
if (f == nil) {
smbseterror(s, ERRDOS, ERRbadfid);
return SmbProcessResultError;
}
smbfileclose(s, f);
return smbbufferputack(s->response, h, &s->peerinfo);
}
|