Beispiel #1
0
void CServer::IssueMessages(const tinyirc::IRCMessage & Message)
{
	switch(Message.Type)
	{
		case tinyirc::IRCMessageType::Welcome:
			ProcessWelcome(Message);
			break;
		case tinyirc::IRCMessageType::MOTD:
			ProcessMOTD(Message);
			break;
		case tinyirc::IRCMessageType::UserMode:
			ProcessUserMode(Message);
			break;

		case tinyirc::IRCMessageType::Message:
			ProcessPrvtMessage(Message);
			break;
		case tinyirc::IRCMessageType::Notice:
			ProcessNotice(Message);
			break;


		case tinyirc::IRCMessageType::UserList:
			ProcessUserList(Message);
			break;
		case tinyirc::IRCMessageType::Topic:
			ProcessTopic(Message);
			break;
		case tinyirc::IRCMessageType::NickChange:
			ProcessNick(Message);
			break;
		case tinyirc::IRCMessageType::Join:
			ProcessJoin(Message);
			break;
		case tinyirc::IRCMessageType::Part:
			ProcessPart(Message);
			break;
		case tinyirc::IRCMessageType::Quit:
			ProcessQuit(Message);
			break;
		case tinyirc::IRCMessageType::ChannelMode:
			ProcessChannelMode(Message);
			break;
		case tinyirc::IRCMessageType::TopicChanged:
			ProcessTopicChanged(Message);
			break;
		case tinyirc::IRCMessageType::Kick:
			ProcessKick(Message);
			break;

	}
}
Beispiel #2
0
static
DWORD
ProcessArgs(
    int   argc,
    char* argv[]
    )
{
    DWORD dwError = 0;
    DWORD iArg = 0;
    DWORD dwArgsLeft = argc;
    PSTR  pszArg = NULL;

    if (!argc || !argv)
    {
        dwError = ERROR_INVALID_PARAMETER;
        BAIL_ON_VMAFD_ERROR(dwError);
    }

    iArg++; // skip first argument
    dwArgsLeft--;

    if (!dwArgsLeft)
    {
        dwError = ERROR_INVALID_PARAMETER;
        BAIL_ON_VMAFD_ERROR(dwError);
    }

    pszArg = argv[iArg++];
    dwArgsLeft--;

    if (!VmAfdStringCompareA(pszArg, "help", TRUE))
    {
        ShowUsage();
    }
    else if (!VmAfdStringCompareA(pszArg, "join", TRUE))
    {
        dwError = ProcessJoin(
                        dwArgsLeft,
                        dwArgsLeft > 0 ? &argv[iArg] : NULL);
    }
    else if (!VmAfdStringCompareA(pszArg, "leave", TRUE))
    {
        dwError = ProcessLeave(
                        dwArgsLeft,
                        dwArgsLeft > 0 ? &argv[iArg] : NULL);
    }
    else if (!VmAfdStringCompareA(pszArg, "info", TRUE))
    {
        dwError = ProcessInfo(
                        dwArgsLeft,
                        dwArgsLeft > 0 ? &argv[iArg] : NULL);
    }
    else
    {
        dwError = ERROR_INVALID_PARAMETER;
    }
    BAIL_ON_VMAFD_ERROR(dwError);

cleanup:

    return dwError;

error:

    if (dwError == ERROR_INVALID_PARAMETER ||
        dwError == ERROR_INVALID_COMMAND_LINE)
    {
        ShowUsage();
    }

    goto cleanup;
}