mirror of
https://github.com/znc/znc.git
synced 2026-05-03 20:12:29 +02:00
Add URIPrefix listener option
This commit is contained in:
@@ -101,6 +101,7 @@ public:
|
||||
CString sArgs(sArgStr);
|
||||
CString sPort;
|
||||
CString sListenHost;
|
||||
CString sURIPrefix;
|
||||
|
||||
while (sArgs.Left(1) == "-") {
|
||||
CString sOpt = sArgs.Token(0);
|
||||
@@ -150,7 +151,7 @@ public:
|
||||
}
|
||||
|
||||
// Now turn that into a listener instance
|
||||
CListener *pListener = new CListener(uPort, sListenHost, bSSL,
|
||||
CListener *pListener = new CListener(uPort, sListenHost, sURIPrefix, bSSL,
|
||||
(!bIPv6 ? ADDR_IPV4ONLY : ADDR_ALL), CListener::ACCEPT_HTTP);
|
||||
|
||||
if (!pListener->Listen()) {
|
||||
@@ -1420,6 +1421,7 @@ public:
|
||||
bool AddListener(CWebSock& WebSock, CTemplate& Tmpl) {
|
||||
unsigned short uPort = WebSock.GetParam("port").ToUShort();
|
||||
CString sHost = WebSock.GetParam("host");
|
||||
CString sURIPrefix = WebSock.GetParam("uriprefix");
|
||||
if (sHost == "*") sHost = "";
|
||||
bool bSSL = WebSock.GetParam("ssl").ToBool();
|
||||
bool bIPv4 = WebSock.GetParam("ipv4").ToBool();
|
||||
@@ -1460,7 +1462,7 @@ public:
|
||||
}
|
||||
|
||||
CString sMessage;
|
||||
if (CZNC::Get().AddListener(uPort, sHost, bSSL, eAddr, eAccept, sMessage)) {
|
||||
if (CZNC::Get().AddListener(uPort, sHost, sURIPrefix, bSSL, eAddr, eAccept, sMessage)) {
|
||||
if (!sMessage.empty()) {
|
||||
WebSock.GetSession()->AddSuccess(sMessage);
|
||||
}
|
||||
@@ -1545,6 +1547,8 @@ public:
|
||||
l["IsWeb"] = CString(pListener->GetAcceptType() != CListener::ACCEPT_IRC);
|
||||
l["IsIRC"] = CString(pListener->GetAcceptType() != CListener::ACCEPT_HTTP);
|
||||
|
||||
l["URIPrefix"] = pListener->GetURIPrefix() + "/";
|
||||
|
||||
// simple protection for user from shooting his own foot
|
||||
// TODO check also for hosts/families
|
||||
// such check is only here, user still can forge HTTP request to delete web port
|
||||
|
||||
Reference in New Issue
Block a user