Optimization in SSDP

This commit is contained in:
Ziver Koc 2015-10-29 13:09:35 +01:00
parent 0956e4aee3
commit 5fa807e50b
4 changed files with 13 additions and 6 deletions

View file

@ -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() ){

View file

@ -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));

View file

@ -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");

View file

@ -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) ){