zaela-Server/world/http_request.cpp

81 lines
2.5 KiB
C++
Raw Permalink Normal View History

2013-05-09 10:44:08 -04:00
/* EQEMu: Everquest Server Emulator
Copyright (C) 2001-2006 EQEMu Development Team (http://eqemulator.net)
2013-02-16 16:14:39 -08:00
2013-05-09 10:44:08 -04:00
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; version 2 of the License.
2013-05-06 13:07:41 -04:00
2013-05-09 10:44:08 -04:00
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY except by those people which sell it, which
2013-02-16 16:14:39 -08:00
are required to give you total support for your newly bought product;
without even the implied warranty of MERCHANTABILITY or FITNESS FOR
2013-05-09 10:44:08 -04:00
A PARTICULAR PURPOSE. See the GNU General Public License for more details.
2013-05-06 13:07:41 -04:00
2013-05-09 10:44:08 -04:00
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
2013-02-16 16:14:39 -08:00
*/
#include "../common/global_define.h"
2014-08-21 23:30:09 -07:00
#include "http_request.h"
#include "eqw_http_handler.h"
2014-08-21 17:26:32 -07:00
#include "../common/eqdb.h"
2013-02-16 16:14:39 -08:00
#include "../common/SocketLib/HttpdForm.h"
#include <cstdlib>
HTTPRequest::HTTPRequest(EQWHTTPHandler *h, HttpdForm *form)
: m_handler(h)
{
std::string name, value;
2013-02-16 16:14:39 -08:00
if(form->getfirst(name, value)) {
m_values[name] = value;
while(form->getnext(name, value))
m_values[name] = value;
}
}
const char *HTTPRequest::getEscaped(const char *name, const char *default_value) const {
return(EQDB::Singleton()->escape_string(get(name, default_value)));
}
const char *HTTPRequest::get(const char *name, const char *default_value) const {
std::map<std::string, std::string>::const_iterator res;
res = m_values.find(name);
if(res == m_values.end())
return(default_value);
return(res->second.c_str());
}
std::map<std::string,std::string> HTTPRequest::get_all() const {
2013-02-16 16:14:39 -08:00
return m_values;
}
int HTTPRequest::getInt(const char *name, int default_value) const {
std::map<std::string, std::string>::const_iterator res;
res = m_values.find(name);
if(res == m_values.end())
return(default_value);
return(atoi(res->second.c_str()));
}
float HTTPRequest::getFloat(const char *name, float default_value) const {
std::map<std::string, std::string>::const_iterator res;
res = m_values.find(name);
if(res == m_values.end())
return(default_value);
return(atof(res->second.c_str()));
}
void HTTPRequest::header(Const_char *name, Const_char *value) {
m_handler->AddResponseHeader(name, value);
}
void HTTPRequest::SetResponseCode(Const_char *code) {
m_handler->SetResponseCode(code);
}
void HTTPRequest::redirect(Const_char *URL) {
header("Location", URL);
SetResponseCode("302");
}