aboutsummaryrefslogtreecommitdiff
path: root/core
diff options
context:
space:
mode:
authorFabio Alessandrelli2016-12-13 10:57:05 +0100
committerFabio Alessandrelli2016-12-13 11:09:37 +0100
commitd194e1c48e5d161f0310ee17e63f1951e2c50de6 (patch)
treef7e566071e123eed61c4af4f29dc32bd828ab632 /core
parentde23ce11b51847b7b8bfc10ecf5926827516ac5a (diff)
downloadgodot-d194e1c48e5d161f0310ee17e63f1951e2c50de6.tar.gz
godot-d194e1c48e5d161f0310ee17e63f1951e2c50de6.tar.zst
godot-d194e1c48e5d161f0310ee17e63f1951e2c50de6.zip
Expose HTTP classes' set_ip_type to scripting
Diffstat (limited to 'core')
-rw-r--r--core/io/http_client.cpp11
-rw-r--r--core/io/http_client.h5
2 files changed, 10 insertions, 6 deletions
diff --git a/core/io/http_client.cpp b/core/io/http_client.cpp
index 24314e3a1..5420521f8 100644
--- a/core/io/http_client.cpp
+++ b/core/io/http_client.cpp
@@ -30,12 +30,13 @@
#include "io/stream_peer_ssl.h"
void HTTPClient::set_ip_type(IP::Type p_type) {
- tcp_connection->set_ip_type(p_type);
+ ip_type = p_type;
}
-Error HTTPClient::connect(const String &p_host, int p_port, bool p_ssl,bool p_verify_host, IP::Type p_addr_type){
+Error HTTPClient::connect(const String &p_host, int p_port, bool p_ssl,bool p_verify_host){
close();
+ tcp_connection->set_ip_type(ip_type);
conn_port=p_port;
conn_host=p_host;
@@ -65,7 +66,7 @@ Error HTTPClient::connect(const String &p_host, int p_port, bool p_ssl,bool p_ve
status=STATUS_CONNECTING;
} else {
//is hostname
- resolving=IP::get_singleton()->resolve_hostname_queue_item(conn_host, p_addr_type);
+ resolving=IP::get_singleton()->resolve_hostname_queue_item(conn_host, ip_type);
status=STATUS_RESOLVING;
}
@@ -638,7 +639,8 @@ Error HTTPClient::_get_http_data(uint8_t* p_buffer, int p_bytes,int &r_received)
void HTTPClient::_bind_methods() {
- ObjectTypeDB::bind_method(_MD("connect:Error","host","port","use_ssl","verify_host"),&HTTPClient::connect,DEFVAL(false),DEFVAL(true),DEFVAL(IP::TYPE_ANY));
+ ObjectTypeDB::bind_method(_MD("set_ip_type","ip_type"),&HTTPClient::set_ip_type);
+ ObjectTypeDB::bind_method(_MD("connect:Error","host","port","use_ssl","verify_host"),&HTTPClient::connect,DEFVAL(false),DEFVAL(true));
ObjectTypeDB::bind_method(_MD("set_connection","connection:StreamPeer"),&HTTPClient::set_connection);
ObjectTypeDB::bind_method(_MD("get_connection:StreamPeer"),&HTTPClient::get_connection);
ObjectTypeDB::bind_method(_MD("request_raw","method","url","headers","body"),&HTTPClient::request_raw);
@@ -764,6 +766,7 @@ String HTTPClient::query_string_from_dict(const Dictionary& p_dict) {
HTTPClient::HTTPClient(){
+ ip_type = IP::TYPE_ANY;
tcp_connection = StreamPeerTCP::create_ref();
resolving = IP::RESOLVER_INVALID_ID;
status=STATUS_DISCONNECTED;
diff --git a/core/io/http_client.h b/core/io/http_client.h
index 7ec418fd2..fdbf47b9c 100644
--- a/core/io/http_client.h
+++ b/core/io/http_client.h
@@ -132,6 +132,7 @@ public:
private:
+ IP::Type ip_type;
Status status;
IP::ResolverID resolving;
int conn_port;
@@ -164,9 +165,9 @@ private:
public:
- virtual void set_ip_type(IP::Type p_type);
+ void set_ip_type(IP::Type p_type);
//Error connect_and_get(const String& p_url,bool p_verify_host=true); //connects to a full url and perform request
- Error connect(const String &p_host,int p_port,bool p_ssl=false,bool p_verify_host=true, IP::Type p_addr_type = IP::TYPE_ANY);
+ Error connect(const String &p_host,int p_port,bool p_ssl=false,bool p_verify_host=true);
void set_connection(const Ref<StreamPeer>& p_connection);
Ref<StreamPeer> get_connection() const;