summaryrefslogtreecommitdiff
path: root/modules/extra/webcpanel
diff options
context:
space:
mode:
authorAdam <Adam@anope.org>2012-11-01 13:32:38 -0400
committerAdam <Adam@anope.org>2012-11-01 14:47:23 -0400
commit90930619bc124e94bac5048c0b13c3f4748b559d (patch)
treecbe2325f6295aa188a6dd0f0d56d336eab060bbe /modules/extra/webcpanel
parent5b1c8230191fa626ef9210c5035f14a8df4c0ed6 (diff)
Fixed quite a bit of dumbness with m_ssl. Had to
modify socketengines to allow polling for write & no read, but is it cleaner now. Made m_httpd able to listen using SSL.
Diffstat (limited to 'modules/extra/webcpanel')
-rw-r--r--modules/extra/webcpanel/pages/chanserv/access.cpp2
-rw-r--r--modules/extra/webcpanel/pages/chanserv/akick.cpp2
-rw-r--r--modules/extra/webcpanel/pages/chanserv/set.cpp2
-rw-r--r--modules/extra/webcpanel/pages/index.cpp2
-rw-r--r--modules/extra/webcpanel/pages/logout.cpp2
-rw-r--r--modules/extra/webcpanel/webcpanel.cpp2
-rw-r--r--modules/extra/webcpanel/webcpanel.h1
7 files changed, 8 insertions, 5 deletions
diff --git a/modules/extra/webcpanel/pages/chanserv/access.cpp b/modules/extra/webcpanel/pages/chanserv/access.cpp
index dc999c350..a1b8be97f 100644
--- a/modules/extra/webcpanel/pages/chanserv/access.cpp
+++ b/modules/extra/webcpanel/pages/chanserv/access.cpp
@@ -18,7 +18,7 @@ bool WebCPanel::ChanServ::Access::OnRequest(HTTPProvider *server, const Anope::s
if (chname.empty())
{
reply.error = HTTP_FOUND;
- reply.headers["Location"] = "http://" + message.headers["Host"] + "/chanserv/info";
+ reply.headers["Location"] = Anope::string("http") + (use_ssl ? "s" : "") + "://" + message.headers["Host"] + "/chanserv/info";
return true;
}
diff --git a/modules/extra/webcpanel/pages/chanserv/akick.cpp b/modules/extra/webcpanel/pages/chanserv/akick.cpp
index 70fa5b52e..d5351bfd9 100644
--- a/modules/extra/webcpanel/pages/chanserv/akick.cpp
+++ b/modules/extra/webcpanel/pages/chanserv/akick.cpp
@@ -18,7 +18,7 @@ bool WebCPanel::ChanServ::Akick::OnRequest(HTTPProvider *server, const Anope::st
if (chname.empty())
{
reply.error = HTTP_FOUND;
- reply.headers["Location"] = "http://" + message.headers["Host"] + "/chanserv/info";
+ reply.headers["Location"] = Anope::string("http") + (use_ssl ? "s" : "") + "://" + message.headers["Host"] + "/chanserv/info";
return true;
}
diff --git a/modules/extra/webcpanel/pages/chanserv/set.cpp b/modules/extra/webcpanel/pages/chanserv/set.cpp
index 889e8f24f..4ad551e6a 100644
--- a/modules/extra/webcpanel/pages/chanserv/set.cpp
+++ b/modules/extra/webcpanel/pages/chanserv/set.cpp
@@ -18,7 +18,7 @@ bool WebCPanel::ChanServ::Set::OnRequest(HTTPProvider *server, const Anope::stri
if (chname.empty())
{
reply.error = HTTP_FOUND;
- reply.headers["Location"] = "http://" + message.headers["Host"] + "/chanserv/info";
+ reply.headers["Location"] = Anope::string("http") + (use_ssl ? "s" : "") + "://" + message.headers["Host"] + "/chanserv/info";
return true;
}
diff --git a/modules/extra/webcpanel/pages/index.cpp b/modules/extra/webcpanel/pages/index.cpp
index 357d3ec3b..c97737c21 100644
--- a/modules/extra/webcpanel/pages/index.cpp
+++ b/modules/extra/webcpanel/pages/index.cpp
@@ -58,7 +58,7 @@ class WebpanelRequest : public IdentifyRequest
}
reply.error = HTTP_FOUND;
- reply.headers["Location"] = "http://" + message.headers["Host"] + "/nickserv/info";
+ reply.headers["Location"] = Anope::string("http") + (use_ssl ? "s" : "") + "://" + message.headers["Host"] + "/nickserv/info";
client->SendReply(&reply);
}
diff --git a/modules/extra/webcpanel/pages/logout.cpp b/modules/extra/webcpanel/pages/logout.cpp
index efa93ab4f..d62bde95f 100644
--- a/modules/extra/webcpanel/pages/logout.cpp
+++ b/modules/extra/webcpanel/pages/logout.cpp
@@ -17,7 +17,7 @@ bool WebCPanel::Logout::OnRequest(HTTPProvider *server, const Anope::string &pag
na->Shrink("webcpanel_ip");
reply.error = HTTP_FOUND;
- reply.headers["Location"] = "http://" + message.headers["Host"];
+ reply.headers["Location"] = Anope::string("http") + (use_ssl ? "s" : "") + "://" + message.headers["Host"];
return true;
}
diff --git a/modules/extra/webcpanel/webcpanel.cpp b/modules/extra/webcpanel/webcpanel.cpp
index c23b6efbf..77cf606aa 100644
--- a/modules/extra/webcpanel/webcpanel.cpp
+++ b/modules/extra/webcpanel/webcpanel.cpp
@@ -9,6 +9,7 @@
Module *me;
Anope::string provider_name, template_name, template_base, page_title;
+bool use_ssl = false;
class ModuleWebCPanel : public Module
{
@@ -53,6 +54,7 @@ class ModuleWebCPanel : public Module
template_name = reader.ReadValue("webcpanel", "template", "template", 0);
template_base = db_dir + "/modules/webcpanel/templates/" + template_name;
page_title = reader.ReadValue("webcpanel", "title", "Anope IRC Services", 0);
+ use_ssl = reader.ReadFlag("webcpanel", "ssl", "no", 0); // This is dumb, is there a better way to do this?
service_reference<HTTPProvider> provider("HTTPProvider", provider_name);
if (!provider)
diff --git a/modules/extra/webcpanel/webcpanel.h b/modules/extra/webcpanel/webcpanel.h
index 926feaf53..99cb2ec3a 100644
--- a/modules/extra/webcpanel/webcpanel.h
+++ b/modules/extra/webcpanel/webcpanel.h
@@ -14,6 +14,7 @@
extern Module *me;
extern Anope::string provider_name, template_name, template_base, page_title;
+extern bool use_ssl;
struct SubSection
{