summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2018-03-16 12:37:59 -0300
committerJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2018-04-11 06:35:07 -0300
commita7db7c51d7afca9bd2acea6e516703975e6072ea (patch)
treef13d759d9c09c5039bb2576c875438a35c6e849e
parent74f478301b0bc624df9c760f6c8084e42f0cf24f (diff)
downloadmullvadvpn-a7db7c51d7afca9bd2acea6e516703975e6072ea.tar.xz
mullvadvpn-a7db7c51d7afca9bd2acea6e516703975e6072ea.zip
Set Host HTTP header in RPC connections
-rw-r--r--mullvad-rpc/src/lib.rs14
1 files changed, 12 insertions, 2 deletions
diff --git a/mullvad-rpc/src/lib.rs b/mullvad-rpc/src/lib.rs
index 284ff36a51..79bd3bd0a2 100644
--- a/mullvad-rpc/src/lib.rs
+++ b/mullvad-rpc/src/lib.rs
@@ -25,6 +25,7 @@ extern crate mullvad_types;
use chrono::offset::Utc;
use chrono::DateTime;
+use jsonrpc_client_http::header::Host;
use jsonrpc_client_http::HttpTransport;
use tokio_core::reactor::Handle;
@@ -42,6 +43,7 @@ pub mod event_loop;
pub mod rest;
+static MASTER_API_HOST: &str = "api.mullvad.net";
static MASTER_API_URI: &str = "https://api.mullvad.net/rpc/";
@@ -65,12 +67,20 @@ impl MullvadRpcFactory {
/// Spawns a tokio core on a new thread and returns a `HttpHandle` running on that core.
pub fn new_connection(&self) -> Result<HttpHandle, HttpError> {
- HttpTransport::new()?.handle(MASTER_API_URI)
+ self.setup_connection(HttpTransport::new()?)
}
/// Create and returns a `HttpHandle` running on the given core handle.
pub fn new_connection_on_event_loop(&self, handle: &Handle) -> Result<HttpHandle, HttpError> {
- HttpTransport::shared(handle)?.handle(MASTER_API_URI)
+ self.setup_connection(HttpTransport::shared(handle)?)
+ }
+
+ fn setup_connection(&self, transport: HttpTransport) -> Result<HttpHandle, HttpError> {
+ let mut handle = transport.handle(MASTER_API_URI)?;
+
+ handle.set_header(Host::new(MASTER_API_HOST, None));
+
+ Ok(handle)
}
}