- user->WriteServ("PONG %s :%s", ServerInstance->Config->ServerName.c_str(), parameters[0].c_str());
+ size_t origin = parameters.size() > 1 ? 1 : 0;
+ if (parameters[origin].empty())
+ {
+ user->WriteNumeric(ERR_NOORIGIN, "No origin specified");
+ return CMD_FAILURE;
+ }
+
+ ClientProtocol::Messages::Pong pong(parameters[0], origin ? parameters[1] : ServerInstance->Config->GetServerName());
+ user->Send(ServerInstance->GetRFCEvents().pong, pong);