smbcomdir.c
来自「这是一个同样来自贝尔实验室的和UNIX有着渊源的操作系统, 其简洁的设计和实现易」· C语言 代码 · 共 50 行
C
50 行
#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 + =
减小字号Ctrl + -
显示快捷键?