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