📄 smbcomdir.c
字号:
#include "headers.h"SmbProcessResultsmbcomcheckdirectory(SmbSession *s, SmbHeader *h, uchar *, SmbBuffer *b){ char *path; Dir *d; uchar fmt; SmbProcessResult pr; SmbTree *t; char *fullpath = nil; if (!smbcheckwordcount("comcheckdirectory", h, 0)) return SmbProcessResultFormat; if (!smbbuffergetb(b, &fmt) || fmt != 4 || !smbbuffergetstring(b, h, SMB_STRING_PATH, &path)) return SmbProcessResultFormat; t = smbidmapfind(s->tidmap, h->tid); if (t == nil) { smbseterror(s, ERRSRV, ERRinvtid); return SmbProcessResultError; } smbstringprint(&fullpath, "%s%s", t->serv->path, path);smblogprintif(1, "smbcomcheckdirectory: statting %s\n", fullpath); d = dirstat(fullpath); if (d == nil || (d->mode & DMDIR) == 0) { smbseterror(s, ERRDOS, ERRbadpath); pr = SmbProcessResultError; goto done; } if (access(fullpath, AREAD) < 0) { smbseterror(s, ERRDOS, ERRbadpath); pr = SmbProcessResultError; goto done; } pr = smbbufferputack(s->response, h, &s->peerinfo) ? SmbProcessResultReply : SmbProcessResultMisc;done: free(fullpath); free(path); free(d); return pr;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -