From bbca3e3254ac52c3d77da2da0f7c0297491d753a Mon Sep 17 00:00:00 2001 From: cflakes Date: Sat, 15 May 2010 22:33:19 +0000 Subject: [PATCH] Add "setting"/argument for adding web and IRC only ports via /znc addport. git-svn-id: https://znc.svn.sourceforge.net/svnroot/znc/trunk@1990 726aef4b-f618-498e-8847-2d620e286838 --- ClientCommand.cpp | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/ClientCommand.cpp b/ClientCommand.cpp index 9c0ae799..422f599e 100644 --- a/ClientCommand.cpp +++ b/ClientCommand.cpp @@ -1034,15 +1034,28 @@ void CClient::UserPortCommand(CString& sLine) { } unsigned short uPort = sPort.ToUShort(); - CString sBindHost = sLine.Token(3); if (sCommand.Equals("ADDPORT")) { - if (sPort.empty() || sAddr.empty()) { - PutStatus("Usage: AddPort <[+]port> [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> [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 @@ void CClient::UserPortCommand(CString& sLine) { if (sPort.empty() || sAddr.empty()) { PutStatus("Usage: DelPort [bindhost]"); } else { + const CString sBindHost = sLine.Token(3); + CListener* pListener = CZNC::Get().FindListener(uPort, sBindHost, eAddr); if (pListener) {