bool ProcessMessage(Message& msg, Socket* socket){ bool isFinish = true; int argc = 0; //char ** argv = msg.GetCmdArgs(argc);; std::vector<std::string> argv = msg.GetCmdArgs(); argc = argv.size(); Header hdr (MT_COMMAND, 0, 0, 0, CMD_ACK_OK); Header hdr_err (MT_COMMAND, 0, 0, 0, CMD_ACK_ERR); Message res_msg = Message(hdr, NULL); switch(msg.GetHeader() -> GetCommand()){ case CMD_COPY_STAGIN_DIR: std::cout << "CMD_COPY_STAGIN_DIR <dir01> <dir02>...." << std::endl; if(argc >= 2){ //if(Stagein(socket, argv) == OK){ std::cout << "copy stage in dirs successfull\n"; isFinish = false; //} else { std::cout << "copy stage in dirs fail\n"; res_msg.SetHeader(hdr_err); //} } else { std::cout << "Some argument is missing\n" << std::endl; //res_msg.AddArgv("Some argument is missing"); } socket->Send(res_msg); break; case CMD_SUBMITJOB: //<host> <port> <job id> if(argc >= 4){ std::cout << "CMD_SUBMITJOB " << argv[0] << ", " << argv[1] << ", " << argv[2] << ", " << argv[3] << std::endl; if(SubmitJob(*socket, argv[0], argv[1], argv[2], argv[3]) == OK){ std::cout << "submit job successfull\n"; } else { hdr.SetCommand(CMD_ACK_ERR); res_msg.SetHeader(hdr); //res_msg.AddArgv(std::string("Missing argument")); std::cout << "Submit job fail\n"; socket->Send(res_msg); } } else { std::cout << "Some argument is missing\n" << std::endl; hdr.SetCommand(CMD_ACK_ERR); res_msg.SetHeader(hdr); res_msg.AddArgv(SLAVEDAEMON_SUBMITJOB_ERR); socket->Send(res_msg); } break; default: std::cout << "Unknown message: " << res_msg.GetHeader()->GetCommand() << std::endl; break; } //msg.FreeParsedArgs(argv); return isFinish; }
void AliasCommands(pentry entries[], int x) { if(!strcmp(gcPage,"Alias")) { char cServerGroup[100]={""}; char cJobData[100]={""}; ProcessAliasVars(entries,x); if(!strcmp(gcFunction,"New")) { if(guPermLevel>=10) { sprintf(gcNewStep,"Confirm "); gcInputStatus[0]=0; gcMessage="Enter/modify data, review, then confirm. Any other action to cancel."; SetAliasFieldsOn(); } else gcMessage="<blink>Error:</blink> Denied by permission settings"; } else if(!strcmp(gcFunction,"Confirm New")) { if(guPermLevel>=10) { if(ValidateAliasInput()) { sprintf(gcNewStep,"Confirm "); gcInputStatus[0]=0; gcMessage="Enter/modify data, review, then confirm. Any other action to cancel."; htmlAlias(); } InsertAlias(); sprintf(cServerGroup,"%s",ForeignKey("tServerGroup","cLabel",uServerGroup)); sprintf(cJobData,"uAlias=%u;\ncUser=%s;\ncTargetEmail=%s;\n", uAlias,cUser,cTargetEmail); SubmitJob("NewAlias","",cUser,cServerGroup,cJobData,0,0, guLoginClient,guLoginClient); } else gcMessage="<blink>Error:</blink> Denied by permission settings"; } else if(!strcmp(gcFunction,"Modify")) { if(uAllowMod(uOwner,uCreatedBy)) { sprintf(gcModStep,"Confirm "); gcInputStatus[0]=0; gcMessage="Enter/modify data, review, then confirm. Any other action to cancel."; SetAliasFieldsOn(); } else gcMessage="<blink>Error:</blink> Denied by permission settings"; } else if(!strcmp(gcFunction,"Confirm Modify")) { if(uAllowMod(uOwner,uCreatedBy)) { if(ValidateAliasInput()) { sprintf(gcModStep,"Confirm "); gcInputStatus[0]=0; gcMessage="Enter/modify data, review, then confirm. Any other action to cancel."; htmlAlias(); } UpdateAlias(); sprintf(cServerGroup,"%s",ForeignKey("tServerGroup","cLabel",uServerGroup)); sprintf(cJobData,"uAlias=%u;\ncUser=%s;\ncTargetEmail=%s;\n", uAlias,cUser,cTargetEmail); SubmitJob("ModAlias","",cUser,cServerGroup,cJobData,0,0, guLoginClient,guLoginClient); } else gcMessage="<blink>Error:</blink> Denied by permission settings"; } else if(!strcmp(gcFunction,"Delete")) { if(uAllowDel(uOwner,uCreatedBy)) { sprintf(gcDelStep,"Confirm "); gcMessage="Double check you have selected the correct record to delete. Then confirm. Any other action to cancel."; } else gcMessage="<blink>Error:</blink> Denied by permission settings"; } else if(!strcmp(gcFunction,"Confirm Delete")) { if(uAllowDel(uOwner,uCreatedBy)) { DeleteAlias(); sprintf(cServerGroup,"%s",ForeignKey("tServerGroup","cLabel",uServerGroup)); sprintf(cJobData,"uAlias=%u;\ncUser=%s;\ncTargetEmail=%s;\n", uAlias,cUser,cTargetEmail); SubmitJob("DelAlias","",cUser,cServerGroup,cJobData,0,0, guLoginClient,guLoginClient); } else gcMessage="<blink>Error:</blink> Denied by permission settings"; } htmlAlias(); } }//void AliasCommands(pentry entries[], int x)