// Copyright 2015, 2016 Ethcore (UK) Ltd. // This file is part of Parity. // Parity 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, either version 3 of the License, or // (at your option) any later version. // Parity is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // You should have received a copy of the GNU General Public License // along with Parity. If not, see . use DAPPS_DOMAIN; use hyper::server; use hyper::net::HttpStream; use jsonrpc_http_server::{is_host_header_valid}; use handlers::ContentHandler; pub fn is_valid(request: &server::Request, allowed_hosts: &[String], endpoints: Vec) -> bool { let mut endpoints = endpoints.iter() .map(|endpoint| format!("{}{}", endpoint, DAPPS_DOMAIN)) .collect::>(); endpoints.extend_from_slice(allowed_hosts); is_host_header_valid(request, &endpoints) } pub fn host_invalid_response() -> Box + Send> { Box::new(ContentHandler::forbidden( r#"

Request with disallowed Host header has been blocked.

Check the URL in your browser address bar.

"#.into(), "text/html".into() )) }