diff --git a/htroot/opensearchdescription.java b/htroot/opensearchdescription.java index 59a594ade..1e2444e8e 100644 --- a/htroot/opensearchdescription.java +++ b/htroot/opensearchdescription.java @@ -25,6 +25,7 @@ // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA import net.yacy.cora.protocol.Domains; +import net.yacy.cora.protocol.HeaderFramework; import net.yacy.cora.protocol.RequestHeader; import net.yacy.search.Switchboard; import net.yacy.search.SwitchboardConstants; @@ -39,7 +40,7 @@ public class opensearchdescription { String promoteSearchPageGreeting = env.getConfig(SwitchboardConstants.GREETING, ""); if (env.getConfigBool(SwitchboardConstants.GREETING_NETWORK_NAME, false)) promoteSearchPageGreeting = env.getConfig("network.unit.description", ""); - String thisaddress = header.get("Host"); // returns host:port (if not defalt http/https ports) + String thisaddress = header.get(HeaderFramework.HOST); // returns host:port (if not default http/https ports) String thisprotocol = "http"; if (thisaddress == null) { thisaddress = Domains.LOCALHOST + ":" + sb.getConfig("port", "8090"); @@ -49,6 +50,9 @@ public class opensearchdescription { thisprotocol = "https"; } } + /* YaCyDefaultServelt should have filled this custom header, making sure we know here wether original request is http or https + * (when default ports (80 and 443) are used, there is no way to distinguish the two schemes relying only on the Host header) */ + thisprotocol = header.get(HeaderFramework.X_YACY_REQUEST_SCHEME, thisprotocol); final serverObjects prop = new serverObjects(); prop.put("compareyacy", post != null && post.getBoolean("compare_yacy") ? 1 : 0); diff --git a/source/net/yacy/cora/protocol/HeaderFramework.java b/source/net/yacy/cora/protocol/HeaderFramework.java index 2aef01f6e..3c0f1fe62 100644 --- a/source/net/yacy/cora/protocol/HeaderFramework.java +++ b/source/net/yacy/cora/protocol/HeaderFramework.java @@ -113,6 +113,8 @@ public class HeaderFramework extends TreeMap implements Map