mirror of
https://github.com/Relintai/pandemonium_engine.git
synced 2025-02-02 14:25:55 +01:00
Store incoming http request parameters properly.
This commit is contained in:
parent
df2859b9d0
commit
e5719c991b
@ -328,7 +328,7 @@ int HTTPParser::on_header_value(const char *at, size_t length) {
|
||||
ERR_PRINT("header_val " + s);
|
||||
#endif
|
||||
|
||||
_request->add_post_parameter(_queued_header_field, s);
|
||||
_request->add_header_parameter(_queued_header_field, s);
|
||||
|
||||
if (_queued_header_field == "host") {
|
||||
_request->set_host(s);
|
||||
|
@ -281,6 +281,9 @@ void HTTPServerConnection::send_file(Ref<WebServerRequest> request, const String
|
||||
return;
|
||||
}
|
||||
|
||||
//String range = request->get_htt
|
||||
|
||||
|
||||
String s = "HTTP/1.1 " + HTTPServerEnums::get_status_code_header_string(request->get_status_code()) + "\r\n";
|
||||
|
||||
if (!custom_headers.has("Connection")) {
|
||||
|
@ -124,6 +124,17 @@ void SimpleWebServerRequest::set_get_parameter(const String &key, const String &
|
||||
_get_parameters[key] = value;
|
||||
}
|
||||
|
||||
String SimpleWebServerRequest::get_header_parameter(const String &key) const {
|
||||
if (!_header_parameters.has(key)) {
|
||||
return "";
|
||||
}
|
||||
|
||||
return _header_parameters[key];
|
||||
}
|
||||
void SimpleWebServerRequest::set_header_parameter(const String &key, const String &value) {
|
||||
_header_parameters[key] = value;
|
||||
}
|
||||
|
||||
void SimpleWebServerRequest::send_redirect(const String &location, const HTTPServerEnums::HTTPStatusCode status_code) {
|
||||
ERR_FAIL_COND(!_server);
|
||||
|
||||
@ -167,6 +178,10 @@ void SimpleWebServerRequest::add_get_parameter(const String &key, const String &
|
||||
_get_parameters[key] = value;
|
||||
}
|
||||
|
||||
void SimpleWebServerRequest::add_header_parameter(const String &key, const String &value) {
|
||||
_header_parameters[key] = value;
|
||||
}
|
||||
|
||||
void SimpleWebServerRequest::set_parser_path(const String &value) {
|
||||
//https://www.rfc-editor.org/rfc/rfc3986.txt
|
||||
//3.4. Query
|
||||
|
@ -73,6 +73,9 @@ public:
|
||||
virtual void set_post_parameter(const String &key, const String &value);
|
||||
virtual void set_get_parameter(const String &key, const String &value);
|
||||
|
||||
virtual String get_header_parameter(const String &key) const;
|
||||
virtual void set_header_parameter(const String &key, const String &value);
|
||||
|
||||
virtual void send_redirect(const String &location, const HTTPServerEnums::HTTPStatusCode status_code = HTTPServerEnums::HTTP_STATUS_CODE_302_FOUND);
|
||||
virtual void send();
|
||||
virtual void send_file(const String &p_file_path);
|
||||
@ -81,6 +84,7 @@ public:
|
||||
|
||||
void add_post_parameter(const String &key, const String &value);
|
||||
void add_get_parameter(const String &key, const String &value);
|
||||
void add_header_parameter(const String &key, const String &value);
|
||||
void set_parser_path(const String &value);
|
||||
void set_host(const String &value);
|
||||
|
||||
@ -107,6 +111,7 @@ protected:
|
||||
|
||||
HashMap<String, String> _post_parameters;
|
||||
HashMap<String, String> _get_parameters;
|
||||
HashMap<String, String> _header_parameters;
|
||||
String _parser_path;
|
||||
String _host;
|
||||
|
||||
|
@ -136,7 +136,7 @@ bool WebServerRequest::has_csrf_token() {
|
||||
|
||||
String WebServerRequest::get_csrf_token() {
|
||||
if (!_session.is_valid()) {
|
||||
return "";
|
||||
return String();
|
||||
}
|
||||
|
||||
const Variant &val = _session->get_const("csrf_token");
|
||||
@ -174,7 +174,7 @@ bool WebServerRequest::validate_csrf_token() {
|
||||
}
|
||||
|
||||
String WebServerRequest::get_cookie(const String &key) {
|
||||
return "";
|
||||
return String();
|
||||
}
|
||||
|
||||
void WebServerRequest::response_add_cookie(const Ref<WebServerCookie> &cookie) {
|
||||
@ -214,7 +214,7 @@ String WebServerRequest::custom_response_header_get(const StringName &key) {
|
||||
String *e = _custom_response_headers.getptr(key);
|
||||
|
||||
if (!e) {
|
||||
return "";
|
||||
return String();
|
||||
}
|
||||
|
||||
return *e;
|
||||
@ -252,10 +252,10 @@ int WebServerRequest::get_file_count() const {
|
||||
return 0;
|
||||
}
|
||||
String WebServerRequest::get_file_file_name(const int index) const {
|
||||
return "";
|
||||
return String();
|
||||
}
|
||||
String WebServerRequest::get_file_key(const int index) const {
|
||||
return "";
|
||||
return String();
|
||||
}
|
||||
int WebServerRequest::get_file_length(const int index) const {
|
||||
return 0;
|
||||
@ -264,19 +264,19 @@ PoolByteArray WebServerRequest::get_file_data(const int index) const {
|
||||
return PoolByteArray();
|
||||
}
|
||||
String WebServerRequest::get_file_data_str(const int index) const {
|
||||
return "";
|
||||
return String();
|
||||
}
|
||||
|
||||
String WebServerRequest::get_parameter(const String &key) const {
|
||||
return "";
|
||||
return String();
|
||||
}
|
||||
|
||||
String WebServerRequest::get_post_parameter(const String &key) const {
|
||||
return "";
|
||||
return String();
|
||||
}
|
||||
|
||||
String WebServerRequest::get_get_parameter(const String &key) const {
|
||||
return "";
|
||||
return String();
|
||||
}
|
||||
|
||||
void WebServerRequest::set_post_parameter(const String &key, const String &value) {
|
||||
@ -284,6 +284,12 @@ void WebServerRequest::set_post_parameter(const String &key, const String &value
|
||||
void WebServerRequest::set_get_parameter(const String &key, const String &value) {
|
||||
}
|
||||
|
||||
String WebServerRequest::get_header_parameter(const String &key) const {
|
||||
return String();
|
||||
}
|
||||
void WebServerRequest::set_header_parameter(const String &key, const String &value) {
|
||||
}
|
||||
|
||||
HTTPServerEnums::HTTPStatusCode WebServerRequest::get_status_code() const {
|
||||
return _status_code;
|
||||
}
|
||||
@ -343,7 +349,7 @@ void WebServerRequest::send_error(int error_code) {
|
||||
}
|
||||
|
||||
String WebServerRequest::parser_get_path() {
|
||||
return "";
|
||||
return String();
|
||||
}
|
||||
|
||||
void WebServerRequest::setup_url_stack() {
|
||||
@ -517,7 +523,7 @@ String WebServerRequest::get_url_site_add(const String &add) const {
|
||||
}
|
||||
|
||||
String WebServerRequest::get_host() const {
|
||||
return "";
|
||||
return String();
|
||||
}
|
||||
|
||||
void WebServerRequest::update() {
|
||||
@ -642,6 +648,9 @@ void WebServerRequest::_bind_methods() {
|
||||
ClassDB::bind_method(D_METHOD("set_post_parameter", "key", "value"), &WebServerRequest::set_post_parameter);
|
||||
ClassDB::bind_method(D_METHOD("set_get_parameter", "key", "value"), &WebServerRequest::set_get_parameter);
|
||||
|
||||
ClassDB::bind_method(D_METHOD("get_header_parameter", "key"), &WebServerRequest::get_header_parameter);
|
||||
ClassDB::bind_method(D_METHOD("set_header_parameter", "key", "value"), &WebServerRequest::set_header_parameter);
|
||||
|
||||
ClassDB::bind_method(D_METHOD("get_status_code"), &WebServerRequest::get_status_code);
|
||||
ClassDB::bind_method(D_METHOD("set_status_code", "val"), &WebServerRequest::set_status_code);
|
||||
ADD_PROPERTY(PropertyInfo(Variant::INT, "status_code"), "set_status_code", "get_status_code");
|
||||
|
@ -125,6 +125,9 @@ public:
|
||||
virtual void set_post_parameter(const String &key, const String &value);
|
||||
virtual void set_get_parameter(const String &key, const String &value);
|
||||
|
||||
virtual String get_header_parameter(const String &key) const;
|
||||
virtual void set_header_parameter(const String &key, const String &value);
|
||||
|
||||
HTTPServerEnums::HTTPStatusCode get_status_code() const;
|
||||
void set_status_code(const HTTPServerEnums::HTTPStatusCode status_code);
|
||||
|
||||
|
@ -85,6 +85,13 @@ void WebServerRequestScriptable::set_get_parameter(const String &key, const Stri
|
||||
call("_set_get_parameter", key, value);
|
||||
}
|
||||
|
||||
String WebServerRequestScriptable::get_header_parameter(const String &key) const {
|
||||
return const_cast<WebServerRequestScriptable *>(this)->call("_get_header_parameter", key);
|
||||
}
|
||||
void WebServerRequestScriptable::set_header_parameter(const String &key, const String &value) {
|
||||
call("_set_header_parameter", key, value);
|
||||
}
|
||||
|
||||
void WebServerRequestScriptable::send_redirect(const String &location, const HTTPServerEnums::HTTPStatusCode status_code) {
|
||||
call("_send_redirect", location, status_code);
|
||||
}
|
||||
@ -128,7 +135,7 @@ void WebServerRequestScriptable::update() {
|
||||
// script virtuals
|
||||
|
||||
String WebServerRequestScriptable::_get_cookie(const String &key) {
|
||||
return "";
|
||||
return String();
|
||||
}
|
||||
|
||||
HTTPServerEnums::HTTPMethod WebServerRequestScriptable::_get_method() const {
|
||||
@ -141,10 +148,10 @@ int WebServerRequestScriptable::_get_file_count() const {
|
||||
return 0;
|
||||
}
|
||||
String WebServerRequestScriptable::_get_file_file_name(const int index) const {
|
||||
return "";
|
||||
return String();
|
||||
}
|
||||
String WebServerRequestScriptable::_get_file_key(const int index) const {
|
||||
return "";
|
||||
return String();
|
||||
}
|
||||
int WebServerRequestScriptable::_get_file_length(const int index) const {
|
||||
return 0;
|
||||
@ -153,19 +160,19 @@ PoolByteArray WebServerRequestScriptable::_get_file_data(const int index) const
|
||||
return PoolByteArray();
|
||||
}
|
||||
String WebServerRequestScriptable::_get_file_data_str(const int index) const {
|
||||
return "";
|
||||
return String();
|
||||
}
|
||||
|
||||
String WebServerRequestScriptable::_get_parameter(const String &key) const {
|
||||
return "";
|
||||
return String();
|
||||
}
|
||||
|
||||
String WebServerRequestScriptable::_get_post_parameter(const String &key) const {
|
||||
return "";
|
||||
return String();
|
||||
}
|
||||
|
||||
String WebServerRequestScriptable::_get_get_parameter(const String &key) const {
|
||||
return "";
|
||||
return String();
|
||||
}
|
||||
|
||||
void WebServerRequestScriptable::_set_post_parameter(const String &key, const String &value) {
|
||||
@ -173,6 +180,12 @@ void WebServerRequestScriptable::_set_post_parameter(const String &key, const St
|
||||
void WebServerRequestScriptable::_set_get_parameter(const String &key, const String &value) {
|
||||
}
|
||||
|
||||
String WebServerRequestScriptable::_get_header_parameter(const String &key) const {
|
||||
return String();
|
||||
}
|
||||
void WebServerRequestScriptable::_set_header_parameter(const String &key, const String &value) {
|
||||
}
|
||||
|
||||
void WebServerRequestScriptable::_send_redirect(const String &location, const HTTPServerEnums::HTTPStatusCode status_code) {
|
||||
}
|
||||
|
||||
@ -224,7 +237,7 @@ void WebServerRequestScriptable::_send_error(int error_code) {
|
||||
}
|
||||
|
||||
String WebServerRequestScriptable::_parser_get_path() {
|
||||
return "";
|
||||
return String();
|
||||
}
|
||||
|
||||
String WebServerRequestScriptable::_get_path_full() const {
|
||||
@ -232,7 +245,7 @@ String WebServerRequestScriptable::_get_path_full() const {
|
||||
}
|
||||
|
||||
String WebServerRequestScriptable::_get_host() const {
|
||||
return "";
|
||||
return String();
|
||||
}
|
||||
|
||||
void WebServerRequestScriptable::_update() {
|
||||
@ -271,6 +284,9 @@ void WebServerRequestScriptable::_bind_methods() {
|
||||
BIND_VMETHOD(MethodInfo("_set_post_parameter", PropertyInfo(Variant::STRING, "key"), PropertyInfo(Variant::STRING, "value")));
|
||||
BIND_VMETHOD(MethodInfo("_set_get_parameter", PropertyInfo(Variant::STRING, "key"), PropertyInfo(Variant::STRING, "value")));
|
||||
|
||||
BIND_VMETHOD(MethodInfo("_get_header_parameter", PropertyInfo(Variant::STRING, "key")));
|
||||
BIND_VMETHOD(MethodInfo("_set_header_parameter", PropertyInfo(Variant::STRING, "key"), PropertyInfo(Variant::STRING, "value")));
|
||||
|
||||
BIND_VMETHOD(MethodInfo("_send_redirect", PropertyInfo(Variant::STRING, "location"), PropertyInfo(Variant::INT, "status_code")));
|
||||
|
||||
BIND_VMETHOD(MethodInfo("_compile_body"));
|
||||
@ -304,6 +320,9 @@ void WebServerRequestScriptable::_bind_methods() {
|
||||
ClassDB::bind_method(D_METHOD("_set_post_parameter", "key", "value"), &WebServerRequestScriptable::_set_post_parameter);
|
||||
ClassDB::bind_method(D_METHOD("_set_get_parameter", "key", "value"), &WebServerRequestScriptable::_set_get_parameter);
|
||||
|
||||
ClassDB::bind_method(D_METHOD("_get_header_parameter", "key"), &WebServerRequestScriptable::_get_header_parameter);
|
||||
ClassDB::bind_method(D_METHOD("_set_header_parameter", "key", "value"), &WebServerRequestScriptable::_set_header_parameter);
|
||||
|
||||
ClassDB::bind_method(D_METHOD("_send_redirect", "location", "status_code"), &WebServerRequestScriptable::_send_redirect);
|
||||
|
||||
ClassDB::bind_method(D_METHOD("_compile_body"), &WebServerRequestScriptable::_compile_body);
|
||||
|
@ -72,6 +72,9 @@ public:
|
||||
virtual void set_post_parameter(const String &key, const String &value);
|
||||
virtual void set_get_parameter(const String &key, const String &value);
|
||||
|
||||
virtual String get_header_parameter(const String &key) const;
|
||||
virtual void set_header_parameter(const String &key, const String &value);
|
||||
|
||||
virtual void send_redirect(const String &location, const HTTPServerEnums::HTTPStatusCode status_code = HTTPServerEnums::HTTP_STATUS_CODE_302_FOUND);
|
||||
virtual void compile_body();
|
||||
virtual void compile_and_send_body();
|
||||
@ -105,6 +108,9 @@ public:
|
||||
virtual void _set_post_parameter(const String &key, const String &value);
|
||||
virtual void _set_get_parameter(const String &key, const String &value);
|
||||
|
||||
virtual String _get_header_parameter(const String &key) const;
|
||||
virtual void _set_header_parameter(const String &key, const String &value);
|
||||
|
||||
void _send_redirect(const String &location, const HTTPServerEnums::HTTPStatusCode status_code);
|
||||
void _compile_body();
|
||||
void _compile_and_send_body();
|
||||
|
Loading…
Reference in New Issue
Block a user