Skip to content
Snippets Groups Projects
Commit ad71463c authored by Damon Kohler's avatar Damon Kohler
Browse files

Adds a couple null checks to the subscriber handshake.

parent 7d075e6a
Branches
Tags
No related merge requests found
...@@ -16,6 +16,8 @@ ...@@ -16,6 +16,8 @@
package org.ros.internal.node.topic; package org.ros.internal.node.topic;
import com.google.common.base.Preconditions;
import org.apache.commons.logging.Log; import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory; import org.apache.commons.logging.LogFactory;
import org.ros.internal.node.BaseClientHandshake; import org.ros.internal.node.BaseClientHandshake;
...@@ -34,6 +36,9 @@ public class SubscriberHandshake extends BaseClientHandshake { ...@@ -34,6 +36,9 @@ public class SubscriberHandshake extends BaseClientHandshake {
public SubscriberHandshake(ConnectionHeader outgoingConnectionHeader) { public SubscriberHandshake(ConnectionHeader outgoingConnectionHeader) {
super(outgoingConnectionHeader); super(outgoingConnectionHeader);
Preconditions.checkNotNull(outgoingConnectionHeader.getField(ConnectionHeaderFields.TYPE));
Preconditions.checkNotNull(outgoingConnectionHeader
.getField(ConnectionHeaderFields.MD5_CHECKSUM));
} }
@Override @Override
...@@ -43,12 +48,18 @@ public class SubscriberHandshake extends BaseClientHandshake { ...@@ -43,12 +48,18 @@ public class SubscriberHandshake extends BaseClientHandshake {
log.info("Incoming publisher connection header: " + incommingConnectionHeader); log.info("Incoming publisher connection header: " + incommingConnectionHeader);
} }
setErrorMessage(incommingConnectionHeader.getField(ConnectionHeaderFields.ERROR)); setErrorMessage(incommingConnectionHeader.getField(ConnectionHeaderFields.ERROR));
if (!incommingConnectionHeader.getField(ConnectionHeaderFields.TYPE).equals( String incomingType = incommingConnectionHeader.getField(ConnectionHeaderFields.TYPE);
outgoingConnectionHeader.getField(ConnectionHeaderFields.TYPE))) { if (incomingType == null) {
setErrorMessage("Incoming type cannot be null.");
} else if (!incomingType.equals(outgoingConnectionHeader.getField(ConnectionHeaderFields.TYPE))) {
setErrorMessage("Message types don't match."); setErrorMessage("Message types don't match.");
} }
if (!incommingConnectionHeader.getField(ConnectionHeaderFields.MD5_CHECKSUM).equals( String incomingMd5Checksum =
outgoingConnectionHeader.getField(ConnectionHeaderFields.MD5_CHECKSUM))) { incommingConnectionHeader.getField(ConnectionHeaderFields.MD5_CHECKSUM);
if (incomingMd5Checksum == null) {
setErrorMessage("Incoming MD5 checksum cannot be null.");
} else if (!incomingMd5Checksum.equals(outgoingConnectionHeader
.getField(ConnectionHeaderFields.MD5_CHECKSUM))) {
setErrorMessage("Checksums don't match."); setErrorMessage("Checksums don't match.");
} }
return getErrorMessage() == null; return getErrorMessage() == null;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment