Subversion Repositories planix.SVN

Rev

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

#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);
}