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

📄 smbcomrename.c

📁 这是一个同样来自贝尔实验室的和UNIX有着渊源的操作系统, 其简洁的设计和实现易于我们学习和理解
💻 C
字号:
#include "headers.h"SmbProcessResultsmbcomrename(SmbSession *s, SmbHeader *h, uchar *, SmbBuffer *b){	int rv;	char *oldpath, *newpath;	char *olddir, *newdir;	char *oldname, *newname;	uchar oldfmt, newfmt;	Dir d;	SmbProcessResult pr;	if (h->wordcount != 1)		return SmbProcessResultFormat;	if (!smbbuffergetb(b, &oldfmt) || oldfmt != 0x04 || !smbbuffergetstring(b, h, SMB_STRING_PATH, &oldpath)		|| !smbbuffergetb(b, &newfmt) || newfmt != 0x04 || !smbbuffergetstring(b, h, SMB_STRING_PATH, &newpath))		return SmbProcessResultFormat;	smblogprint(h->command, "smbcomrename: %s to %s\n", oldpath, newpath);	smbpathsplit(oldpath, &olddir, &oldname);	smbpathsplit(newpath, &newdir, &newname);	if (strcmp(olddir, newdir) != 0) {		smblogprint(h->command, "smbcomrename: directories differ\n");		goto noaccess;	}	memset(&d, 0xff, sizeof(d));	d.uid = d.gid = d.muid = nil;	d.name = newname;	rv = dirwstat(oldpath, &d);	if (rv < 0) {		smblogprint(h->command, "smbcomrename failed: %r\n");	noaccess:		smbseterror(s, ERRDOS, ERRnoaccess);		pr =  SmbProcessResultError;	}	else		pr = smbbufferputack(s->response, h, &s->peerinfo);	free(oldpath);	free(olddir);	free(oldname);	free(newpath);	free(newdir);	free(newname);	return pr;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -