diff --git a/Foundation Web Core/.classpath b/Foundation Web Core/.classpath
index a7166bb..e3d6436 100644
--- a/Foundation Web Core/.classpath
+++ b/Foundation Web Core/.classpath
@@ -4,11 +4,11 @@
-
+
diff --git a/Foundation Web Core/src/com/foundation/web/server/NetworkListener.java b/Foundation Web Core/src/com/foundation/web/server/NetworkListener.java
index bebf097..3e3d3d4 100644
--- a/Foundation Web Core/src/com/foundation/web/server/NetworkListener.java
+++ b/Foundation Web Core/src/com/foundation/web/server/NetworkListener.java
@@ -238,7 +238,7 @@ public void run() {
}//else if//
else {
//This shouldn't be called I don't think.//
- Debug.log(new RuntimeException("Woops! Somehow we aren't closed and we didn't setup the interestOps for the HTTP socket!"));
+ Debug.log(new RuntimeException("Woops! Somehow we aren't closed and we didn't setup the interestOps for the HTTP socket! {" + context.toString() + "}"));
}//else//
}//finally//
}//run()//
diff --git a/Foundation Web Core/src/com/foundation/web/server/SocketContext.java b/Foundation Web Core/src/com/foundation/web/server/SocketContext.java
index dd846a5..b7f6b7f 100644
--- a/Foundation Web Core/src/com/foundation/web/server/SocketContext.java
+++ b/Foundation Web Core/src/com/foundation/web/server/SocketContext.java
@@ -1259,32 +1259,36 @@ private boolean processRequestedHost(ByteBuffer fragment) throws IOException {
totalHeaderSize++;
}//while//
- //If we have the minimum number of bytes and the last bytes are a line end, then check the line for "Host: xxxxxxx\r\n"
- String line = buffer.toString().substring(0, buffer.length() - 2).trim();
- if(line.startsWith("Host: ")) {
- int colonIndex;
+ //If we have a full line...
+ if(buffer.length() > 1 && (buffer.charAt(buffer.length() - 2) == '\r') && (buffer.charAt(buffer.length() - 1) == '\n')) {
+ //If we have the minimum number of bytes and the last bytes are a line end, then check the line for "Host: xxxxxxx\r\n"
+ String line = buffer.toString().substring(0, buffer.length() - 2).trim();
- host = line.substring(6).trim();
- colonIndex = host.indexOf(':');
+ if(line.startsWith("Host: ")) {
+ int colonIndex;
+
+ host = line.substring(6).trim();
+ colonIndex = host.indexOf(':');
+
+ if(colonIndex > 0) {
+ host = host.substring(0, colonIndex);
+ }//if//
+ }//if//
- if(colonIndex > 0) {
- host = host.substring(0, colonIndex);
+ if(host == null) {
+ if(buffer.length() == 2) {
+ //End of the header reached. No host provided. Kill the connection?//
+ //Force the connection to the client to be closed.//
+ close();
+ //Throw an exception that should not be logged. This happens occationally when an attacker tries to exploit any header reading weaknesses (all major browsers send a host header).//
+ throw new IgnoredIOException(null);
+ }//if//
+ else {
+ //Clear the line.//
+ buffer.setLength(0);
+ }//else//
}//if//
}//if//
-
- if(host == null) {
- if(buffer.length() == 2) {
- //End of the header reached. No host provided. Kill the connection?//
- //Force the connection to the client to be closed.//
- close();
- //Throw an exception that should not be logged. This happens occationally when an attacker tries to exploit any header reading weaknesses (all major browsers send a host header).//
- throw new IgnoredIOException(null);
- }//if//
- else {
- //Clear the line.//
- buffer.setLength(0);
- }//else//
- }//if//
}//while//
//If we found the complete first line of the header before running out of bytes, then identify the application.//
@@ -2237,4 +2241,10 @@ private int indexOf(byte[] source, byte[] pattern, int fromOffset) {
return result;
}//indexOf()//
+/* (non-Javadoc)
+ * @see java.lang.Object#toString()
+ */
+public String toString() {
+ return "Domain: " + domain + "; SSL: " + (sslEngine != null) + "; Websocket: " + isWebsocket;
+}//toString()//
}//SocketContext//
\ No newline at end of file
diff --git a/Foundation Web Server Manager/.classpath b/Foundation Web Server Manager/.classpath
index 6947322..e40aa63 100644
--- a/Foundation Web Server Manager/.classpath
+++ b/Foundation Web Server Manager/.classpath
@@ -9,7 +9,7 @@
-
+