summaryrefslogtreecommitdiff
path: root/src/modules/m_httpd.cpp
diff options
context:
space:
mode:
authorbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>2006-07-11 14:38:07 +0000
committerbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>2006-07-11 14:38:07 +0000
commit6322067c9073a83ee7e9b12bc0c868a5507f1d87 (patch)
treea81f280034c7a924101f08bc958c2c04c99ff67a /src/modules/m_httpd.cpp
parent5a673b22fc50ccc9a47616c8ba8a7fab8faf1d51 (diff)
Stuff for adding extra headers to a response (for Authorization: and Location: etc)
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4333 e03df62e-2008-0410-955e-edbf42e46eb7
Diffstat (limited to 'src/modules/m_httpd.cpp')
-rw-r--r--src/modules/m_httpd.cpp13
1 files changed, 7 insertions, 6 deletions
diff --git a/src/modules/m_httpd.cpp b/src/modules/m_httpd.cpp
index dc6a7f418..3d47ed042 100644
--- a/src/modules/m_httpd.cpp
+++ b/src/modules/m_httpd.cpp
@@ -164,11 +164,12 @@ class HttpSocket : public InspSocket
}
}
- void SendHeaders(unsigned long size, int response)
+ void SendHeaders(unsigned long size, int response, std::string &extraheaders)
{
struct tm *timeinfo = localtime(&TIME);
this->Write("HTTP/1.1 "+ConvToStr(response)+" "+Response(response)+"\r\nDate: ");
this->Write(asctime(timeinfo));
+ this->Write(extraheaders);
this->Write("Server: InspIRCd/m_httpd.so/1.1\r\nContent-Length: "+ConvToStr(size)+
"\r\nConnection: close\r\nContent-Type: text/html\r\n\r\n");
}
@@ -202,7 +203,7 @@ class HttpSocket : public InspSocket
{
if ((request_type == "GET") && (uri == "/"))
{
- SendHeaders(index->ContentSize(),200);
+ SendHeaders(index->ContentSize(), 200, "");
this->Write(index->Contents());
}
else
@@ -214,7 +215,7 @@ class HttpSocket : public InspSocket
if (!claimed)
{
- SendHeaders(0, 404);
+ SendHeaders(0, 404, "");
log(DEBUG,"Page not claimed, 404");
}
}
@@ -233,10 +234,10 @@ class HttpSocket : public InspSocket
}
}
- void Page(std::stringstream* n, int response)
+ void Page(std::stringstream* n, int response, std::string& extraheaders)
{
log(DEBUG,"Sending page");
- SendHeaders(n->str().length(),response);
+ SendHeaders(n->str().length(), response, extraheaders);
this->Write(n->str());
}
};
@@ -291,7 +292,7 @@ class ModuleHttp : public Module
claimed = true;
HTTPDocument* doc = (HTTPDocument*)request->GetData();
HttpSocket* sock = (HttpSocket*)doc->sock;
- sock->Page(doc->GetDocument(), doc->GetResponseCode());
+ sock->Page(doc->GetDocument(), doc->GetResponseCode(), doc->GetExtraHeaders());
return NULL;
}