Add CLI for viewing FPM connections.
Change-Id: I7e9e320b662a826cd2c0d49477b45110094d8e79
diff --git a/apps/routing/src/main/java/org/onosproject/routing/fpm/FpmSessionHandler.java b/apps/routing/src/main/java/org/onosproject/routing/fpm/FpmSessionHandler.java
index 95ce760..5fd2533 100644
--- a/apps/routing/src/main/java/org/onosproject/routing/fpm/FpmSessionHandler.java
+++ b/apps/routing/src/main/java/org/onosproject/routing/fpm/FpmSessionHandler.java
@@ -35,7 +35,7 @@
private static Logger log = LoggerFactory.getLogger(FpmSessionHandler.class);
- private final FpmMessageListener fpmListener;
+ private final FpmListener fpmListener;
private Channel channel;
@@ -44,7 +44,7 @@
*
* @param fpmListener listener for FPM messages
*/
- public FpmSessionHandler(FpmMessageListener fpmListener) {
+ public FpmSessionHandler(FpmListener fpmListener) {
this.fpmListener = checkNotNull(fpmListener);
}
@@ -59,26 +59,27 @@
public void exceptionCaught(ChannelHandlerContext ctx, ExceptionEvent e)
throws Exception {
log.error("Exception thrown while handling FPM message", e.getCause());
- channel.close();
+ if (channel != null) {
+ channel.close();
+ }
handleDisconnect();
}
@Override
public void channelOpen(ChannelHandlerContext ctx, ChannelStateEvent e)
throws Exception {
- if (this.channel != null) {
+ if (!fpmListener.peerConnected(ctx.getChannel().getRemoteAddress())) {
log.error("Received new FPM connection while already connected");
ctx.getChannel().close();
return;
}
- this.channel = ctx.getChannel();
+ channel = ctx.getChannel();
}
@Override
public void channelConnected(ChannelHandlerContext ctx, ChannelStateEvent e)
throws Exception {
- super.channelConnected(ctx, e);
}
@Override
@@ -94,6 +95,7 @@
}
private void handleDisconnect() {
- this.channel = null;
+ fpmListener.peerDisconnected(channel.getRemoteAddress());
+ channel = null;
}
}