From: <ps...@us...> - 2008-08-28 10:46:53
|
Revision: 1175 http://znc.svn.sourceforge.net/znc/?rev=1175&view=rev Author: psychon Date: 2008-08-28 10:47:01 +0000 (Thu, 28 Aug 2008) Log Message: ----------- Add a 'ShowMOTD' command to *status and reorder 'HELP' output ShowMOTD is now close to the other MOTD commands which only admins can access. The old 'MOTD' is still available, but the help doesn't mention it anymore in favor of 'MOTD'. Modified Paths: -------------- trunk/ClientCommand.cpp Modified: trunk/ClientCommand.cpp =================================================================== --- trunk/ClientCommand.cpp 2008-08-27 14:44:04 UTC (rev 1174) +++ trunk/ClientCommand.cpp 2008-08-28 10:47:01 UTC (rev 1175) @@ -111,7 +111,7 @@ } } else if (sCommand.CaseCmp("VERSION") == 0) { PutStatus(CZNC::GetTag()); - } else if (sCommand.CaseCmp("MOTD") == 0) { + } else if (sCommand.CaseCmp("MOTD") == 0 || sCommand.CaseCmp("ShowMOTD") == 0) { if (!SendMotd()) { PutStatus("There is no MOTD set."); } @@ -985,11 +985,6 @@ Table.SetCell("Description", "Prints which version of znc this is"); Table.AddRow(); - Table.SetCell("Command", "MOTD"); - Table.SetCell("Arguments", ""); - Table.SetCell("Description", "Show the message of the day"); - - Table.AddRow(); Table.SetCell("Command", "ListDCCs"); Table.SetCell("Arguments", ""); Table.SetCell("Description", "List all active DCCs"); @@ -1125,8 +1120,28 @@ Table.SetCell("Description", "Reload a module"); } + Table.AddRow(); + Table.SetCell("Command", "ShowMOTD"); + Table.SetCell("Arguments", ""); + Table.SetCell("Description", "Show the message of the day"); + if (m_pUser->IsAdmin()) { Table.AddRow(); + Table.SetCell("Command", "SetMOTD"); + Table.SetCell("Arguments", "<Message>"); + Table.SetCell("Description", "Set the message of the day"); + + Table.AddRow(); + Table.SetCell("Command", "AddMOTD"); + Table.SetCell("Arguments", "<Message>"); + Table.SetCell("Description", "Append <Message> to MOTD"); + + Table.AddRow(); + Table.SetCell("Command", "ClearMOTD"); + Table.SetCell("Arguments", ""); + Table.SetCell("Description", "Clear the MOTD"); + + Table.AddRow(); Table.SetCell("Command", "Rehash"); Table.SetCell("Arguments", ""); Table.SetCell("Description", "Reload znc.conf from disk"); @@ -1157,21 +1172,6 @@ Table.SetCell("Description", "Show how long ZNC is already running"); Table.AddRow(); - Table.SetCell("Command", "SetMOTD"); - Table.SetCell("Arguments", "<Message>"); - Table.SetCell("Description", "Set the message of the day"); - - Table.AddRow(); - Table.SetCell("Command", "AddMOTD"); - Table.SetCell("Arguments", "<Message>"); - Table.SetCell("Description", "Append <Message> to MOTD"); - - Table.AddRow(); - Table.SetCell("Command", "ClearMOTD"); - Table.SetCell("Arguments", ""); - Table.SetCell("Description", "Clear the MOTD"); - - Table.AddRow(); Table.SetCell("Command", "Broadcast"); Table.SetCell("Arguments", "[message]"); Table.SetCell("Description", "Broadcast a message to all users"); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ps...@us...> - 2008-09-09 15:54:24
|
Revision: 1194 http://znc.svn.sourceforge.net/znc/?rev=1194&view=rev Author: psychon Date: 2008-09-09 15:54:34 +0000 (Tue, 09 Sep 2008) Log Message: ----------- Fix '/msg *status disconnect' to *really* disconnect from IRC Before this commit, if a connection attempt was still going on, that attempt wasn't aborted. This is now fixed. This was reported by Kuja, thanks! Modified Paths: -------------- trunk/ClientCommand.cpp Modified: trunk/ClientCommand.cpp =================================================================== --- trunk/ClientCommand.cpp 2008-09-07 16:25:11 UTC (rev 1193) +++ trunk/ClientCommand.cpp 2008-09-09 15:54:34 UTC (rev 1194) @@ -266,8 +266,20 @@ } } else if (sCommand.CaseCmp("DISCONNECT") == 0) { if (m_pUser) { - if (m_pIRCSock) + // m_pIRCSock is only set after the low level connection + // to the IRC server was established. Before this we can + // only find the IRC socket by its name. + if (m_pIRCSock) { m_pIRCSock->Quit(); + } else { + Csock* pIRCSock; + CString sSockName = "IRC::" + m_pUser->GetUserName(); + // This is *slow*, we try to avoid doing this + pIRCSock = CZNC::Get().GetManager().FindSockByName(sSockName); + if (pIRCSock) + pIRCSock->Close(); + } + m_pUser->SetIRCConnectEnabled(false); PutStatus("Disconnected from IRC. Use 'connect' to reconnect."); return; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <kr...@us...> - 2008-09-26 12:52:17
|
Revision: 1216 http://znc.svn.sourceforge.net/znc/?rev=1216&view=rev Author: kroimon Date: 2008-09-26 12:52:07 +0000 (Fri, 26 Sep 2008) Log Message: ----------- Added descriptive lines to the LISTMODS and LISTAVAILMODS commands. Also did a few minor style changes. Modified Paths: -------------- trunk/ClientCommand.cpp Modified: trunk/ClientCommand.cpp =================================================================== --- trunk/ClientCommand.cpp 2008-09-26 12:51:36 UTC (rev 1215) +++ trunk/ClientCommand.cpp 2008-09-26 12:52:07 UTC (rev 1216) @@ -592,6 +592,7 @@ if (!GModules.size()) { PutStatus("No global modules loaded."); } else { + PutStatus("Global modules:"); CTable GTable; GTable.AddColumn("Name"); GTable.AddColumn("Description"); @@ -604,7 +605,6 @@ unsigned int uTableIdx = 0; CString sTmp; - while (GTable.GetLine(uTableIdx++, sTmp)) { PutStatus(sTmp); } @@ -616,24 +616,24 @@ if (!Modules.size()) { PutStatus("You have no modules loaded."); - return; - } + } else { + PutStatus("User modules:"); + CTable Table; + Table.AddColumn("Name"); + Table.AddColumn("Description"); - CTable Table; - Table.AddColumn("Name"); - Table.AddColumn("Description"); + for (unsigned int b = 0; b < Modules.size(); b++) { + Table.AddRow(); + Table.SetCell("Name", Modules[b]->GetModName()); + Table.SetCell("Description", Modules[b]->GetDescription().Ellipsize(128)); + } - for (unsigned int b = 0; b < Modules.size(); b++) { - Table.AddRow(); - Table.SetCell("Name", Modules[b]->GetModName()); - Table.SetCell("Description", Modules[b]->GetDescription().Ellipsize(128)); + unsigned int uTableIdx = 0; + CString sTmp; + while (Table.GetLine(uTableIdx++, sTmp)) { + PutStatus(sTmp); + } } - - unsigned int uTableIdx = 0; - CString sTmp; - while (Table.GetLine(uTableIdx++, sTmp)) { - PutStatus(sTmp); - } } #else PutStatus("Modules are not enabled."); @@ -653,6 +653,7 @@ if (!ssGlobalMods.size()) { PutStatus("No global modules available."); } else { + PutStatus("Global modules:"); CTable GTable; GTable.AddColumn("Name"); GTable.AddColumn("Description"); @@ -680,26 +681,26 @@ if (!ssUserMods.size()) { PutStatus("No user modules available."); - return; - } + } else { + PutStatus("User modules:"); + CTable Table; + Table.AddColumn("Name"); + Table.AddColumn("Description"); + set<CModInfo>::iterator it; - CTable Table; - Table.AddColumn("Name"); - Table.AddColumn("Description"); - set<CModInfo>::iterator it; + for (it = ssUserMods.begin(); it != ssUserMods.end(); it++) { + const CModInfo& Info = *it; + Table.AddRow(); + Table.SetCell("Name", (m_pUser->GetModules().FindModule(Info.GetName()) ? "*" : " ") + Info.GetName()); + Table.SetCell("Description", Info.GetDescription().Ellipsize(128)); + } - for (it = ssUserMods.begin(); it != ssUserMods.end(); it++) { - const CModInfo& Info = *it; - Table.AddRow(); - Table.SetCell("Name", (m_pUser->GetModules().FindModule(Info.GetName()) ? "*" : " ") + Info.GetName()); - Table.SetCell("Description", Info.GetDescription().Ellipsize(128)); + unsigned int uTableIdx = 0; + CString sTmp; + while (Table.GetLine(uTableIdx++, sTmp)) { + PutStatus(sTmp); + } } - - unsigned int uTableIdx = 0; - CString sTmp; - while (Table.GetLine(uTableIdx++, sTmp)) { - PutStatus(sTmp); - } } #else PutStatus("Modules are not enabled."); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <kr...@us...> - 2008-09-28 19:46:17
|
Revision: 1227 http://znc.svn.sourceforge.net/znc/?rev=1227&view=rev Author: kroimon Date: 2008-09-28 19:46:12 +0000 (Sun, 28 Sep 2008) Log Message: ----------- Removed redundant checks for m_pUser in CClient::UserCommand() One check in line 19 should be enough. See also rev 1220. Revision Links: -------------- http://znc.svn.sourceforge.net/znc/?rev=1220&view=rev Modified Paths: -------------- trunk/ClientCommand.cpp Modified: trunk/ClientCommand.cpp =================================================================== --- trunk/ClientCommand.cpp 2008-09-28 19:30:20 UTC (rev 1226) +++ trunk/ClientCommand.cpp 2008-09-28 19:46:12 UTC (rev 1227) @@ -49,7 +49,7 @@ } const map<CString,CNick*>& msNicks = pChan->GetNicks(); - CIRCSock* pIRCSock = (!m_pUser) ? NULL : m_pUser->GetIRCSock(); + CIRCSock* pIRCSock = m_pUser->GetIRCSock(); const CString& sPerms = (pIRCSock) ? pIRCSock->GetPerms() : ""; if (!msNicks.size()) { @@ -87,23 +87,21 @@ PutStatus(Table); } else if (sCommand.CaseCmp("DETACH") == 0) { - if (m_pUser) { - CString sChan = sLine.Token(1); + CString sChan = sLine.Token(1); - if (sChan.empty()) { - PutStatus("Usage: Detach <#chan>"); - return; - } + if (sChan.empty()) { + PutStatus("Usage: Detach <#chan>"); + return; + } - CChan* pChan = m_pUser->FindChan(sChan); - if (!pChan) { - PutStatus("You are not on [" + sChan + "]"); - return; - } - - PutStatus("Detaching you from [" + sChan + "]"); - pChan->DetachUser(); + CChan* pChan = m_pUser->FindChan(sChan); + if (!pChan) { + PutStatus("You are not on [" + sChan + "]"); + return; } + + PutStatus("Detaching you from [" + sChan + "]"); + pChan->DetachUser(); } else if (sCommand.CaseCmp("VERSION") == 0) { PutStatus(CZNC::GetTag()); } else if (sCommand.CaseCmp("MOTD") == 0 || sCommand.CaseCmp("ShowMOTD") == 0) { @@ -125,41 +123,39 @@ PutStatus("Error while trying to write config."); } } else if (sCommand.CaseCmp("LISTCLIENTS") == 0) { - if (m_pUser) { - CUser* pUser = m_pUser; - CString sNick = sLine.Token(1); + CUser* pUser = m_pUser; + CString sNick = sLine.Token(1); - if (!sNick.empty()) { - if (!m_pUser->IsAdmin()) { - PutStatus("Usage: ListClients"); - return; - } - - pUser = CZNC::Get().FindUser(sNick); - - if (!pUser) { - PutStatus("No such user [" + sNick + "]"); - return; - } + if (!sNick.empty()) { + if (!m_pUser->IsAdmin()) { + PutStatus("Usage: ListClients"); + return; } - vector<CClient*>& vClients = pUser->GetClients(); + pUser = CZNC::Get().FindUser(sNick); - if (vClients.empty()) { - PutStatus("No clients are connected"); + if (!pUser) { + PutStatus("No such user [" + sNick + "]"); return; } + } - CTable Table; - Table.AddColumn("Host"); + vector<CClient*>& vClients = pUser->GetClients(); - for (unsigned int a = 0; a < vClients.size(); a++) { - Table.AddRow(); - Table.SetCell("Host", vClients[a]->GetRemoteIP()); - } + if (vClients.empty()) { + PutStatus("No clients are connected"); + return; + } - PutStatus(Table); + CTable Table; + Table.AddColumn("Host"); + + for (unsigned int a = 0; a < vClients.size(); a++) { + Table.AddRow(); + Table.SetCell("Host", vClients[a]->GetRemoteIP()); } + + PutStatus(Table); } else if (m_pUser->IsAdmin() && sCommand.CaseCmp("LISTUSERS") == 0) { const map<CString, CUser*>& msUsers = CZNC::Get().GetUserMap(); CTable Table; @@ -228,43 +224,39 @@ throw CException(CException::EX_Restart); } else if (sCommand.CaseCmp("JUMP") == 0 || sCommand.CaseCmp("CONNECT") == 0) { - if (m_pUser) { - if (!m_pUser->HasServers()) { - PutStatus("You don't have any servers added."); - return; - } - - if (m_pIRCSock) { - m_pIRCSock->Quit(); - PutStatus("Jumping to the next server in the list..."); - } else { - PutStatus("Connecting..."); - } - - m_pUser->SetIRCConnectEnabled(true); - m_pUser->CheckIRCConnect(); + if (!m_pUser->HasServers()) { + PutStatus("You don't have any servers added."); return; } - } else if (sCommand.CaseCmp("DISCONNECT") == 0) { - if (m_pUser) { - // m_pIRCSock is only set after the low level connection - // to the IRC server was established. Before this we can - // only find the IRC socket by its name. - if (m_pIRCSock) { - m_pIRCSock->Quit(); - } else { - Csock* pIRCSock; - CString sSockName = "IRC::" + m_pUser->GetUserName(); - // This is *slow*, we try to avoid doing this - pIRCSock = CZNC::Get().GetManager().FindSockByName(sSockName); - if (pIRCSock) - pIRCSock->Close(); - } - m_pUser->SetIRCConnectEnabled(false); - PutStatus("Disconnected from IRC. Use 'connect' to reconnect."); - return; + if (m_pIRCSock) { + m_pIRCSock->Quit(); + PutStatus("Jumping to the next server in the list..."); + } else { + PutStatus("Connecting..."); } + + m_pUser->SetIRCConnectEnabled(true); + m_pUser->CheckIRCConnect(); + return; + } else if (sCommand.CaseCmp("DISCONNECT") == 0) { + // m_pIRCSock is only set after the low level connection + // to the IRC server was established. Before this we can + // only find the IRC socket by its name. + if (m_pIRCSock) { + m_pIRCSock->Quit(); + } else { + Csock* pIRCSock; + CString sSockName = "IRC::" + m_pUser->GetUserName(); + // This is *slow*, we try to avoid doing this + pIRCSock = CZNC::Get().GetManager().FindSockByName(sSockName); + if (pIRCSock) + pIRCSock->Close(); + } + + m_pUser->SetIRCConnectEnabled(false); + PutStatus("Disconnected from IRC. Use 'connect' to reconnect."); + return; } else if (sCommand.CaseCmp("ENABLECHAN") == 0) { CString sChan = sLine.Token(1, true); @@ -281,49 +273,47 @@ PutStatus("Channel [" + sChan + "] enabled."); } } else if (sCommand.CaseCmp("LISTCHANS") == 0) { - if (m_pUser) { - const vector<CChan*>& vChans = m_pUser->GetChans(); - CIRCSock* pIRCSock = (!m_pUser) ? NULL : m_pUser->GetIRCSock(); - const CString& sPerms = (pIRCSock) ? pIRCSock->GetPerms() : ""; + const vector<CChan*>& vChans = m_pUser->GetChans(); + CIRCSock* pIRCSock = (!m_pUser) ? NULL : m_pUser->GetIRCSock(); + const CString& sPerms = (pIRCSock) ? pIRCSock->GetPerms() : ""; - if (!vChans.size()) { - PutStatus("You have no channels defined"); - return; - } + if (!vChans.size()) { + PutStatus("You have no channels defined"); + return; + } - CTable Table; - Table.AddColumn("Name"); - Table.AddColumn("Status"); - Table.AddColumn("Conf"); - Table.AddColumn("Buf"); - Table.AddColumn("Modes"); - Table.AddColumn("Users"); + CTable Table; + Table.AddColumn("Name"); + Table.AddColumn("Status"); + Table.AddColumn("Conf"); + Table.AddColumn("Buf"); + Table.AddColumn("Modes"); + Table.AddColumn("Users"); - for (unsigned int p = 0; p < sPerms.size(); p++) { - CString sPerm; - sPerm += sPerms[p]; - Table.AddColumn(sPerm); - } + for (unsigned int p = 0; p < sPerms.size(); p++) { + CString sPerm; + sPerm += sPerms[p]; + Table.AddColumn(sPerm); + } - for (unsigned int a = 0; a < vChans.size(); a++) { - CChan* pChan = vChans[a]; - Table.AddRow(); - Table.SetCell("Name", pChan->GetPermStr() + pChan->GetName()); - Table.SetCell("Status", ((vChans[a]->IsOn()) ? ((vChans[a]->IsDetached()) ? "Detached" : "Joined") : ((vChans[a]->IsDisabled()) ? "Disabled" : "Trying"))); - Table.SetCell("Conf", CString((pChan->InConfig()) ? "yes" : "")); - Table.SetCell("Buf", CString((pChan->KeepBuffer()) ? "*" : "") + CString(pChan->GetBufferCount())); - Table.SetCell("Modes", pChan->GetModeString()); - Table.SetCell("Users", CString(pChan->GetNickCount())); + for (unsigned int a = 0; a < vChans.size(); a++) { + CChan* pChan = vChans[a]; + Table.AddRow(); + Table.SetCell("Name", pChan->GetPermStr() + pChan->GetName()); + Table.SetCell("Status", ((vChans[a]->IsOn()) ? ((vChans[a]->IsDetached()) ? "Detached" : "Joined") : ((vChans[a]->IsDisabled()) ? "Disabled" : "Trying"))); + Table.SetCell("Conf", CString((pChan->InConfig()) ? "yes" : "")); + Table.SetCell("Buf", CString((pChan->KeepBuffer()) ? "*" : "") + CString(pChan->GetBufferCount())); + Table.SetCell("Modes", pChan->GetModeString()); + Table.SetCell("Users", CString(pChan->GetNickCount())); - for (unsigned int b = 0; b < sPerms.size(); b++) { - CString sPerm; - sPerm += sPerms[b]; - Table.SetCell(sPerm, CString(pChan->GetPermCount(sPerms[b]))); - } + for (unsigned int b = 0; b < sPerms.size(); b++) { + CString sPerm; + sPerm += sPerms[b]; + Table.SetCell(sPerm, CString(pChan->GetPermCount(sPerms[b]))); } - - PutStatus(Table); } + + PutStatus(Table); } else if (sCommand.CaseCmp("ADDSERVER") == 0) { CString sServer = sLine.Token(1); @@ -337,7 +327,7 @@ return; } - if (m_pUser && m_pUser->AddServer(sLine.Token(1, true))) { + if (m_pUser->AddServer(sLine.Token(1, true))) { PutStatus("Server added"); } else { PutStatus("Unable to add that server"); @@ -357,53 +347,49 @@ return; } - if (m_pUser && m_pUser->DelServer(sServer)) { + if (m_pUser->DelServer(sServer)) { PutStatus("Server removed"); } else { PutStatus("No such server"); } } else if (sCommand.CaseCmp("LISTSERVERS") == 0) { - if (m_pUser) { - if (m_pUser->HasServers()) { - const vector<CServer*>& vServers = m_pUser->GetServers(); - CTable Table; - Table.AddColumn("Host"); - Table.AddColumn("Port"); - Table.AddColumn("SSL"); - Table.AddColumn("Pass"); - - for (unsigned int a = 0; a < vServers.size(); a++) { - CServer* pServer = vServers[a]; - Table.AddRow(); - Table.SetCell("Host", pServer->GetName()); - Table.SetCell("Port", CString(pServer->GetPort())); - Table.SetCell("SSL", (pServer->IsSSL()) ? "SSL" : ""); - Table.SetCell("Pass", pServer->GetPass()); - } - - PutStatus(Table); - } else { - PutStatus("You don't have any servers added."); - } - } - } else if (sCommand.CaseCmp("TOPICS") == 0) { - if (m_pUser) { - const vector<CChan*>& vChans = m_pUser->GetChans(); + if (m_pUser->HasServers()) { + const vector<CServer*>& vServers = m_pUser->GetServers(); CTable Table; - Table.AddColumn("Name"); - Table.AddColumn("Set By"); - Table.AddColumn("Topic"); + Table.AddColumn("Host"); + Table.AddColumn("Port"); + Table.AddColumn("SSL"); + Table.AddColumn("Pass"); - for (unsigned int a = 0; a < vChans.size(); a++) { - CChan* pChan = vChans[a]; + for (unsigned int a = 0; a < vServers.size(); a++) { + CServer* pServer = vServers[a]; Table.AddRow(); - Table.SetCell("Name", pChan->GetName()); - Table.SetCell("Set By", pChan->GetTopicOwner()); - Table.SetCell("Topic", pChan->GetTopic()); + Table.SetCell("Host", pServer->GetName()); + Table.SetCell("Port", CString(pServer->GetPort())); + Table.SetCell("SSL", (pServer->IsSSL()) ? "SSL" : ""); + Table.SetCell("Pass", pServer->GetPass()); } PutStatus(Table); + } else { + PutStatus("You don't have any servers added."); } + } else if (sCommand.CaseCmp("TOPICS") == 0) { + const vector<CChan*>& vChans = m_pUser->GetChans(); + CTable Table; + Table.AddColumn("Name"); + Table.AddColumn("Set By"); + Table.AddColumn("Topic"); + + for (unsigned int a = 0; a < vChans.size(); a++) { + CChan* pChan = vChans[a]; + Table.AddRow(); + Table.SetCell("Name", pChan->GetName()); + Table.SetCell("Set By", pChan->GetTopicOwner()); + Table.SetCell("Topic", pChan->GetTopic()); + } + + PutStatus(Table); } else if (sCommand.CaseCmp("SEND") == 0) { CString sToNick = sLine.Token(1); CString sFile = sLine.Token(2); @@ -422,9 +408,7 @@ return; } - if (m_pUser) { - m_pUser->SendFile(sToNick, sFile); - } + m_pUser->SendFile(sToNick, sFile); } else if (sCommand.CaseCmp("GET") == 0) { CString sFile = sLine.Token(1); CString sAllowedPath = m_pUser->GetDLPath(); @@ -442,9 +426,7 @@ return; } - if (m_pUser) { - m_pUser->SendFile(GetNick(), sFile); - } + m_pUser->SendFile(GetNick(), sFile); } else if (sCommand.CaseCmp("LISTDCCS") == 0) { CSockManager& Manager = CZNC::Get().GetManager(); @@ -560,25 +542,23 @@ } } - if (m_pUser) { - CModules& Modules = m_pUser->GetModules(); + CModules& Modules = m_pUser->GetModules(); - if (!Modules.size()) { - PutStatus("You have no modules loaded."); - } else { - PutStatus("User modules:"); - CTable Table; - Table.AddColumn("Name"); - Table.AddColumn("Description"); + if (!Modules.size()) { + PutStatus("You have no modules loaded."); + } else { + PutStatus("User modules:"); + CTable Table; + Table.AddColumn("Name"); + Table.AddColumn("Description"); - for (unsigned int b = 0; b < Modules.size(); b++) { - Table.AddRow(); - Table.SetCell("Name", Modules[b]->GetModName()); - Table.SetCell("Description", Modules[b]->GetDescription().Ellipsize(128)); - } - - PutStatus(Table); + for (unsigned int b = 0; b < Modules.size(); b++) { + Table.AddRow(); + Table.SetCell("Name", Modules[b]->GetModName()); + Table.SetCell("Description", Modules[b]->GetDescription().Ellipsize(128)); } + + PutStatus(Table); } #else PutStatus("Modules are not enabled."); @@ -615,28 +595,26 @@ } } - if (m_pUser) { - set<CModInfo> ssUserMods; - CZNC::Get().GetModules().GetAvailableMods(ssUserMods); + set<CModInfo> ssUserMods; + CZNC::Get().GetModules().GetAvailableMods(ssUserMods); - if (!ssUserMods.size()) { - PutStatus("No user modules available."); - } else { - PutStatus("User modules:"); - CTable Table; - Table.AddColumn("Name"); - Table.AddColumn("Description"); - set<CModInfo>::iterator it; + if (!ssUserMods.size()) { + PutStatus("No user modules available."); + } else { + PutStatus("User modules:"); + CTable Table; + Table.AddColumn("Name"); + Table.AddColumn("Description"); + set<CModInfo>::iterator it; - for (it = ssUserMods.begin(); it != ssUserMods.end(); it++) { - const CModInfo& Info = *it; - Table.AddRow(); - Table.SetCell("Name", (m_pUser->GetModules().FindModule(Info.GetName()) ? "*" : " ") + Info.GetName()); - Table.SetCell("Description", Info.GetDescription().Ellipsize(128)); - } - - PutStatus(Table); + for (it = ssUserMods.begin(); it != ssUserMods.end(); it++) { + const CModInfo& Info = *it; + Table.AddRow(); + Table.SetCell("Name", (m_pUser->GetModules().FindModule(Info.GetName()) ? "*" : " ") + Info.GetName()); + Table.SetCell("Description", Info.GetDescription().Ellipsize(128)); } + + PutStatus(Table); } #else PutStatus("Modules are not enabled."); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sil...@us...> - 2008-12-29 18:11:19
|
Revision: 1308 http://znc.svn.sourceforge.net/znc/?rev=1308&view=rev Author: silverleo Date: 2008-12-29 18:11:17 +0000 (Mon, 29 Dec 2008) Log Message: ----------- Append an * to the current server in *status listservers Modified Paths: -------------- trunk/ClientCommand.cpp Modified: trunk/ClientCommand.cpp =================================================================== --- trunk/ClientCommand.cpp 2008-12-29 09:32:36 UTC (rev 1307) +++ trunk/ClientCommand.cpp 2008-12-29 18:11:17 UTC (rev 1308) @@ -350,6 +350,7 @@ } else if (sCommand.Equals("LISTSERVERS")) { if (m_pUser->HasServers()) { const vector<CServer*>& vServers = m_pUser->GetServers(); + CServer* pCurServ = m_pUser->GetCurrentServer(); CTable Table; Table.AddColumn("Host"); Table.AddColumn("Port"); @@ -359,7 +360,7 @@ for (unsigned int a = 0; a < vServers.size(); a++) { CServer* pServer = vServers[a]; Table.AddRow(); - Table.SetCell("Host", pServer->GetName()); + Table.SetCell("Host", pServer->GetName() + (pServer == pCurServ ? "*" : "")); Table.SetCell("Port", CString(pServer->GetPort())); Table.SetCell("SSL", (pServer->IsSSL()) ? "SSL" : ""); Table.SetCell("Pass", pServer->GetPass()); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sil...@us...> - 2008-12-29 18:46:43
|
Revision: 1310 http://znc.svn.sourceforge.net/znc/?rev=1310&view=rev Author: silverleo Date: 2008-12-29 18:46:39 +0000 (Mon, 29 Dec 2008) Log Message: ----------- Show arguments used to load the module instead of the description in listmods. Modified Paths: -------------- trunk/ClientCommand.cpp Modified: trunk/ClientCommand.cpp =================================================================== --- trunk/ClientCommand.cpp 2008-12-29 18:43:47 UTC (rev 1309) +++ trunk/ClientCommand.cpp 2008-12-29 18:46:39 UTC (rev 1310) @@ -526,12 +526,12 @@ PutStatus("Global modules:"); CTable GTable; GTable.AddColumn("Name"); - GTable.AddColumn("Description"); + GTable.AddColumn("Arguments"); for (unsigned int b = 0; b < GModules.size(); b++) { GTable.AddRow(); GTable.SetCell("Name", GModules[b]->GetModName()); - GTable.SetCell("Description", GModules[b]->GetDescription().Ellipsize(128)); + GTable.SetCell("Arguments", GModules[b]->GetArgs()); } PutStatus(GTable); @@ -546,12 +546,12 @@ PutStatus("User modules:"); CTable Table; Table.AddColumn("Name"); - Table.AddColumn("Description"); + Table.AddColumn("Arguments"); for (unsigned int b = 0; b < Modules.size(); b++) { Table.AddRow(); Table.SetCell("Name", Modules[b]->GetModName()); - Table.SetCell("Description", Modules[b]->GetDescription().Ellipsize(128)); + Table.SetCell("Arguments", Modules[b]->GetArgs()); } PutStatus(Table); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ps...@us...> - 2009-01-07 17:38:54
|
Revision: 1323 http://znc.svn.sourceforge.net/znc/?rev=1323&view=rev Author: psychon Date: 2009-01-07 17:38:49 +0000 (Wed, 07 Jan 2009) Log Message: ----------- Always allow /msg *status setbuffer <chan>, even if we are not in <chan> Modified Paths: -------------- trunk/ClientCommand.cpp Modified: trunk/ClientCommand.cpp =================================================================== --- trunk/ClientCommand.cpp 2009-01-06 09:43:18 UTC (rev 1322) +++ trunk/ClientCommand.cpp 2009-01-07 17:38:49 UTC (rev 1323) @@ -896,10 +896,6 @@ return; } - if (!pChan->IsOn()) { - PutStatus("You are not on [" + sChan + "] [trying]"); - return; - } unsigned int uLineCount = sLine.Token(2).ToUInt(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ps...@us...> - 2009-03-09 17:42:16
|
Revision: 1419 http://znc.svn.sourceforge.net/znc/?rev=1419&view=rev Author: psychon Date: 2009-03-09 17:42:12 +0000 (Mon, 09 Mar 2009) Log Message: ----------- Meh. Today is not a good day -.- Modified Paths: -------------- trunk/ClientCommand.cpp Modified: trunk/ClientCommand.cpp =================================================================== --- trunk/ClientCommand.cpp 2009-03-09 17:37:35 UTC (rev 1418) +++ trunk/ClientCommand.cpp 2009-03-09 17:42:12 UTC (rev 1419) @@ -746,7 +746,7 @@ PutStatus("Unable to unload [" + sMod + "] Modules are not enabled."); #endif return; - } else if ((sCommand.Equals("UPDATEMOD") || sCommand.Equals("UPDATEMODULE")) && pUser->IsAdmin() ) { + } else if ((sCommand.Equals("UPDATEMOD") || sCommand.Equals("UPDATEMODULE")) && m_pUser->IsAdmin() ) { #ifndef _MODULES PutStatus("Modules are not enabled."); #else This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ps...@us...> - 2009-03-15 07:44:14
|
Revision: 1429 http://znc.svn.sourceforge.net/znc/?rev=1429&view=rev Author: psychon Date: 2009-03-15 07:44:07 +0000 (Sun, 15 Mar 2009) Log Message: ----------- Remove a pretty much useless usleep() on shutdown Modified Paths: -------------- trunk/ClientCommand.cpp Modified: trunk/ClientCommand.cpp =================================================================== --- trunk/ClientCommand.cpp 2009-03-14 18:17:42 UTC (rev 1428) +++ trunk/ClientCommand.cpp 2009-03-15 07:44:07 UTC (rev 1429) @@ -210,8 +210,6 @@ } CZNC::Get().Broadcast(sMessage); - usleep(100000); // Sleep for 10ms to attempt to allow the previous Broadcast() to go through to all users - throw CException(CException::EX_Shutdown); } else if (m_pUser->IsAdmin() && sCommand.Equals("RESTART")) { CString sMessage = sLine.Token(1, true); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <pr...@us...> - 2009-04-22 05:10:43
|
Revision: 1493 http://znc.svn.sourceforge.net/znc/?rev=1493&view=rev Author: prozacx Date: 2009-04-22 05:10:36 +0000 (Wed, 22 Apr 2009) Log Message: ----------- Removed repeat sentence since sModRet already says it was unable to load Modified Paths: -------------- trunk/ClientCommand.cpp Modified: trunk/ClientCommand.cpp =================================================================== --- trunk/ClientCommand.cpp 2009-04-19 22:37:06 UTC (rev 1492) +++ trunk/ClientCommand.cpp 2009-04-22 05:10:36 UTC (rev 1493) @@ -652,8 +652,9 @@ } else { b = m_pUser->GetModules().LoadModule(sMod, sArgs, m_pUser, sModRet); } + if (!b) { - PutStatus("Unable to load module [" + sMod + "] [" + sModRet + "]"); + PutStatus(sModRet); return; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <pr...@us...> - 2009-05-10 09:50:45
|
Revision: 1505 http://znc.svn.sourceforge.net/znc/?rev=1505&view=rev Author: prozacx Date: 2009-05-10 09:50:37 +0000 (Sun, 10 May 2009) Log Message: ----------- Auto-detect globalness in the re/un/loadmod commands using GetModInfo() Modified Paths: -------------- trunk/ClientCommand.cpp Modified: trunk/ClientCommand.cpp =================================================================== --- trunk/ClientCommand.cpp 2009-05-04 19:21:26 UTC (rev 1504) +++ trunk/ClientCommand.cpp 2009-05-10 09:50:37 UTC (rev 1505) @@ -539,7 +539,7 @@ CModules& Modules = m_pUser->GetModules(); if (!Modules.size()) { - PutStatus("You have no modules loaded."); + PutStatus("Your user has no modules loaded."); } else { PutStatus("User modules:"); CTable Table; @@ -617,33 +617,34 @@ } else if (sCommand.Equals("LOADMOD") || sCommand.Equals("LOADMODULE")) { CString sMod; CString sArgs; - bool bGlobal = false; - if (sLine.Token(1).Equals("-global")) { - sMod = sLine.Token(2); + sMod = sLine.Token(1); + sArgs = sLine.Token(2, true); - if (!m_pUser->IsAdmin()) { - PutStatus("Unable to load global module [" + sMod + "] Access Denied."); - return; - } - - sArgs = sLine.Token(3, true); - bGlobal = true; - } else { - sMod = sLine.Token(1); - sArgs = sLine.Token(2, true); - } - if (m_pUser->DenyLoadMod()) { PutStatus("Unable to load [" + sMod + "] Access Denied."); return; } -#ifdef _MODULES + if (sMod.empty()) { - PutStatus("Usage: LoadMod [-global] <module> [args]"); + PutStatus("Usage: LoadMod <module> [args]"); return; } +#ifdef _MODULES + CModInfo ModInfo; + if (!CZNC::Get().GetModules().GetModInfo(ModInfo, sMod)) { + PutStatus("Unable to find modinfo [" + sMod + "]"); + return; + } + + bool bGlobal = ModInfo.IsGlobal(); + + if (bGlobal && !m_pUser->IsAdmin()) { + PutStatus("Unable to load global module [" + sMod + "] Access Denied."); + return; + } + CString sModRet; bool b; @@ -665,27 +666,28 @@ return; } else if (sCommand.Equals("UNLOADMOD") || sCommand.Equals("UNLOADMODULE")) { CString sMod; - bool bGlobal = false; + sMod = sLine.Token(1); - if (sLine.Token(1).Equals("-global")) { - sMod = sLine.Token(2); - - if (!m_pUser->IsAdmin()) { - PutStatus("Unable to unload global module [" + sMod + "] Access Denied."); - return; - } - - bGlobal = true; - } else - sMod = sLine.Token(1); - if (m_pUser->DenyLoadMod()) { PutStatus("Unable to unload [" + sMod + "] Access Denied."); return; } #ifdef _MODULES + CModInfo ModInfo; + if (!CZNC::Get().GetModules().GetModInfo(ModInfo, sMod)) { + PutStatus("Unable to find modinfo for [" + sMod + "]"); + return; + } + + bool bGlobal = ModInfo.IsGlobal(); + + if (bGlobal && !m_pUser->IsAdmin()) { + PutStatus("Unable to unload global module [" + sMod + "] Access Denied."); + return; + } + if (sMod.empty()) { - PutStatus("Usage: UnloadMod [-global] <module>"); + PutStatus("Usage: UnloadMod <module>"); return; } @@ -705,30 +707,30 @@ } else if (sCommand.Equals("RELOADMOD") || sCommand.Equals("RELOADMODULE")) { CString sMod; CString sArgs; - bool bGlobal = false; - if (sLine.Token(1).Equals("-global")) { - sMod = sLine.Token(2); + sMod = sLine.Token(1); + sArgs = sLine.Token(2, true); - if (!m_pUser->IsAdmin()) { - PutStatus("Unable to reload global module [" + sMod + "] Access Denied."); - return; - } - - sArgs = sLine.Token(3, true); - bGlobal = true; - } else { - sMod = sLine.Token(1); - sArgs = sLine.Token(2, true); - } - if (m_pUser->DenyLoadMod()) { PutStatus("Unable to reload [" + sMod + "] Access Denied."); return; } #ifdef _MODULES + CModInfo ModInfo; + if (!CZNC::Get().GetModules().GetModInfo(ModInfo, sMod)) { + PutStatus("Unable to find modinfo for [" + sMod + "]"); + return; + } + + bool bGlobal = ModInfo.IsGlobal(); + + if (bGlobal && !m_pUser->IsAdmin()) { + PutStatus("Unable to reload global module [" + sMod + "] Access Denied."); + return; + } + if (sMod.empty()) { - PutStatus("Usage: ReloadMod [-global] <module> [args]"); + PutStatus("Usage: ReloadMod <module> [args]"); return; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ps...@us...> - 2009-05-27 13:29:02
|
Revision: 1526 http://znc.svn.sourceforge.net/znc/?rev=1526&view=rev Author: psychon Date: 2009-05-27 13:28:58 +0000 (Wed, 27 May 2009) Log Message: ----------- Let everyone use /msg *status uptime, not only admins Modified Paths: -------------- trunk/ClientCommand.cpp Modified: trunk/ClientCommand.cpp =================================================================== --- trunk/ClientCommand.cpp 2009-05-27 11:24:26 UTC (rev 1525) +++ trunk/ClientCommand.cpp 2009-05-27 13:28:58 UTC (rev 1526) @@ -965,7 +965,7 @@ Table.SetCell("Total", CString::ToByteStr(Total.first + Total.second)); PutStatus(Table); - } else if (m_pUser->IsAdmin() && sCommand.Equals("UPTIME")) { + } else if (sCommand.Equals("UPTIME")) { PutStatus("Running for " + CZNC::Get().GetUptime()); } else { PutStatus("Unknown command [" + sCommand + "] try 'Help'"); @@ -1119,6 +1119,11 @@ Table.SetCell("Arguments", "<file>"); Table.SetCell("Description", "Send a shell file to yourself"); + Table.AddRow(); + Table.SetCell("Command", "Uptime"); + Table.SetCell("Arguments", ""); + Table.SetCell("Description", "Show how long ZNC is already running"); + if (!m_pUser->DenyLoadMod()) { Table.AddRow(); Table.SetCell("Command", "LoadMod"); @@ -1190,11 +1195,6 @@ Table.SetCell("Description", "Show basic traffic stats for all znc users"); Table.AddRow(); - Table.SetCell("Command", "Uptime"); - Table.SetCell("Arguments", ""); - Table.SetCell("Description", "Show how long ZNC is already running"); - - Table.AddRow(); Table.SetCell("Command", "Broadcast"); Table.SetCell("Arguments", "[message]"); Table.SetCell("Description", "Broadcast a message to all users"); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ps...@us...> - 2009-08-10 19:17:44
|
Revision: 1597 http://znc.svn.sourceforge.net/znc/?rev=1597&view=rev Author: psychon Date: 2009-08-10 19:17:33 +0000 (Mon, 10 Aug 2009) Log Message: ----------- Fix unloading of /bin/rm'd modules The old code first tried to dlopen() the module again to find out if it's a global or a user module. This could have lots of weird effects. Now we just unload the user module and if that fails retry with the global module (if the user got the appropriate privileges). This removes and fixes the #warning added in the last commit. P.S.: Oh and this is less LOCs now! Modified Paths: -------------- trunk/ClientCommand.cpp Modified: trunk/ClientCommand.cpp =================================================================== --- trunk/ClientCommand.cpp 2009-08-10 18:58:55 UTC (rev 1596) +++ trunk/ClientCommand.cpp 2009-08-10 19:17:33 UTC (rev 1597) @@ -676,32 +676,19 @@ return; } #ifdef _MODULES - CModInfo ModInfo; - CString sRetMsg; -#warning If a module is removed while it is loaded, one can no longer unload it? - if (!CZNC::Get().GetModules().GetModInfo(ModInfo, sMod, sRetMsg)) { - PutStatus("Unable to find modinfo for [" + sMod + "]"); - return; - } - - bool bGlobal = ModInfo.IsGlobal(); - - if (bGlobal && !m_pUser->IsAdmin()) { - PutStatus("Unable to unload global module [" + sMod + "] Access Denied."); - return; - } - if (sMod.empty()) { PutStatus("Usage: UnloadMod <module>"); return; } CString sModRet; + bool b; - if (bGlobal) { - CZNC::Get().GetModules().UnloadModule(sMod, sModRet); - } else { - m_pUser->GetModules().UnloadModule(sMod, sModRet); + // First, try to unload the user module + b = m_pUser->GetModules().UnloadModule(sMod, sModRet); + if (!b && m_pUser->IsAdmin()) { + // If that failed and the user is an admin, try to unload a global module + b = CZNC::Get().GetModules().UnloadModule(sMod, sModRet); } PutStatus(sModRet); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ps...@us...> - 2009-10-04 17:15:23
|
Revision: 1641 http://znc.svn.sourceforge.net/znc/?rev=1641&view=rev Author: psychon Date: 2009-10-04 17:15:05 +0000 (Sun, 04 Oct 2009) Log Message: ----------- Write the config file on restart and shutdown ZNC now writes its config file just before it shuts down. If this fails it aborts the shutdown. One can then either fix whatever went wrong or force a shutdown. This also cleans the code up a little by unifying shutdown and restart. Patch by flakes, thanks! Modified Paths: -------------- trunk/ClientCommand.cpp Modified: trunk/ClientCommand.cpp =================================================================== --- trunk/ClientCommand.cpp 2009-09-26 18:41:24 UTC (rev 1640) +++ trunk/ClientCommand.cpp 2009-10-04 17:15:05 UTC (rev 1641) @@ -204,24 +204,27 @@ PutStatus("Cleared MOTD"); } else if (m_pUser->IsAdmin() && sCommand.Equals("BROADCAST")) { CZNC::Get().Broadcast(sLine.Token(1, true)); - } else if (m_pUser->IsAdmin() && sCommand.Equals("SHUTDOWN")) { + } else if (m_pUser->IsAdmin() && (sCommand.Equals("SHUTDOWN") || sCommand.Equals("RESTART"))) { + bool bRestart = sCommand.Equals("RESTART"); CString sMessage = sLine.Token(1, true); + bool bForce = false; - if (sMessage.empty()) { - sMessage = "ZNC is being shutdown NOW!!"; + if (sMessage.Token(0).Equals("FORCE")) { + bForce = true; + sMessage = sMessage.Token(1, true); } - CZNC::Get().Broadcast(sMessage); - throw CException(CException::EX_Shutdown); - } else if (m_pUser->IsAdmin() && sCommand.Equals("RESTART")) { - CString sMessage = sLine.Token(1, true); - if (sMessage.empty()) { - sMessage = "ZNC is being restarted NOW!!"; + sMessage = (bRestart ? "ZNC is being restarted NOW!" : "ZNC is being shut down NOW!"); } - CZNC::Get().Broadcast(sMessage); - throw CException(CException::EX_Restart); + if(!CZNC::Get().WriteConfig() && !bForce) { + PutStatus("ERROR: Writing config file to disk failed! Aborting. Use " + + sCommand.AsUpper() + " FORCE to ignore."); + } else { + CZNC::Get().Broadcast(sMessage); + throw CException(bRestart ? CException::EX_Restart : CException::EX_Shutdown); + } } else if (sCommand.Equals("JUMP") || sCommand.Equals("CONNECT")) { if (!m_pUser->HasServers()) { PutStatus("You don't have any servers added."); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cf...@us...> - 2010-02-02 17:36:25
|
Revision: 1729 http://znc.svn.sourceforge.net/znc/?rev=1729&view=rev Author: cflakes Date: 2010-02-02 17:36:18 +0000 (Tue, 02 Feb 2010) Log Message: ----------- Added a summary line to LISTCHANS output. Suggested by bigpresh, basic patch by Efreak. Thanks! Modified Paths: -------------- trunk/ClientCommand.cpp Modified: trunk/ClientCommand.cpp =================================================================== --- trunk/ClientCommand.cpp 2010-02-01 19:46:26 UTC (rev 1728) +++ trunk/ClientCommand.cpp 2010-02-02 17:36:18 UTC (rev 1729) @@ -298,8 +298,11 @@ Table.AddColumn(sPerm); } + unsigned int uNumDetached = 0, uNumDisabled = 0, + uNumJoined = 0; + for (unsigned int a = 0; a < vChans.size(); a++) { - CChan* pChan = vChans[a]; + const CChan* pChan = vChans[a]; Table.AddRow(); Table.SetCell("Name", pChan->GetPermStr() + pChan->GetName()); Table.SetCell("Status", ((vChans[a]->IsOn()) ? ((vChans[a]->IsDetached()) ? "Detached" : "Joined") : ((vChans[a]->IsDisabled()) ? "Disabled" : "Trying"))); @@ -313,9 +316,15 @@ char cPerm = sPerms[b]; Table.SetCell(CString(cPerm), CString(mPerms[cPerm])); } + + if(pChan->IsDetached()) uNumDetached++; + if(pChan->IsOn()) uNumJoined++; + if(pChan->IsDisabled()) uNumDisabled++; } PutStatus(Table); + PutStatus("Total: " + CString(vChans.size()) + " - Joined: " + CString(uNumJoined) + + " - Detached: " + CString(uNumDetached) + " - Disabled: " + CString(uNumDisabled)); } else if (sCommand.Equals("ADDSERVER")) { CString sServer = sLine.Token(1); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cf...@us...> - 2010-02-08 22:55:33
|
Revision: 1749 http://znc.svn.sourceforge.net/znc/?rev=1749&view=rev Author: cflakes Date: 2010-02-08 22:55:26 +0000 (Mon, 08 Feb 2010) Log Message: ----------- Reloadmod command: Moved check for empty module name argument to a place where it actually works. Modified Paths: -------------- trunk/ClientCommand.cpp Modified: trunk/ClientCommand.cpp =================================================================== --- trunk/ClientCommand.cpp 2010-02-08 13:49:44 UTC (rev 1748) +++ trunk/ClientCommand.cpp 2010-02-08 22:55:26 UTC (rev 1749) @@ -716,9 +716,15 @@ sArgs = sLine.Token(2, true); if (m_pUser->DenyLoadMod()) { - PutStatus("Unable to reload [" + sMod + "] Access Denied."); + PutStatus("Unable to reload modules. Access Denied."); return; } + + if (sMod.empty()) { + PutStatus("Usage: ReloadMod <module> [args]"); + return; + } + #ifdef _MODULES CModInfo ModInfo; CString sRetMsg; @@ -734,11 +740,6 @@ return; } - if (sMod.empty()) { - PutStatus("Usage: ReloadMod <module> [args]"); - return; - } - CString sModRet; if (bGlobal) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cf...@us...> - 2010-02-18 13:42:38
|
Revision: 1769 http://znc.svn.sourceforge.net/znc/?rev=1769&view=rev Author: cflakes Date: 2010-02-18 13:42:32 +0000 (Thu, 18 Feb 2010) Log Message: ----------- Added a "number of channels" column to the LISTUSERS output. The number also includes disabled channels. Modified Paths: -------------- trunk/ClientCommand.cpp Modified: trunk/ClientCommand.cpp =================================================================== --- trunk/ClientCommand.cpp 2010-02-18 13:25:35 UTC (rev 1768) +++ trunk/ClientCommand.cpp 2010-02-18 13:42:32 UTC (rev 1769) @@ -166,6 +166,7 @@ Table.AddColumn("OnIRC"); Table.AddColumn("IRC Server"); Table.AddColumn("IRC User"); + Table.AddColumn("Channels"); for (map<CString, CUser*>::const_iterator it = msUsers.begin(); it != msUsers.end(); it++) { Table.AddRow(); @@ -177,6 +178,7 @@ Table.SetCell("OnIRC", "Yes"); Table.SetCell("IRC Server", it->second->GetIRCServer()); Table.SetCell("IRC User", it->second->GetIRCNick().GetNickMask()); + Table.SetCell("Channels", CString(it->second->GetChans().size())); } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cf...@us...> - 2010-02-18 13:50:59
|
Revision: 1770 http://znc.svn.sourceforge.net/znc/?rev=1770&view=rev Author: cflakes Date: 2010-02-18 13:50:48 +0000 (Thu, 18 Feb 2010) Log Message: ----------- Added an optional [User] argument to /znc ListChans for admin users. Modified Paths: -------------- trunk/ClientCommand.cpp Modified: trunk/ClientCommand.cpp =================================================================== --- trunk/ClientCommand.cpp 2010-02-18 13:42:32 UTC (rev 1769) +++ trunk/ClientCommand.cpp 2010-02-18 13:50:48 UTC (rev 1770) @@ -277,12 +277,29 @@ PutStatus("Channel [" + sChan + "] enabled."); } } else if (sCommand.Equals("LISTCHANS")) { - const vector<CChan*>& vChans = m_pUser->GetChans(); - CIRCSock* pIRCSock = (!m_pUser) ? NULL : m_pUser->GetIRCSock(); + CUser* pUser = m_pUser; + const CString sNick = sLine.Token(1); + + if (!sNick.empty()) { + if (!m_pUser->IsAdmin()) { + PutStatus("Usage: ListChans"); + return; + } + + pUser = CZNC::Get().FindUser(sNick); + + if (!pUser) { + PutStatus("No such user [" + sNick + "]"); + return; + } + } + + const vector<CChan*>& vChans = pUser->GetChans(); + CIRCSock* pIRCSock = pUser->GetIRCSock(); const CString& sPerms = (pIRCSock) ? pIRCSock->GetPerms() : ""; if (!vChans.size()) { - PutStatus("You have no channels defined"); + PutStatus("There are no channels defined."); return; } @@ -1006,17 +1023,19 @@ Table.SetCell("Arguments", ""); Table.SetCell("Description", "List all available modules"); - Table.AddRow(); - Table.SetCell("Command", "ListChans"); - Table.SetCell("Arguments", ""); - Table.SetCell("Description", "List all channels"); + if (!m_pUser->IsAdmin()) { // If they are an admin we will add this command below with an argument + Table.AddRow(); + Table.SetCell("Command", "ListChans"); + Table.SetCell("Arguments", ""); + Table.SetCell("Description", "List all channels"); + } Table.AddRow(); Table.SetCell("Command", "ListNicks"); Table.SetCell("Arguments", "<#chan>"); Table.SetCell("Description", "List all nicks on a channel"); - if (!m_pUser->IsAdmin()) { // If they are an admin we will add this command below with an argument + if (!m_pUser->IsAdmin()) { Table.AddRow(); Table.SetCell("Command", "ListClients"); Table.SetCell("Arguments", ""); @@ -1193,6 +1212,11 @@ Table.SetCell("Description", "List all users/clients connected to znc"); Table.AddRow(); + Table.SetCell("Command", "ListChans"); + Table.SetCell("Arguments", "[User]"); + Table.SetCell("Description", "List all channels"); + + Table.AddRow(); Table.SetCell("Command", "ListClients"); Table.SetCell("Arguments", "[User]"); Table.SetCell("Description", "List all clients connected to your znc user"); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cf...@us...> - 2010-02-18 14:03:13
|
Revision: 1771 http://znc.svn.sourceforge.net/znc/?rev=1771&view=rev Author: cflakes Date: 2010-02-18 14:03:07 +0000 (Thu, 18 Feb 2010) Log Message: ----------- Cleanup for "/znc help". Modified Paths: -------------- trunk/ClientCommand.cpp Modified: trunk/ClientCommand.cpp =================================================================== --- trunk/ClientCommand.cpp 2010-02-18 13:50:48 UTC (rev 1770) +++ trunk/ClientCommand.cpp 2010-02-18 14:03:07 UTC (rev 1771) @@ -1005,28 +1005,23 @@ Table.AddRow(); Table.SetCell("Command", "Version"); - Table.SetCell("Arguments", ""); - Table.SetCell("Description", "Prints which version of znc this is"); + Table.SetCell("Description", "Print which version of ZNC this is"); Table.AddRow(); Table.SetCell("Command", "ListDCCs"); - Table.SetCell("Arguments", ""); Table.SetCell("Description", "List all active DCCs"); Table.AddRow(); Table.SetCell("Command", "ListMods"); - Table.SetCell("Arguments", ""); Table.SetCell("Description", "List all loaded modules"); Table.AddRow(); Table.SetCell("Command", "ListAvailMods"); - Table.SetCell("Arguments", ""); Table.SetCell("Description", "List all available modules"); if (!m_pUser->IsAdmin()) { // If they are an admin we will add this command below with an argument Table.AddRow(); Table.SetCell("Command", "ListChans"); - Table.SetCell("Arguments", ""); Table.SetCell("Description", "List all channels"); } @@ -1038,13 +1033,11 @@ if (!m_pUser->IsAdmin()) { Table.AddRow(); Table.SetCell("Command", "ListClients"); - Table.SetCell("Arguments", ""); - Table.SetCell("Description", "List all clients connected to your znc user"); + Table.SetCell("Description", "List all clients connected to your ZNC user"); } Table.AddRow(); Table.SetCell("Command", "ListServers"); - Table.SetCell("Arguments", ""); Table.SetCell("Description", "List all servers"); Table.AddRow(); @@ -1069,8 +1062,7 @@ Table.AddRow(); Table.SetCell("Command", "Topics"); - Table.SetCell("Arguments", ""); - Table.SetCell("Description", "Show topics in all channels"); + Table.SetCell("Description", "Show topics in all your channels"); Table.AddRow(); Table.SetCell("Command", "PlayBuffer"); @@ -1084,7 +1076,6 @@ Table.AddRow(); Table.SetCell("Command", "ClearAllChannelBuffers"); - Table.SetCell("Arguments", ""); Table.SetCell("Description", "Clear the channel buffers"); Table.AddRow(); @@ -1107,33 +1098,28 @@ if (m_pUser->IsAdmin() || !m_pUser->DenySetVHost()) { Table.AddRow(); Table.SetCell("Command", "ListVHosts"); - Table.SetCell("Arguments", ""); Table.SetCell("Description", "Shows the configured list of vhosts"); Table.AddRow(); Table.SetCell("Command", "SetVHost"); - Table.SetCell("Arguments", "<vhost (ip preferred)>"); + Table.SetCell("Arguments", "<vhost (IP preferred)>"); Table.SetCell("Description", "Set the VHost for this connection"); Table.AddRow(); Table.SetCell("Command", "ClearVHost"); - Table.SetCell("Arguments", ""); Table.SetCell("Description", "Clear the VHost for this connection"); } Table.AddRow(); Table.SetCell("Command", "Jump"); - Table.SetCell("Arguments", ""); Table.SetCell("Description", "Jump to the next server in the list"); Table.AddRow(); Table.SetCell("Command", "Disconnect"); - Table.SetCell("Arguments", ""); Table.SetCell("Description", "Disconnect from IRC"); Table.AddRow(); Table.SetCell("Command", "Connect"); - Table.SetCell("Arguments", ""); Table.SetCell("Description", "Reconnect to IRC"); Table.AddRow(); @@ -1148,8 +1134,7 @@ Table.AddRow(); Table.SetCell("Command", "Uptime"); - Table.SetCell("Arguments", ""); - Table.SetCell("Description", "Show how long ZNC is already running"); + Table.SetCell("Description", "Show for how long ZNC has been running"); if (!m_pUser->DenyLoadMod()) { Table.AddRow(); @@ -1177,39 +1162,34 @@ Table.AddRow(); Table.SetCell("Command", "ShowMOTD"); - Table.SetCell("Arguments", ""); - Table.SetCell("Description", "Show the message of the day"); + Table.SetCell("Description", "Show ZNC's message of the day"); if (m_pUser->IsAdmin()) { Table.AddRow(); Table.SetCell("Command", "SetMOTD"); Table.SetCell("Arguments", "<Message>"); - Table.SetCell("Description", "Set the message of the day"); + Table.SetCell("Description", "Set ZNC's message of the day"); Table.AddRow(); Table.SetCell("Command", "AddMOTD"); Table.SetCell("Arguments", "<Message>"); - Table.SetCell("Description", "Append <Message> to MOTD"); + Table.SetCell("Description", "Append <Message> to ZNC's MOTD"); Table.AddRow(); Table.SetCell("Command", "ClearMOTD"); - Table.SetCell("Arguments", ""); - Table.SetCell("Description", "Clear the MOTD"); + Table.SetCell("Description", "Clear ZNC's MOTD"); Table.AddRow(); Table.SetCell("Command", "Rehash"); - Table.SetCell("Arguments", ""); Table.SetCell("Description", "Reload znc.conf from disk"); Table.AddRow(); Table.SetCell("Command", "SaveConfig"); - Table.SetCell("Arguments", ""); Table.SetCell("Description", "Save the current settings to disk"); Table.AddRow(); Table.SetCell("Command", "ListUsers"); - Table.SetCell("Arguments", ""); - Table.SetCell("Description", "List all users/clients connected to znc"); + Table.SetCell("Description", "List all ZNC users and their connection status"); Table.AddRow(); Table.SetCell("Command", "ListChans"); @@ -1219,27 +1199,26 @@ Table.AddRow(); Table.SetCell("Command", "ListClients"); Table.SetCell("Arguments", "[User]"); - Table.SetCell("Description", "List all clients connected to your znc user"); + Table.SetCell("Description", "List all connected clients"); Table.AddRow(); Table.SetCell("Command", "Traffic"); - Table.SetCell("Arguments", ""); - Table.SetCell("Description", "Show basic traffic stats for all znc users"); + Table.SetCell("Description", "Show basic traffic stats for all ZNC users"); Table.AddRow(); Table.SetCell("Command", "Broadcast"); Table.SetCell("Arguments", "[message]"); - Table.SetCell("Description", "Broadcast a message to all users"); + Table.SetCell("Description", "Broadcast a message to all ZNC users"); Table.AddRow(); Table.SetCell("Command", "Shutdown"); Table.SetCell("Arguments", "[message]"); - Table.SetCell("Description", "Shutdown znc completely"); + Table.SetCell("Description", "Shut down ZNC completely"); Table.AddRow(); Table.SetCell("Command", "Restart"); Table.SetCell("Arguments", "[message]"); - Table.SetCell("Description", "Restarts znc"); + Table.SetCell("Description", "Restart ZNC"); } PutStatus(Table); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cf...@us...> - 2010-02-18 14:15:46
|
Revision: 1772 http://znc.svn.sourceforge.net/znc/?rev=1772&view=rev Author: cflakes Date: 2010-02-18 14:15:39 +0000 (Thu, 18 Feb 2010) Log Message: ----------- Added a missing error message to UpdateMod plus cleaned up two more lines of /znc help. Modified Paths: -------------- trunk/ClientCommand.cpp Modified: trunk/ClientCommand.cpp =================================================================== --- trunk/ClientCommand.cpp 2010-02-18 14:03:07 UTC (rev 1771) +++ trunk/ClientCommand.cpp 2010-02-18 14:15:39 UTC (rev 1772) @@ -778,6 +778,11 @@ #else CString sMod = sLine.Token(1); + if (sMod.empty()) { + PutStatus("Usage: UpdateMod <module>"); + return; + } + if (m_pUser->DenyLoadMod() || !m_pUser->IsAdmin()) { PutStatus("Unable to reload [" + sMod + "] Access Denied."); return; @@ -1047,7 +1052,7 @@ Table.AddRow(); Table.SetCell("Command", "RemServer"); - Table.SetCell("Arguments", "<host>"); + Table.SetCell("Arguments", "<host> [port] [pass]"); Table.SetCell("Description", "Remove a server from the list"); Table.AddRow(); @@ -1086,7 +1091,7 @@ if (m_pUser->IsAdmin()) { Table.AddRow(); Table.SetCell("Command", "AddVHost"); - Table.SetCell("Arguments", "<vhost (ip preferred)>"); + Table.SetCell("Arguments", "<vhost (IP preferred)>"); Table.SetCell("Description", "Adds a VHost for normal users to use"); Table.AddRow(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ps...@us...> - 2010-04-08 16:05:02
|
Revision: 1899 http://znc.svn.sourceforge.net/znc/?rev=1899&view=rev Author: psychon Date: 2010-04-08 16:04:56 +0000 (Thu, 08 Apr 2010) Log Message: ----------- Add {List,Add,Del}Port to *status Patch by BrianC, thanks a lot. (With some minor modifications) Modified Paths: -------------- trunk/ClientCommand.cpp Modified: trunk/ClientCommand.cpp =================================================================== --- trunk/ClientCommand.cpp 2010-04-08 15:56:19 UTC (rev 1898) +++ trunk/ClientCommand.cpp 2010-04-08 16:04:56 UTC (rev 1899) @@ -973,6 +973,98 @@ PutStatus(Table); } else if (sCommand.Equals("UPTIME")) { PutStatus("Running for " + CZNC::Get().GetUptime()); + } else if (m_pUser->IsAdmin() && sCommand.Equals("LISTPORTS")) { + CTable Table; + Table.AddColumn("Port"); + Table.AddColumn("BindHost"); + Table.AddColumn("SSL"); + Table.AddColumn("IPv4"); + Table.AddColumn("IPv6"); + + vector<CListener*>::const_iterator it; + const vector<CListener*>& vpListeners = CZNC::Get().GetListeners(); + + for (it = vpListeners.begin(); it < vpListeners.end(); ++it) { + Table.AddRow(); + Table.SetCell("Port", CString((*it)->GetPort())); + Table.SetCell("BindHost", (*it)->GetBindHost()); + Table.SetCell("SSL", CString((*it)->IsSSL())); + + EAddrType eAddr = (*it)->GetAddrType(); + bool bIPv4 = (eAddr == ADDR_IPV4ONLY || eAddr == ADDR_ALL); + bool bIPv6 = (eAddr == ADDR_IPV6ONLY || eAddr == ADDR_ALL); + + Table.SetCell("IPv4", CString(bIPv4)); + Table.SetCell("IPv6", CString(bIPv6)); + } + + PutStatus(Table); + } else if (m_pUser->IsAdmin() && sCommand.Equals("ADDPORT")) { + CString sPort = sLine.Token(1); + CString sAddr = sLine.Token(2); + EAddrType eAddr = ADDR_ALL; + + if (sAddr.Equals("IPV4")) { + eAddr = ADDR_IPV4ONLY; + } else if (sAddr.Equals("IPV6")) { + eAddr = ADDR_IPV6ONLY; + } else if (sAddr.Equals("ALL")) { + eAddr = ADDR_ALL; + } else { + sAddr.clear(); + } + + if (sPort.empty() || sAddr.empty()) { + PutStatus("Usage: AddPort <[+]port> <ipv4|ipv6|all> [bindhost]"); + } else { + bool bSSL = false; + if(sPort.Left(1).Equals("+")) { + bSSL = true; + } + + u_short uPort = sPort.ToUShort(); + CString sBindHost = sLine.Token(3); + CListener* pListener = new CListener(uPort, sBindHost, bSSL, eAddr); + + if (!pListener->Listen()) { + delete pListener; + PutStatus("Unable to bind ["+CString(strerror(errno))+"]"); + } else { + if (CZNC::Get().AddListener(pListener)) + PutStatus("Port Added"); + else + PutStatus("Error?!"); + } + } + } else if (m_pUser->IsAdmin() && sCommand.Equals("DELPORT")) { + CString sPort = sLine.Token(1); + CString sAddr = sLine.Token(2); + EAddrType eAddr = ADDR_ALL; + + if (sAddr.Equals("IPV4")) { + eAddr = ADDR_IPV4ONLY; + } else if (sAddr.Equals("IPV6")) { + eAddr = ADDR_IPV6ONLY; + } else if (sAddr.Equals("ALL")) { + eAddr = ADDR_ALL; + } else { + sAddr.clear(); + } + + if (sPort.empty() || sAddr.empty()) { + PutStatus("Usage: DelPort <port> <ipv4|ipv6|all> [bindhost]"); + } else { + u_short uPort = sPort.ToUShort(); + CString sBindHost = sLine.Token(3); + CListener* pListener = CZNC::Get().FindListener(uPort, sBindHost, eAddr); + + if (pListener) { + CZNC::Get().DelListener(pListener); + PutStatus("Deleted Port"); + } else { + PutStatus("Unable to find a matching port"); + } + } } else { PutStatus("Unknown command [" + sCommand + "] try 'Help'"); } @@ -1161,6 +1253,20 @@ Table.SetCell("Description", "Clear ZNC's MOTD"); Table.AddRow(); + Table.SetCell("Command", "ListPorts"); + Table.SetCell("Description", "Show all active listeners"); + + Table.AddRow(); + Table.SetCell("Command", "AddPort"); + Table.SetCell("Arguments", "<[+]port> <ipv4|ipv6|both> [bindhost]"); + Table.SetCell("Description", "Add another port for ZNC to listen on"); + + Table.AddRow(); + Table.SetCell("Command", "DelPort"); + Table.SetCell("Arguments", "<port> <ipv4|ipv6|both> [bindhost]"); + Table.SetCell("Description", "Remove a port from ZNC"); + + Table.AddRow(); Table.SetCell("Command", "Rehash"); Table.SetCell("Description", "Reload znc.conf from disk"); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cf...@us...> - 2010-04-14 19:04:28
|
Revision: 1913 http://znc.svn.sourceforge.net/znc/?rev=1913&view=rev Author: cflakes Date: 2010-04-14 19:04:21 +0000 (Wed, 14 Apr 2010) Log Message: ----------- Minor "all vs both" addport help fix. Modified Paths: -------------- trunk/ClientCommand.cpp Modified: trunk/ClientCommand.cpp =================================================================== --- trunk/ClientCommand.cpp 2010-04-14 18:58:32 UTC (rev 1912) +++ trunk/ClientCommand.cpp 2010-04-14 19:04:21 UTC (rev 1913) @@ -1258,12 +1258,12 @@ Table.AddRow(); Table.SetCell("Command", "AddPort"); - Table.SetCell("Arguments", "<[+]port> <ipv4|ipv6|both> [bindhost]"); + Table.SetCell("Arguments", "<[+]port> <ipv4|ipv6|all> [bindhost]"); Table.SetCell("Description", "Add another port for ZNC to listen on"); Table.AddRow(); Table.SetCell("Command", "DelPort"); - Table.SetCell("Arguments", "<port> <ipv4|ipv6|both> [bindhost]"); + Table.SetCell("Arguments", "<port> <ipv4|ipv6|all> [bindhost]"); Table.SetCell("Description", "Remove a port from ZNC"); Table.AddRow(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cf...@us...> - 2010-05-15 22:33:26
|
Revision: 1990 http://znc.svn.sourceforge.net/znc/?rev=1990&view=rev Author: cflakes Date: 2010-05-15 22:33:19 +0000 (Sat, 15 May 2010) Log Message: ----------- Add "setting"/argument for adding web and IRC only ports via /znc addport. Modified Paths: -------------- trunk/ClientCommand.cpp Modified: trunk/ClientCommand.cpp =================================================================== --- trunk/ClientCommand.cpp 2010-05-15 22:13:10 UTC (rev 1989) +++ trunk/ClientCommand.cpp 2010-05-15 22:33:19 UTC (rev 1990) @@ -1034,15 +1034,28 @@ } unsigned short uPort = sPort.ToUShort(); - CString sBindHost = sLine.Token(3); if (sCommand.Equals("ADDPORT")) { - if (sPort.empty() || sAddr.empty()) { - PutStatus("Usage: AddPort <[+]port> <ipv4|ipv6|all> [bindhost]"); + CListener::EAcceptType eAccept = CListener::ACCEPT_ALL; + CString sAccept = sLine.Token(3); + + if (sAccept.Equals("WEB")) { + eAccept = CListener::ACCEPT_HTTP; + } else if (sAccept.Equals("IRC")) { + eAccept = CListener::ACCEPT_IRC; + } else if (sAccept.Equals("ALL")) { + eAccept = CListener::ACCEPT_ALL; } else { + sAccept.clear(); + } + + if (sPort.empty() || sAddr.empty() || sAccept.empty()) { + PutStatus("Usage: AddPort <[+]port> <ipv4|ipv6|all> <web|irc|all> [bindhost]"); + } else { bool bSSL = (sPort.Left(1).Equals("+")); + const CString sBindHost = sLine.Token(4); - CListener* pListener = new CListener(uPort, sBindHost, bSSL, eAddr); + CListener* pListener = new CListener(uPort, sBindHost, bSSL, eAddr, eAccept); if (!pListener->Listen()) { delete pListener; @@ -1058,6 +1071,8 @@ if (sPort.empty() || sAddr.empty()) { PutStatus("Usage: DelPort <port> <ipv4|ipv6|all> [bindhost]"); } else { + const CString sBindHost = sLine.Token(3); + CListener* pListener = CZNC::Get().FindListener(uPort, sBindHost, eAddr); if (pListener) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cf...@us...> - 2010-05-15 22:37:45
|
Revision: 1991 http://znc.svn.sourceforge.net/znc/?rev=1991&view=rev Author: cflakes Date: 2010-05-15 22:37:39 +0000 (Sat, 15 May 2010) Log Message: ----------- Improved looks of /znc listports output. Modified Paths: -------------- trunk/ClientCommand.cpp Modified: trunk/ClientCommand.cpp =================================================================== --- trunk/ClientCommand.cpp 2010-05-15 22:33:19 UTC (rev 1990) +++ trunk/ClientCommand.cpp 2010-05-15 22:37:39 UTC (rev 1991) @@ -991,10 +991,8 @@ Table.AddColumn("Port"); Table.AddColumn("BindHost"); Table.AddColumn("SSL"); - Table.AddColumn("IPv4"); - Table.AddColumn("IPv6"); - Table.AddColumn("IRC"); - Table.AddColumn("Web"); + Table.AddColumn("Proto"); + Table.AddColumn("IRC/Web"); vector<CListener*>::const_iterator it; const vector<CListener*>& vpListeners = CZNC::Get().GetListeners(); @@ -1002,16 +1000,14 @@ for (it = vpListeners.begin(); it < vpListeners.end(); ++it) { Table.AddRow(); Table.SetCell("Port", CString((*it)->GetPort())); - Table.SetCell("BindHost", (*it)->GetBindHost()); + Table.SetCell("BindHost", ((*it)->GetBindHost().empty() ? CString("*") : (*it)->GetBindHost())); Table.SetCell("SSL", CString((*it)->IsSSL())); EAddrType eAddr = (*it)->GetAddrType(); - Table.SetCell("IPv4", CString(eAddr == ADDR_IPV4ONLY || eAddr == ADDR_ALL)); - Table.SetCell("IPv6", CString(eAddr == ADDR_IPV6ONLY || eAddr == ADDR_ALL)); + Table.SetCell("Proto", (eAddr == ADDR_ALL ? "All" : (eAddr == ADDR_IPV4ONLY ? "IPv4" : "IPv6"))); CListener::EAcceptType eAccept = (*it)->GetAcceptType(); - Table.SetCell("IRC", CString(eAccept != CListener::ACCEPT_HTTP)); - Table.SetCell("Web", CString(eAccept != CListener::ACCEPT_IRC)); + Table.SetCell("IRC/Web", (eAccept == CListener::ACCEPT_ALL ? "All" : (eAccept == CListener::ACCEPT_IRC ? "IRC" : "Web"))); } PutStatus(Table); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cf...@us...> - 2010-05-16 10:20:55
|
Revision: 1992 http://znc.svn.sourceforge.net/znc/?rev=1992&view=rev Author: cflakes Date: 2010-05-16 10:20:49 +0000 (Sun, 16 May 2010) Log Message: ----------- Fixed /znc addport arguments in /znc help. Modified Paths: -------------- trunk/ClientCommand.cpp Modified: trunk/ClientCommand.cpp =================================================================== --- trunk/ClientCommand.cpp 2010-05-15 22:37:39 UTC (rev 1991) +++ trunk/ClientCommand.cpp 2010-05-16 10:20:49 UTC (rev 1992) @@ -1270,7 +1270,7 @@ Table.AddRow(); Table.SetCell("Command", "AddPort"); - Table.SetCell("Arguments", "<[+]port> <ipv4|ipv6|all> [bindhost]"); + Table.SetCell("Arguments", "<[+]port> <ipv4|ipv6|all> <web|irc|all> [bindhost]"); Table.SetCell("Description", "Add another port for ZNC to listen on"); Table.AddRow(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |