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; } }
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; }