⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 smbcomdir.c

📁 这是一个同样来自贝尔实验室的和UNIX有着渊源的操作系统, 其简洁的设计和实现易于我们学习和理解
💻 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 + -