代码拉取完成,页面将自动刷新
同步操作将从 skycrash/wangpan03 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
#include "head.h"
// 接受并执行客户端传来的命令
int execCommand(int netfd, struct userProcess_s *user, MYSQL* mysql){
//char *command[] = {"cd", "ls", "pwd", "mkdir", "rmdir", "puts", "gets", "remove", "end"};
train_t train;
bzero(&train, sizeof(train));
// 接收命令的类型
int commandID;
recvn(netfd, &commandID, sizeof(int));
printf("commandID=%d\n",commandID);
// 接收参数的长度
recvn(netfd, &train.length, sizeof(train.length));
// 接收参数内容
recvn(netfd, train.data, train.length);
int ret;
// 判断命令类型
switch (commandID){
case 0: // 执行cd
LOGRECORD(INFO, "cd");
ret = changeusrPath(mysql, train.data, user);
send(netfd, &ret, sizeof(int), MSG_NOSIGNAL);
break;
case 1: // 执行ls
LOGRECORD(INFO, "ls");
lsCurrDir(netfd, mysql, user);
break;
case 2: // 执行pwd
LOGRECORD(INFO, "pwd");
printfCurrPath(netfd, mysql, user);
break;
case 3: // 执行mkdir
LOGRECORD(INFO, "mkdir");
ret = mkDir(train.data, mysql, user);
send(netfd, &ret, sizeof(int), MSG_NOSIGNAL);
break;
case 4: // 执行rmdir
LOGRECORD(INFO, "rmdir");
ret = rmDir(train.data, mysql, user);
send(netfd, &ret, sizeof(int), MSG_NOSIGNAL);
break;
case 5: // 客户端执行了puts上传,服务端接收
LOGRECORD(INFO, "puts");
unsigned char MD5[16];
bzero(MD5,sizeof(MD5));
// 接收 md5 并校验
ret = recvandcheck(netfd, mysql, MD5);
if(ret == 0){
// 文件表存在该md5,则秒传
printf("秒传\n");
// 接收文件名
train_t filename;
bzero(&filename,sizeof(filename));
recvn(netfd, &filename.length ,sizeof(int));
recvn(netfd, filename.data, train.length);
ret = insertSql(filename.data, mysql, user, MD5);
LOGRECORD(INFO,"insertSql in execCommand !");
}else{
// 文件表不存在该md5,则按类型接收
LOGRECORD(INFO,"file not exist");
ret = recvFile(netfd, MD5, mysql, user);
}
send(netfd, &ret, sizeof(int), MSG_NOSIGNAL);
break;
case 6: // 客户端执行了gets下载,服务端发送
LOGRECORD(INFO, "gets");
ret = sendFile(netfd, train.data, mysql, user);
send(netfd, &ret, sizeof(int), MSG_NOSIGNAL);
break;
case 7: // 执行remove
LOGRECORD(INFO, "remove");
//rmFile(train.data, user);
ret = deleteServerFile(train.data, mysql, user);
send(netfd, &ret, sizeof(int), MSG_NOSIGNAL);
break;
case 8:
close(netfd);
return -1;
default:
break;
}
return 0;
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。