1 #include "headers.h"
2 #include <String.h>
3
4 SmbProcessResult
smbcomflush(SmbSession * s,SmbHeader * h,uchar * pdata,SmbBuffer *)5 smbcomflush(SmbSession *s, SmbHeader *h, uchar *pdata, SmbBuffer *)
6 {
7 SmbTree *t;
8 SmbFile *f;
9 ushort fid;
10 Dir nulldir;
11 if (h->wordcount != 1)
12 return SmbProcessResultFormat;
13 fid = smbnhgets(pdata);
14 t = smbidmapfind(s->tidmap, h->tid);
15 if (t == nil) {
16 smbseterror(s, ERRSRV, ERRinvtid);
17 return SmbProcessResultError;
18 }
19 f = smbidmapfind(s->fidmap, fid);
20 if (f == nil) {
21 smbseterror(s, ERRDOS, ERRbadfid);
22 return SmbProcessResultError;
23 }
24 memset(&nulldir, 0xff, sizeof(nulldir));
25 nulldir.name = nulldir.uid = nulldir.gid = nulldir.muid = nil;
26 dirfwstat(f->fd, &nulldir);
27 return smbbufferputack(s->response, h, &s->peerinfo);
28 }
29