Subversion Repositories planix.SVN

Rev

Rev 2 | Blame | Compare with Previous | Last modification | View Log | RSS feed

#include "headers.h"
#include <String.h>

SmbProcessResult
smbcomflush(SmbSession *s, SmbHeader *h, uchar *pdata, SmbBuffer *)
{
        SmbTree *t;
        SmbFile *f;
        ushort fid;
        Dir nulldir;
        if (h->wordcount != 1)
                return SmbProcessResultFormat;
        fid = smbnhgets(pdata);
        t = smbidmapfind(s->tidmap, h->tid);
        if (t == nil) {
                smbseterror(s, ERRSRV, ERRinvtid);
                return SmbProcessResultError;
        }
        f = smbidmapfind(s->fidmap, fid);
        if (f == nil) {
                smbseterror(s, ERRDOS, ERRbadfid);
                return SmbProcessResultError;
        }
        memset(&nulldir, 0xff, sizeof(nulldir));
        nulldir.name = nulldir.uid = nulldir.gid = nulldir.muid = nil;
        dirfwstat(f->fd, &nulldir);
        return smbbufferputack(s->response, h, &s->peerinfo);
}