Skip to content

Commit e29cb2e

Browse files
committed
Added some null checks and corrected port number for udp port.
1 parent 88b9180 commit e29cb2e

2 files changed

Lines changed: 39 additions & 27 deletions

File tree

example-games/src/test/java/org/menacheri/zombie/DefenderHandler.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ public void connectUDP(IEvent event)
118118
ChannelBuffer buffer = (ChannelBuffer)event.getSource();
119119
InetSocketAddress address = NettyUtils.readSocketAddress(buffer);
120120
final DatagramChannel c = clients.get(address);
121-
if(null != udpClient)
121+
if ((udpClient != null) && (c != null))
122122
{
123123
System.out.println("Going to connect UDP in DefenderHandler");
124124
// Connect the UDP

example-games/src/test/java/org/menacheri/zombie/ZombieHandler.java

Lines changed: 38 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -21,89 +21,101 @@
2121
import org.menacheri.util.NettyUtils;
2222
import org.menacheri.zombie.domain.IAM;
2323

24-
2524
public class ZombieHandler extends SimpleChannelUpstreamHandler
2625
{
2726
private static final IAM iam = IAM.ZOMBIE;
2827
private static final Map<InetSocketAddress, DatagramChannel> clients = new HashMap<InetSocketAddress, DatagramChannel>();
2928
private UDPClient udpClient;
30-
29+
3130
public ZombieHandler()
3231
{
33-
udpClient = new UDPClient(this,iam,"255.255.255.255",8090,DefenderHandler.getService());
32+
udpClient = new UDPClient(this, iam, "255.255.255.255", 18090,
33+
DefenderHandler.getService());
3434
}
35+
3536
@Override
3637
public void messageReceived(ChannelHandlerContext ctx, MessageEvent e)
3738
throws Exception
3839
{
3940
Object message = e.getMessage();
40-
if(message instanceof IEvent)
41+
if (message instanceof IEvent)
4142
{
42-
IEvent event = (IEvent)message;
43-
if(Events.START == event.getType())
43+
IEvent event = (IEvent) message;
44+
if (Events.START == event.getType())
4445
{
4546
loginUDP(e.getChannel());
46-
WriteByte write = new WriteByte(e.getChannel(),null, IAM.ZOMBIE);
47-
DefenderHandler.getService().scheduleAtFixedRate(write,2000l,500l,TimeUnit.MILLISECONDS);
47+
WriteByte write = new WriteByte(e.getChannel(), null,
48+
IAM.ZOMBIE);
49+
DefenderHandler.getService().scheduleAtFixedRate(write, 2000l,
50+
500l, TimeUnit.MILLISECONDS);
4851
}
49-
else if(Events.LOG_IN_SUCCESS == event.getType())
52+
else if (Events.LOG_IN_SUCCESS == event.getType())
5053
{
5154
connectUDP(event);
5255
}
53-
else if(Events.SERVER_OUT_UDP == event.getType())
56+
else if (Events.SERVER_OUT_UDP == event.getType())
5457
{
55-
ChannelBuffer buffer = (ChannelBuffer)event.getSource();
56-
if(buffer.readableBytes() >= 4)
58+
ChannelBuffer buffer = (ChannelBuffer) event.getSource();
59+
if (buffer.readableBytes() >= 4)
5760
{
58-
System.out.println("UDP event from server in ZombieHandler: " + buffer.readInt());
61+
System.out
62+
.println("UDP event from server in ZombieHandler: "
63+
+ buffer.readInt());
5964
}
6065
else
6166
{
62-
System.out.println("UDP Event does not have expected data in ZombieHandler");
67+
System.out
68+
.println("UDP Event does not have expected data in ZombieHandler");
6369
}
6470
}
6571
else
6672
{
6773
super.messageReceived(ctx, e);
6874
}
6975
}
70-
76+
7177
}
72-
78+
7379
public void loginUDP(Channel channel) throws UnknownHostException
7480
{
75-
ChannelBuffer opCode = NettyUtils.createBufferForOpcode(Events.LOG_IN_UDP);
81+
ChannelBuffer opCode = NettyUtils
82+
.createBufferForOpcode(Events.LOG_IN_UDP);
7683
final DatagramChannel c = udpClient.createDatagramChannel();
7784
final InetSocketAddress localAddress = udpClient.getLocalAddress(c);
78-
ChannelBuffer hostName = NettyUtils.writeString(localAddress.getHostName());
85+
ChannelBuffer hostName = NettyUtils.writeString(localAddress
86+
.getHostName());
7987
ChannelBuffer portNum = ChannelBuffers.buffer(4);
8088
portNum.writeInt(localAddress.getPort());
81-
ChannelBuffer login = ChannelBuffers.wrappedBuffer(opCode,hostName,portNum);
89+
ChannelBuffer login = ChannelBuffers.wrappedBuffer(opCode, hostName,
90+
portNum);
8291
ChannelFuture loginFuture = channel.write(login);
8392
loginFuture.addListener(new ChannelFutureListener()
8493
{
8594
@Override
86-
public void operationComplete(ChannelFuture future) throws Exception
95+
public void operationComplete(ChannelFuture future)
96+
throws Exception
8797
{
88-
if(future.isSuccess())
98+
if (future.isSuccess())
8999
{
90100
clients.put(localAddress, c);
91101
}
92102
else
93103
{
94-
System.out.println("Sending UDP login from ZombieHandler was a failure.");
104+
System.out
105+
.println("Sending UDP login from ZombieHandler was a failure.");
95106
}
96107
}
97108
});
98109
loginFuture.awaitUninterruptibly();
99110
}
100-
111+
101112
public void connectUDP(IEvent event)
102113
{
103-
ChannelBuffer buffer = (ChannelBuffer)event.getSource();
114+
ChannelBuffer buffer = (ChannelBuffer) event.getSource();
104115
InetSocketAddress address = NettyUtils.readSocketAddress(buffer);
116+
System.out.println("UDP address for connect UDP: " + address);
105117
final DatagramChannel c = clients.get(address);
106-
if(null != udpClient)
118+
if ((udpClient != null) && (c != null))
107119
{
108120
// Connect the UDP
109121
System.out.println("Going to connect UDP in ZombieHandler");
@@ -118,7 +130,7 @@ public void run()
118130
DefenderHandler.getService().submit(runnable);
119131
}
120132
}
121-
133+
122134
@Override
123135
public void exceptionCaught(ChannelHandlerContext ctx, ExceptionEvent e)
124136
throws Exception

0 commit comments

Comments
 (0)