From de2bb1bc9fa3959846741e1fd14076971e17b90c Mon Sep 17 00:00:00 2001 From: Elonen Date: Sun, 17 May 2015 01:16:35 +0300 Subject: Require HTTP version 1.1, throw an exception otherwise. Closes #46 --- core/src/main/java/fi/iki/elonen/NanoHTTPD.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'core/src/main/java') diff --git a/core/src/main/java/fi/iki/elonen/NanoHTTPD.java b/core/src/main/java/fi/iki/elonen/NanoHTTPD.java index c529e8a..372d8f3 100644 --- a/core/src/main/java/fi/iki/elonen/NanoHTTPD.java +++ b/core/src/main/java/fi/iki/elonen/NanoHTTPD.java @@ -533,7 +533,11 @@ public abstract class NanoHTTPD { // followed by HTTP headers. Ignore version but parse headers. // NOTE: this now forces header names lower case since they are // case insensitive and vary by client. - if (!st.hasMoreTokens()) { + if (st.hasMoreTokens()) { + if (!st.nextToken().equals("HTTP/1.1")) { + throw new ResponseException(Response.Status.UNSUPPORTED_HTTP_VERSION, "Only HTTP/1.1 is supported."); + } + } else { NanoHTTPD.LOG.log(Level.FINE, "no protocol version specified, strange.."); } String line = in.readLine(); @@ -1066,7 +1070,8 @@ public abstract class NanoHTTPD { NOT_FOUND(404, "Not Found"), METHOD_NOT_ALLOWED(405, "Method Not Allowed"), RANGE_NOT_SATISFIABLE(416, "Requested Range Not Satisfiable"), - INTERNAL_ERROR(500, "Internal Server Error"); + INTERNAL_ERROR(500, "Internal Server Error"), + UNSUPPORTED_HTTP_VERSION(505, "HTTP Version Not Supported"); private final int requestStatus; -- cgit v1.2.3