diff --git a/src/zutil/net/http/HttpHeaderParser.java b/src/zutil/net/http/HttpHeaderParser.java index 88977a8..b3e8309 100755 --- a/src/zutil/net/http/HttpHeaderParser.java +++ b/src/zutil/net/http/HttpHeaderParser.java @@ -262,7 +262,10 @@ public class HttpHeaderParser { StringBuilder tmp = new StringBuilder(); tmp.append("{Type: ").append(type); tmp.append(", HTTP_version: HTTP/").append(version); - tmp.append(", URL: \"").append(url).append('\"'); + if(url == null) + tmp.append(", URL: null"); + else + tmp.append(", URL: \"").append(url).append('\"'); tmp.append(", URL_attr: { "); for( String key : url_attr.keySet() ){ diff --git a/src/zutil/net/http/HttpPrintStream.java b/src/zutil/net/http/HttpPrintStream.java index afe210d..dd865d0 100755 --- a/src/zutil/net/http/HttpPrintStream.java +++ b/src/zutil/net/http/HttpPrintStream.java @@ -321,7 +321,10 @@ public class HttpPrintStream extends OutputStream{ if (res_status_code != null) { if (message_type == HttpMessageType.REQUEST) { str.append(", req_type: ").append(req_type); - str.append(", req_url: \"").append(req_url).append('\"'); + if(req_url == null) + str.append(", req_url: null"); + else + str.append(", req_url: \"").append(req_url).append('\"'); } else { str.append(", status_code: ").append(res_status_code); str.append(", status_str: ").append(getStatusString(res_status_code)); diff --git a/src/zutil/net/ssdp/SSDPClient.java b/src/zutil/net/ssdp/SSDPClient.java index 7406a4c..a2517e4 100755 --- a/src/zutil/net/ssdp/SSDPClient.java +++ b/src/zutil/net/ssdp/SSDPClient.java @@ -178,7 +178,8 @@ public class SSDPClient extends ThreadedUDPNetwork implements ThreadedUDPNetwork * Location: http://localhost:80 */ public void receivedPacket(DatagramPacket packet, ThreadedUDPNetwork network) { - HttpHeaderParser header = new HttpHeaderParser( new String( packet.getData() ) ); + String msg = new String(packet.getData(), packet.getOffset(), packet.getLength()); + HttpHeaderParser header = new HttpHeaderParser( msg ); logger.log(Level.FINEST, "Received(from: "+packet.getAddress()+"): "+ header); String usn = header.getHeader("USN"); diff --git a/src/zutil/net/ssdp/SSDPServer.java b/src/zutil/net/ssdp/SSDPServer.java index a6cc1c4..16e55bc 100755 --- a/src/zutil/net/ssdp/SSDPServer.java +++ b/src/zutil/net/ssdp/SSDPServer.java @@ -24,6 +24,7 @@ package zutil.net.ssdp; +import zutil.StringUtil; import zutil.io.StringOutputStream; import zutil.log.LogUtil; import zutil.net.http.HttpHeaderParser; @@ -166,8 +167,7 @@ public class SSDPServer extends ThreadedUDPNetwork implements ThreadedUDPNetwork */ public void receivedPacket(DatagramPacket packet, ThreadedUDPNetwork network) { try { - String msg = new String( packet.getData() ); - + String msg = new String( packet.getData(), packet.getOffset(), packet.getLength() ); HttpHeaderParser header = new HttpHeaderParser( msg ); // ******* Respond @@ -175,7 +175,7 @@ public class SSDPServer extends ThreadedUDPNetwork implements ThreadedUDPNetwork if( header.getRequestType() != null && header.getRequestType().equalsIgnoreCase("M-SEARCH") ){ String man = header.getHeader("Man"); if(man != null) - man = man.replace("\"", ""); + man = StringUtil.trim(man, '\"'); String st = header.getHeader("ST"); // Check that its the correct URL and that its an ssdp:discover message if( header.getRequestURL().equals("*") && "ssdp:discover".equalsIgnoreCase(man) ){