예제 #1
0
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;
}
예제 #2
0
파일: alias.c 프로젝트: unxs0/unxsVZ
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)