Esempio n. 1
0
int commandHandler(void* data)
{
    CannonBall* ball = (CannonBall*)data;
    std::string command;
    std::string args[10];

    std::cout << "Welcome to Cannonball Marksman. For a list of commands, type help" << std::endl;
    std::cout << "You control the cannonball by typing in commands here.\n";
    std::cout << "Format of commands are <command> <arg1> <arg2> ... <argn>\n";
    while (args[0].compare("exit") != 0 && args[0].compare("quit") != 0)
    {
        std::getline(std::cin, command);
        int index = 0;
        for (unsigned int i = 0; i < command.size() && index < 10; i++)
        {
            args[index].clear();
            while (command[i] != ' ' && command[i] != '\0')
            {
                args[index].push_back(command[i++]);
            }
            ++index;
        }
        SDL_LockMutex(gBallLock);
        cmdHelp(args, ball);
        SDL_UnlockMutex(gBallLock);
    }
    exitCond = true;
    return 0;
}
Esempio n. 2
0
void cliInterpret(const char *line)
{
	char cmd[64];
	const char *tail;
	const char *psep;
	int icmd;

	psep = strchr(line, ' ');
	cmd[0] = 0;

	if (psep == NULL) {
		strncat(cmd, line, sizeof(cmd) - 1);
		tail = NULL;
	} else {
		strncat(cmd, line, psep - line);
		for (tail = psep; *tail == ' '; ++tail);
		if (*tail == 0)
			tail = NULL;
	}

	icmd = cmdFind(cmd);

	if (icmd < 0) {
		printf("Unknown command - try help\n");
		return;
	} else {
		//printf("Command idx: %d\n", icmd);
		if (!cmdset[icmd].handler(tail)) {
			cmdHelp(cmd);
		}
	}
}
Esempio n. 3
0
int main(int argc, char* argv[])
{
	int listenfd,connfd,nread;
	SAIN servaddr, cliaddr;
	socklen_t clilen;
	MSG databuf;

	listenfd = Socket(AF_INET, SOCK_STREAM, 0);

	bzero(&servaddr, sizeof(servaddr));
	servaddr.sin_family = AF_INET;
	servaddr.sin_port = htons(PORT);
	servaddr.sin_addr.s_addr = inet_addr(IP);

	Bind(listenfd, (SA*)&servaddr, sizeof(servaddr));
	
	Listen(listenfd, 10);

	//忽略SIGCHILD,避免僵尸
	signal(SIGCHLD, clearZ);

	clilen = sizeof(cliaddr);

	while(1)
	{
		printf("parent: Waiting....\n");
		connfd = Accept(listenfd, (SA*) &cliaddr, &clilen);
		printf("Connection from [%s:%d] \n", inet_ntoa(cliaddr.sin_addr),
				ntohs(cliaddr.sin_port));

		while(1)
		{
			if((nread = Recv(connfd, &databuf, sizeof(databuf), 0)) >0)
			{
				printf("recv: sockfd = %d, sig = %d.\n", databuf.sockfd, databuf.sig);
				int recvsig  = (*databuf).sig;
				switch (recvsig){
					case LIST:	cmdList(MSG* databuf, int connfd);
								break;
					case DLOAD:	cmdDownload();
								break;
					case ULOAD:	cmdUpload();
								break;
					case HELP:	cmdHelp();
								break;
					case QUIT: cmdQuit();
								break;
				}
				
			}

		}
		sleep(1);
	}

	close(connfd);
	close(listenfd);
	
    exit(0);
}
Esempio n. 4
0
void cmdQuestion(char *buf)
{
	int v;
	if( get_arg(buf) < 1) {
		cmdHelp("");
	}else{
		v = portAddress(arg_ptr[0]);
		if(v) printf("%s=0x%x\n",arg_ptr[0],v);
	}
}
Esempio n. 5
0
static int
doBatchCmd (int argc, char *argv[])
{
  int cmdRet = 0, myIndex;

  if ((myIndex = adminCmdIndex (argv[optind - 1], cmdList)) == -1)
    {
      fprintf (stderr, _i18n_msg_get (ls_catd, NL_SETN, 2554, "Invalid command <%s>. Try help\n"),	/* catgets  2554  */
	       argv[optind - 1]);
      return -1;
    }
  switch (myIndex)
    {
    case BADMIN_MBDRESTART:
      cmdRet = breconfig (argc, argv, MBD_RESTART);
      break;
    case BADMIN_RECONFIG:
      cmdRet = breconfig (argc, argv, MBD_RECONFIG);
      break;
    case BADMIN_CKCONFIG:
      cmdRet = breconfig (argc, argv, MBD_CKCONFIG);
      break;
    case BADMIN_QOPEN:
    case BADMIN_QCLOSE:
    case BADMIN_QACT:
    case BADMIN_QINACT:
      cmdRet = bqc (argc, argv, opCodeList[myIndex]);
      break;
    case BADMIN_HOPEN:
    case BADMIN_HCLOSE:
    case BADMIN_HREBOOT:
    case BADMIN_HSHUT:
      cmdRet = bhc (argc, argv, opCodeList[myIndex]);
      break;
    case BADMIN_HSTARTUP:
      startup (argc, argv, myIndex);
      break;
    case BADMIN_QHIST:
    case BADMIN_HHIST:
    case BADMIN_MBDHIST:
    case BADMIN_HIST:
      cmdRet = sysHist (argc, argv, opCodeList[myIndex]);
      break;
    case BADMIN_MBDDEBUG:
    case BADMIN_MBDTIME:
    case BADMIN_SBDDEBUG:
    case BADMIN_SBDTIME:
      cmdRet = badminDebug (argc, argv, opCodeList[myIndex]);
      break;

    case BADMIN_HELP:
    case BADMIN_QES:
      cmdHelp (argc, argv, cmdList,
	       _i18n_msgArray_get (ls_catd, NL_SETN, cmdInfo_ID, cmdInfo),
	       cmdSyntax);
      break;
    case BADMIN_QUIT:
      exit (0);
    default:
      fprintf (stderr, I18N_FUNC_S_ERROR, "adminCmdIndex()");
      exit (-1);
    }
  if (cmdRet == -2)
    oneCmdUsage (myIndex, cmdList, cmdSyntax);

  fflush (stderr);
  return (cmdRet);

}
QString Commands::execute()
{
    if (strDataList.size() == 0)
        return QString::null;

    QString strCmd = strDataList.at(0).toLower();

    if ((strCmd == "amsg") || (strCmd == "all"))
        return cmdAmsg();
    else if (strCmd == "away")
        return cmdAway();
    else if (strCmd == "busy")
        return cmdBusy();
    else if (strCmd == "clear")
        return cmdClear();
    else if (strCmd == "friend")
        return cmdFriend();
    else if (strCmd == "help" || (Settings::instance()->get("language") == "pl" && strCmd == "pomoc"))
        return cmdHelp();
    else if (strCmd == "ignore")
        return cmdIgnore();
    else if ((strCmd == "join") || (strCmd == "j"))
        return cmdJoin();
    else if ((strCmd == "logout") || (strCmd == "quit") || (strCmd == "q"))
        return cmdQuit();
    else if ((strCmd == "mp3") || (strCmd == "winamp"))
        return cmdMp3();
    else if (strCmd == "offmsg")
        return cmdOffmsg();
    else if ((strCmd == "priv") || (strCmd == "query"))
        return cmdPriv();
    else if ((strCmd == "raw") || (strCmd == "quote"))
        return cmdRaw();
    else if ((strCmd == "whereis") || (strCmd == "whois"))
        return cmdWhereis();

    if ((strChan != DEBUG_WINDOW) && (strChan != STATUS_WINDOW))
    {
        if (strCmd == "ban")
            return cmdBan();
        else if (strCmd == "banip")
            return cmdBanip();
        else if ((strCmd == "cycle") || (strCmd == "hop"))
            return cmdCycle();
        else if (strCmd == "invite")
            return cmdInvite();
        else if (strCmd == "kban")
            return cmdKBan();
        else if (strCmd == "kbanip")
            return cmdKBanip();
        else if ((strCmd == "kick") || (strCmd == "k"))
            return cmdKick();
        else if (strCmd == "me")
            return cmdMe();
        else if ((strCmd == "moder") || (strCmd == "moderator"))
            return cmdModer();
        else if (strCmd == "op")
            return cmdOp();
        else if ((strCmd == "part") || (strCmd == "p"))
            return cmdPart();
        else if (strCmd == "sop")
            return cmdSop();
        else if (strCmd == "topic")
            return cmdTopic();
        else if (strCmd == "vip")
            return cmdVip();
    }

    return strData;
}
Esempio n. 7
0
static int
doLsCmd (int argc, char *argv[])
{
    int cmdRet = 0, cc, myIndex;

    if ((myIndex = adminCmdIndex(argv[optind-1], cmdList)) == -1) {
        fprintf(stderr, "Invalid command <%s>. Try help\n", argv[optind - 1]);
            return -1;
    }
    switch (myIndex) {
        case LSADM_CKCONFIG :
            if ((argc == optind + 1) && strcmp(argv[optind], "-v") == 0)
                cc =  checkConf(1, 1);
            else if (argc == optind) {
                cc = checkConf(0, 1);
                if (cc == -1 || cc == -2)
                    if (getConfirm("Do you want to see detailed messages? [y/n] "));
                cc =  checkConf(1, 1);
            } else
                cmdRet = -2;
            if (cmdRet == 0 && cc != 0)
                cmdRet = -1;
            break;
        case LSADM_RECONFIG :
        case LSADM_LIMREBOOT :
        case LSADM_LIMSHUTDOWN :
            cmdRet = limCtrl(argc, argv, opCodeList[myIndex]);
            break;
        case LSADM_LIMSTARTUP :
            cmdRet = startup(argc, argv, myIndex);
            break;
        case LSADM_LIMLOCK :
            cmdRet = limLock(argc, argv);
            break;
        case LSADM_LIMUNLOCK :
            cmdRet = limUnlock(argc, argv);
            break;
        case LSADM_RESREBOOT :
        case LSADM_RESSHUTDOWN :
        case LSADM_RESLOGON :
        case LSADM_RESLOGOFF :
            cmdRet = resCtrl(argc, argv, opCodeList[myIndex]);
            break;
        case LSADM_LIMDEBUG:
        case LSADM_LIMTIME:
        case LSADM_RESDEBUG:
        case LSADM_RESTIME:
            cmdRet = lsadminDebug(argc, argv, opCodeList[myIndex]);
            break;
        case LSADM_RESSTARTUP :
            cmdRet = startup(argc, argv, myIndex);
            break;
        case LSADM_HELP :
        case LSADM_QES :
            cmdHelp(argc, argv, cmdList, cmdInfo, cmdSyntax);
            break;
        case LSADM_QUIT :
            exit(0);
        default :
            fprintf(stderr, "adminCmdIndex: Error");
            exit(-1);
    }
    if (cmdRet == -2)
	oneCmdUsage(myIndex, cmdList, cmdSyntax);

    fflush(stderr);
    return (cmdRet);

}