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,6 +262,9 @@ public class HttpHeaderParser {
StringBuilder tmp = new StringBuilder(); StringBuilder tmp = new StringBuilder();
tmp.append("{Type: ").append(type); tmp.append("{Type: ").append(type);
tmp.append(", HTTP_version: HTTP/").append(version); tmp.append(", HTTP_version: HTTP/").append(version);
if(url == null)
tmp.append(", URL: null");
else
tmp.append(", URL: \"").append(url).append('\"'); tmp.append(", URL: \"").append(url).append('\"');
tmp.append(", URL_attr: { "); tmp.append(", URL_attr: { ");

View file

@ -321,6 +321,9 @@ public class HttpPrintStream extends OutputStream{
if (res_status_code != null) { if (res_status_code != null) {
if (message_type == HttpMessageType.REQUEST) { if (message_type == HttpMessageType.REQUEST) {
str.append(", req_type: ").append(req_type); str.append(", req_type: ").append(req_type);
if(req_url == null)
str.append(", req_url: null");
else
str.append(", req_url: \"").append(req_url).append('\"'); str.append(", req_url: \"").append(req_url).append('\"');
} else { } else {
str.append(", status_code: ").append(res_status_code); str.append(", status_code: ").append(res_status_code);

View file

@ -178,7 +178,8 @@ public class SSDPClient extends ThreadedUDPNetwork implements ThreadedUDPNetwork
* Location: http://localhost:80 * Location: http://localhost:80
*/ */
public void receivedPacket(DatagramPacket packet, ThreadedUDPNetwork network) { 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); logger.log(Level.FINEST, "Received(from: "+packet.getAddress()+"): "+ header);
String usn = header.getHeader("USN"); String usn = header.getHeader("USN");

View file

@ -24,6 +24,7 @@
package zutil.net.ssdp; package zutil.net.ssdp;
import zutil.StringUtil;
import zutil.io.StringOutputStream; import zutil.io.StringOutputStream;
import zutil.log.LogUtil; import zutil.log.LogUtil;
import zutil.net.http.HttpHeaderParser; import zutil.net.http.HttpHeaderParser;
@ -166,8 +167,7 @@ public class SSDPServer extends ThreadedUDPNetwork implements ThreadedUDPNetwork
*/ */
public void receivedPacket(DatagramPacket packet, ThreadedUDPNetwork network) { public void receivedPacket(DatagramPacket packet, ThreadedUDPNetwork network) {
try { try {
String msg = new String( packet.getData() ); String msg = new String( packet.getData(), packet.getOffset(), packet.getLength() );
HttpHeaderParser header = new HttpHeaderParser( msg ); HttpHeaderParser header = new HttpHeaderParser( msg );
// ******* Respond // ******* Respond
@ -175,7 +175,7 @@ public class SSDPServer extends ThreadedUDPNetwork implements ThreadedUDPNetwork
if( header.getRequestType() != null && header.getRequestType().equalsIgnoreCase("M-SEARCH") ){ if( header.getRequestType() != null && header.getRequestType().equalsIgnoreCase("M-SEARCH") ){
String man = header.getHeader("Man"); String man = header.getHeader("Man");
if(man != null) if(man != null)
man = man.replace("\"", ""); man = StringUtil.trim(man, '\"');
String st = header.getHeader("ST"); String st = header.getHeader("ST");
// Check that its the correct URL and that its an ssdp:discover message // Check that its the correct URL and that its an ssdp:discover message
if( header.getRequestURL().equals("*") && "ssdp:discover".equalsIgnoreCase(man) ){ if( header.getRequestURL().equals("*") && "ssdp:discover".equalsIgnoreCase(man) ){