1 #include "headers.h"
2
3 SmbProcessResult
smbcomclose(SmbSession * s,SmbHeader * h,uchar * pdata,SmbBuffer *)4 smbcomclose(SmbSession *s, SmbHeader *h, uchar *pdata, SmbBuffer *)
5 {
6 SmbTree *t;
7 SmbFile *f;
8 ushort fid;
9 if (!smbcheckwordcount("comclose", h, 3))
10 return SmbProcessResultFormat;
11 t = smbidmapfind(s->tidmap, h->tid);
12 if (t == nil) {
13 smbseterror(s, ERRSRV, ERRinvtid);
14 return SmbProcessResultError;
15 }
16 fid = smbnhgets(pdata);
17 f = smbidmapfind(s->fidmap, fid);
18 if (f == nil) {
19 smbseterror(s, ERRDOS, ERRbadfid);
20 return SmbProcessResultError;
21 }
22 smbfileclose(s, f);
23 return smbbufferputack(s->response, h, &s->peerinfo);
24 }
25