Return the correct value if we're asked for this node's public hostname or

port.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4829 542714f4-19e9-0310-aa3c-eee0fc999fb1
This commit is contained in:
Michael Bayne
2007-09-20 01:49:56 +00:00
parent c0ead54dbe
commit 400a42930b
@@ -179,14 +179,14 @@ public class PeerManager
_nodeobj.setNodeName(nodeName); _nodeobj.setNodeName(nodeName);
// register ourselves with the node table // register ourselves with the node table
final NodeRecord record = new NodeRecord( _self = new NodeRecord(
_nodeName, hostName, (publicHostName == null) ? hostName : publicHostName, port); _nodeName, hostName, (publicHostName == null) ? hostName : publicHostName, port);
_invoker.postUnit(new Invoker.Unit("registerNode") { _invoker.postUnit(new Invoker.Unit("registerNode") {
public boolean invoke () { public boolean invoke () {
try { try {
_noderepo.updateNode(record); _noderepo.updateNode(_self);
} catch (PersistenceException pe) { } catch (PersistenceException pe) {
log.warning("Failed to register node record [rec=" + record + log.warning("Failed to register node record [rec=" + _self +
", error=" + pe + "]."); ", error=" + pe + "].");
} }
return false; return false;
@@ -376,6 +376,9 @@ public class PeerManager
*/ */
public String getPeerPublicHostName (String nodeName) public String getPeerPublicHostName (String nodeName)
{ {
if (_nodeName.equals(nodeName)) {
return _self.publicHostName;
}
PeerNode peer = _peers.get(nodeName); PeerNode peer = _peers.get(nodeName);
return (peer == null) ? null : peer.getPublicHostName(); return (peer == null) ? null : peer.getPublicHostName();
} }
@@ -386,6 +389,9 @@ public class PeerManager
*/ */
public int getPeerPort (String nodeName) public int getPeerPort (String nodeName)
{ {
if (_nodeName.equals(nodeName)) {
return _self.port;
}
PeerNode peer = _peers.get(nodeName); PeerNode peer = _peers.get(nodeName);
return (peer == null) ? -1 : peer.getPort(); return (peer == null) ? -1 : peer.getPort();
} }
@@ -1091,6 +1097,7 @@ public class PeerManager
} }
protected String _nodeName, _sharedSecret; protected String _nodeName, _sharedSecret;
protected NodeRecord _self;
protected Invoker _invoker; protected Invoker _invoker;
protected NodeRepository _noderepo; protected NodeRepository _noderepo;
protected NodeObject _nodeobj; protected NodeObject _nodeobj;