mirror of
https://github.com/Qortal/altcoinj.git
synced 2025-02-07 06:44:16 +00:00
Fix a class casting bug that isn't picked up by the unit tests as they don't use a real socket. Due to the move to embedded handlers during code review.
This commit is contained in:
parent
567fccbf8a
commit
f018e2956e
@ -561,9 +561,12 @@ public class PeerGroup {
|
||||
*/
|
||||
public ChannelFuture connectTo(SocketAddress address) {
|
||||
ChannelFuture future = bootstrap.connect(address);
|
||||
TCPNetworkConnection connection = (TCPNetworkConnection)future.getChannel().getPipeline().get("codec");
|
||||
if (connection != null)
|
||||
connection.setRemoteAddress(address);
|
||||
TCPNetworkConnection.NetworkHandler networkHandler =
|
||||
(TCPNetworkConnection.NetworkHandler) future.getChannel().getPipeline().get("codec");
|
||||
if (networkHandler != null) {
|
||||
// This can be null in unit tests or apps that don't use TCP connections.
|
||||
networkHandler.getOwnerObject().setRemoteAddress(address);
|
||||
}
|
||||
Peer peer = peerFromChannelFuture(future);
|
||||
channelFutures.put(peer, future);
|
||||
return future;
|
||||
|
@ -16,14 +16,6 @@
|
||||
|
||||
package com.google.bitcoin.core;
|
||||
|
||||
import static org.jboss.netty.channel.Channels.write;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.net.InetAddress;
|
||||
import java.net.InetSocketAddress;
|
||||
import java.net.SocketAddress;
|
||||
import java.util.Date;
|
||||
|
||||
import org.jboss.netty.buffer.ChannelBuffer;
|
||||
import org.jboss.netty.buffer.ChannelBufferInputStream;
|
||||
import org.jboss.netty.buffer.ChannelBufferOutputStream;
|
||||
@ -34,6 +26,14 @@ import org.jboss.netty.handler.codec.replay.VoidEnum;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.net.InetAddress;
|
||||
import java.net.InetSocketAddress;
|
||||
import java.net.SocketAddress;
|
||||
import java.util.Date;
|
||||
|
||||
import static org.jboss.netty.channel.Channels.write;
|
||||
|
||||
/**
|
||||
* A {@code TCPNetworkConnection} is used for connecting to a Bitcoin node over the standard TCP/IP protocol.<p>
|
||||
*
|
||||
@ -173,6 +173,10 @@ public class TCPNetworkConnection {
|
||||
serializer.serialize(message, new ChannelBufferOutputStream(buffer));
|
||||
write(ctx, e.getFuture(), buffer, e.getRemoteAddress());
|
||||
}
|
||||
|
||||
public TCPNetworkConnection getOwnerObject() {
|
||||
return TCPNetworkConnection.this;
|
||||
}
|
||||
}
|
||||
|
||||
/** Returns the Netty Pipeline stage handling Bitcoin serialization for this connection. */
|
||||
|
Loading…
Reference in New Issue
Block a user