Author: nextgens
Date: 2006-01-18 00:01:15 +0000 (Wed, 18 Jan 2006)
New Revision: 7870
Modified:
trunk/freenet/src/freenet/io/comm/DummyPeerContext.java
trunk/freenet/src/freenet/io/comm/Peer.java
trunk/freenet/src/freenet/io/comm/PeerContext.java
trunk/freenet/src/freenet/io/xfer/BlockTransmitter.java
trunk/freenet/src/freenet/node/CHKInsertSender.java
trunk/freenet/src/freenet/node/FNPPacketMangler.java
trunk/freenet/src/freenet/node/KeyTracker.java
trunk/freenet/src/freenet/node/Node.java
trunk/freenet/src/freenet/node/NodeDispatcher.java
trunk/freenet/src/freenet/node/NodePinger.java
trunk/freenet/src/freenet/node/PeerManager.java
trunk/freenet/src/freenet/node/PeerNode.java
trunk/freenet/src/freenet/node/SSKInsertSender.java
trunk/freenet/src/freenet/node/TextModeClientInterface.java
trunk/freenet/src/freenet/node/Version.java
Log:
360: MANDATORY
Now we store a hostname into node's reference so that the node will still be
able to reach a natted peer, even if they have both changed their IPs.
Modified: trunk/freenet/src/freenet/io/comm/DummyPeerContext.java
===================================================================
--- trunk/freenet/src/freenet/io/comm/DummyPeerContext.java 2006-01-17
14:11:10 UTC (rev 7869)
+++ trunk/freenet/src/freenet/io/comm/DummyPeerContext.java 2006-01-18
00:01:15 UTC (rev 7870)
@@ -10,7 +10,7 @@
private final Peer peer;
- public Peer getPeer() {
+ public Peer getDetectedPeer() {
return peer;
}
Modified: trunk/freenet/src/freenet/io/comm/Peer.java
===================================================================
--- trunk/freenet/src/freenet/io/comm/Peer.java 2006-01-17 14:11:10 UTC (rev
7869)
+++ trunk/freenet/src/freenet/io/comm/Peer.java 2006-01-18 00:01:15 UTC (rev
7870)
@@ -35,6 +35,7 @@
public static final String VERSION = "$Id: Peer.java,v 1.4 2005/08/25
17:28:19 amphibian Exp $";
private final InetAddress _address;
+ private final InetAddress _nominal_address;
private final int _port;
// Create a null peer
@@ -47,11 +48,13 @@
dis.readFully(ba);
_address = InetAddress.getByAddress(ba);
_port = dis.readInt();
+ _nominal_address=_address;
}
public Peer(InetAddress address, int port) {
_address = address;
_port = port;
+ _nominal_address=_address;
}
/**
@@ -72,7 +75,34 @@
} catch (NumberFormatException e) {
throw new PeerParseException(e);
}
+ _nominal_address=_address;
}
+
+ /**
+ * @param physicaln,hostname
+ */
+ public Peer(String physical, String hostname) throws PeerParseException {
+ int offset = physical.lastIndexOf(':'); // ipv6
+ if(offset < 0) throw new PeerParseException();
+ String before = physical.substring(0, offset);
+ String after = physical.substring(offset+1);
+ try {
+ _address = InetAddress.getByName(before);
+ } catch (UnknownHostException e) {
+ throw new PeerParseException(e);
+ }
+ try {
+ _port = Integer.parseInt(after);
+ } catch (NumberFormatException e) {
+ throw new PeerParseException(e);
+ }
+
+ try {
+ _nominal_address = InetAddress.getByName(hostname);
+ } catch (UnknownHostException e) {
+ throw new PeerParseException(e);
+ }
+ }
public boolean isNull() {
return _port == 0;
@@ -94,13 +124,21 @@
if (!_address.equals(peer._address)) {
return false;
}
+
+ if (!_nominal_address.equals(peer._nominal_address)) {
+ return false;
+ }
return true;
}
public InetAddress getAddress() {
return _address;
}
-
+
+ public InetAddress getHostname() {
+ return _nominal_address;
+ }
+
public int hashCode() {
return _address.hashCode() + _port;
}
Modified: trunk/freenet/src/freenet/io/comm/PeerContext.java
===================================================================
--- trunk/freenet/src/freenet/io/comm/PeerContext.java 2006-01-17 14:11:10 UTC
(rev 7869)
+++ trunk/freenet/src/freenet/io/comm/PeerContext.java 2006-01-18 00:01:15 UTC
(rev 7870)
@@ -8,7 +8,7 @@
*/
public interface PeerContext {
// Largely opaque interface for now
- Peer getPeer();
+ Peer getDetectedPeer();
/** Force the peer to disconnect */
void forceDisconnect();
Modified: trunk/freenet/src/freenet/io/xfer/BlockTransmitter.java
===================================================================
--- trunk/freenet/src/freenet/io/xfer/BlockTransmitter.java 2006-01-17
14:11:10 UTC (rev 7869)
+++ trunk/freenet/src/freenet/io/xfer/BlockTransmitter.java 2006-01-18
00:01:15 UTC (rev 7870)
@@ -104,7 +104,7 @@
Logger.error(this, "Aborted during setup");
// Will throw on running
}
- throttle = PacketThrottle.getThrottle(_destination.getPeer(),
_prb._packetSize);
+ throttle =
PacketThrottle.getThrottle(_destination.getDetectedPeer(), _prb._packetSize);
_senderThread = new Thread("_senderThread for "+_uid) {
public void run() {
Modified: trunk/freenet/src/freenet/node/CHKInsertSender.java
===================================================================
--- trunk/freenet/src/freenet/node/CHKInsertSender.java 2006-01-17 14:11:10 UTC
(rev 7869)
+++ trunk/freenet/src/freenet/node/CHKInsertSender.java 2006-01-18 00:01:15 UTC
(rev 7870)
@@ -43,7 +43,7 @@
this.pn = pn;
bt = new BlockTransmitter(node.usm, pn, uid, prb);
Sender s = new Sender(this);
- Thread senderThread = new Thread(s, "Sender for "+uid+" to
"+pn.getPeer());
+ Thread senderThread = new Thread(s, "Sender for "+uid+" to
"+pn.getDetectedPeer());
senderThread.setDaemon(true);
senderThread.start();
}
@@ -637,7 +637,7 @@
mf = m;
else
mf = m.or(mf);
- Logger.minor(this, "Waiting for
"+awc.pn.getPeer());
+ Logger.minor(this, "Waiting for
"+awc.pn.getDetectedPeer());
}
}
Modified: trunk/freenet/src/freenet/node/FNPPacketMangler.java
===================================================================
--- trunk/freenet/src/freenet/node/FNPPacketMangler.java 2006-01-17
14:11:10 UTC (rev 7869)
+++ trunk/freenet/src/freenet/node/FNPPacketMangler.java 2006-01-18
00:01:15 UTC (rev 7870)
@@ -941,7 +941,7 @@
* @throws WouldBlockException
*/
public void processOutgoing(byte[] buf, int offset, int length,
PeerContext peer) throws NotConnectedException, PacketSequenceException,
WouldBlockException {
- Logger.minor(this, "processOutgoing(buf, "+offset+", "+length+",
"+peer.getPeer());
+ Logger.minor(this, "processOutgoing(buf, "+offset+", "+length+",
"+peer.getDetectedPeer());
if(!(peer instanceof PeerNode))
throw new IllegalArgumentException();
PeerNode pn = (PeerNode)peer;
@@ -981,7 +981,7 @@
void processOutgoingPreformatted(byte[] buf, int offset, int length,
PeerNode peer, int k, AsyncMessageCallback[] callbacks) throws
NotConnectedException, PacketSequenceException, WouldBlockException {
while(true) {
try {
- Logger.minor(this, "At beginning of processOutgoingPreformatted
loop for "+peer.getPeer());
+ Logger.minor(this, "At beginning of processOutgoingPreformatted
loop for "+peer.getDetectedPeer());
KeyTracker tracker = peer.getCurrentKeyTracker();
if(tracker == null) {
Logger.normal(this, "Dropping packet: Not connected yet");
@@ -1092,7 +1092,7 @@
seqNumber =
tracker.allocateOutgoingPacketNumberNeverBlock();
}
- Logger.minor(this, "Sequence number (sending): "+seqNumber+"
("+packetNumber+") to "+tracker.pn.getPeer());
+ Logger.minor(this, "Sequence number (sending): "+seqNumber+"
("+packetNumber+") to "+tracker.pn.getDetectedPeer());
/** The last sent sequence number, so that we can refer to packets
* sent after this packet was originally sent (it may be a resend) */
@@ -1152,7 +1152,7 @@
int offsetSeq = otherSideSeqNumber - ackSeq;
if(offsetSeq > 255 || offsetSeq < 0)
throw new PacketSequenceException("bad ack offset "+offsetSeq+
- " - seqNumber="+otherSideSeqNumber+",
ackNumber="+ackSeq+" talking to "+tracker.pn.getPeer());
+ " - seqNumber="+otherSideSeqNumber+",
ackNumber="+ackSeq+" talking to "+tracker.pn.getDetectedPeer());
plaintext[ptr++] = (byte)offsetSeq;
}
@@ -1163,7 +1163,7 @@
int offsetSeq = otherSideSeqNumber - reqSeq;
if(offsetSeq > 255 || offsetSeq < 0)
throw new PacketSequenceException("bad resend request offset
"+offsetSeq+
- " - reqSeq="+reqSeq+",
otherSideSeqNumber="+otherSideSeqNumber+" talking to "+tracker.pn.getPeer());
+ " - reqSeq="+reqSeq+",
otherSideSeqNumber="+otherSideSeqNumber+" talking to
"+tracker.pn.getDetectedPeer());
plaintext[ptr++] = (byte)offsetSeq;
}
@@ -1177,7 +1177,7 @@
int offsetSeq = realSeqNumber - ackReqSeq;
if(offsetSeq > 255 || offsetSeq < 0)
throw new PacketSequenceException("bad ack requests offset:
"+offsetSeq+
- " - ackReqSeq="+ackReqSeq+",
packetNumber="+realSeqNumber+" talking to "+tracker.pn.getPeer());
+ " - ackReqSeq="+ackReqSeq+",
packetNumber="+realSeqNumber+" talking to "+tracker.pn.getDetectedPeer());
plaintext[ptr++] = (byte)offsetSeq;
}
@@ -1262,7 +1262,7 @@
Logger.minor(this,"Sending packet of length "+output.length+" to
"+kt.pn);
- usm.sendPacket(output, kt.pn.getPeer());
+ usm.sendPacket(output, kt.pn.getDetectedPeer());
kt.pn.sentPacket();
}
@@ -1281,7 +1281,8 @@
pn.setDHContext(ctx);
}
}
- sendFirstHalfDHPacket(0, ctx.getOurExponential(), pn, pn.getPeer());
+ for(int i=0;i<pn.getHandshakeIPs().length;i++)
+ sendFirstHalfDHPacket(0, ctx.getOurExponential(), pn,
pn.getHandshakeIPs()[i]);
pn.sentHandshake();
}
Modified: trunk/freenet/src/freenet/node/KeyTracker.java
===================================================================
--- trunk/freenet/src/freenet/node/KeyTracker.java 2006-01-17 14:11:10 UTC
(rev 7869)
+++ trunk/freenet/src/freenet/node/KeyTracker.java 2006-01-18 00:01:15 UTC
(rev 7870)
@@ -483,7 +483,7 @@
}
private PacketThrottle getThrottle() {
- return PacketThrottle.getThrottle(pn.getPeer(), Node.PACKET_SIZE);
+ return PacketThrottle.getThrottle(pn.getDetectedPeer(),
Node.PACKET_SIZE);
}
/**
Modified: trunk/freenet/src/freenet/node/Node.java
===================================================================
--- trunk/freenet/src/freenet/node/Node.java 2006-01-17 14:11:10 UTC (rev
7869)
+++ trunk/freenet/src/freenet/node/Node.java 2006-01-18 00:01:15 UTC (rev
7870)
@@ -150,7 +150,7 @@
byte[] identityHash;
/** Hash of hash of identity i.e. hash of setup key. */
byte[] identityHashHash;
- String myName;
+ String myName, myFQDN;
final LocationManager lm;
final PeerManager peers; // my peers
final RandomSource random; // strong RNG
@@ -210,9 +210,10 @@
br.close();
// Read contents
String physical = fs.get("physical.udp");
+ myFQDN = fs.get("hostname");
Peer myOldPeer;
try {
- myOldPeer = new Peer(physical);
+ myOldPeer = new Peer(physical, myFQDN);
} catch (PeerParseException e) {
IOException e1 = new IOException();
e1.initCause(e);
@@ -326,6 +327,8 @@
}
DiffieHellman.init(yarrow);
Node n = new Node(port, yarrow, overrideIP, "", 1000 /
packetsPerSecond, true, logger, 16384);
+ if(args.length > 1)
+ n.setFQDN(args[1]);
n.start(new StaticSwapRequestInterval(2000));
new TextModeClientInterface(n);
Thread t = new Thread(new MemoryChecker(), "Memory checker");
@@ -912,6 +915,7 @@
public SimpleFieldSet exportFieldSet() {
SimpleFieldSet fs = new SimpleFieldSet();
fs.put("physical.udp",
getPrimaryIPAddress().getHostAddress()+":"+portNumber);
+ fs.put("hostname", myFQDN );
fs.put("identity", HexUtil.bytesToHex(myIdentity));
fs.put("location", Double.toString(lm.getLocation().getValue()));
fs.put("version", Version.getVersionString());
@@ -923,6 +927,11 @@
Logger.minor(this, "My reference: "+fs);
return fs;
}
+
+ public void setFQDN(String name){
+ if(name!=null)
+ myFQDN=name;
+ }
InetAddress overrideIPAddress;
Modified: trunk/freenet/src/freenet/node/NodeDispatcher.java
===================================================================
--- trunk/freenet/src/freenet/node/NodeDispatcher.java 2006-01-17 14:11:10 UTC
(rev 7869)
+++ trunk/freenet/src/freenet/node/NodeDispatcher.java 2006-01-18 00:01:15 UTC
(rev 7870)
@@ -308,7 +308,7 @@
PeerNode next = node.peers.closerPeer(pn, ctx.routedTo,
ctx.notIgnored, target, true);
Logger.minor(this, "Next: "+next+" message: "+m);
if(next != null) {
- Logger.minor(this, "Forwarding "+m.getSpec()+" to
"+next.getPeer().getPort());
+ Logger.minor(this, "Forwarding "+m.getSpec()+" to
"+next.getDetectedPeer().getPort());
ctx.addSent(next);
try {
next.sendAsync(m, null);
Modified: trunk/freenet/src/freenet/node/NodePinger.java
===================================================================
--- trunk/freenet/src/freenet/node/NodePinger.java 2006-01-17 14:11:10 UTC
(rev 7869)
+++ trunk/freenet/src/freenet/node/NodePinger.java 2006-01-18 00:01:15 UTC
(rev 7870)
@@ -51,7 +51,7 @@
double avgPingTime = peer.averagePingTime();
double avgThrottledPacketSendTime =
peer.throttledPacketSendAverage.currentValue();
double value = Math.max(avgPingTime,
avgThrottledPacketSendTime);
- Logger.minor(this, "Peer: "+peer.getPeer()+",
avgPingTime: "+avgPingTime+", avg throttled send time:
"+avgThrottledPacketSendTime);
+ Logger.minor(this, "Peer: "+peer.getDetectedPeer()+",
avgPingTime: "+avgPingTime+", avg throttled send time:
"+avgThrottledPacketSendTime);
total *= value;
}
if(peerCount > 0) {
Modified: trunk/freenet/src/freenet/node/PeerManager.java
===================================================================
--- trunk/freenet/src/freenet/node/PeerManager.java 2006-01-17 14:11:10 UTC
(rev 7869)
+++ trunk/freenet/src/freenet/node/PeerManager.java 2006-01-18 00:01:15 UTC
(rev 7870)
@@ -191,7 +191,7 @@
*/
public PeerNode getByPeer(Peer peer) {
for(int i=0;i<myPeers.length;i++) {
- if(myPeers[i].getPeer().equals(peer))
+ if(myPeers[i].getDetectedPeer().equals(peer))
return myPeers[i];
}
return null;
@@ -347,25 +347,25 @@
for(int i=0;i<peers.length;i++) {
PeerNode p = peers[i];
if(routedTo.contains(p)) {
- Logger.minor(this, "Skipping (already routed to):
"+p.getPeer());
+ Logger.minor(this, "Skipping (already routed to):
"+p.getDetectedPeer());
continue;
}
if(p == pn) {
- Logger.minor(this, "Skipping (req came from): "+p.getPeer());
+ Logger.minor(this, "Skipping (req came from):
"+p.getDetectedPeer());
continue;
}
if(!p.isConnected()) {
- Logger.minor(this, "Skipping (not connected): "+p.getPeer());
+ Logger.minor(this, "Skipping (not connected):
"+p.getDetectedPeer());
continue;
}
if(p.isBackedOff()) {
- Logger.minor(this, "Skipping (backed off): "+p.getPeer());
+ Logger.minor(this, "Skipping (backed off):
"+p.getDetectedPeer());
continue;
}
count++;
any = p;
double diff = distance(p, loc);
- Logger.minor(this, "p.loc="+p.getLocation().getValue()+",
loc="+loc+", d="+distance(p.getLocation().getValue(), loc)+" usedD="+diff+" for
"+p.getPeer());
+ Logger.minor(this, "p.loc="+p.getLocation().getValue()+",
loc="+loc+", d="+distance(p.getLocation().getValue(), loc)+" usedD="+diff+" for
"+p.getDetectedPeer());
if((!ignoreSelf) && diff > maxDiff) continue;
if(diff < bestDiff) {
best = p;
Modified: trunk/freenet/src/freenet/node/PeerNode.java
===================================================================
--- trunk/freenet/src/freenet/node/PeerNode.java 2006-01-17 14:11:10 UTC
(rev 7869)
+++ trunk/freenet/src/freenet/node/PeerNode.java 2006-01-18 00:01:15 UTC
(rev 7870)
@@ -52,8 +52,11 @@
static boolean disableProbabilisticHTLs = false;
/** My low-level address for SocketManager purposes */
- private Peer peer;
+ private Peer detectedPeer;
+ /** The advertised address */
+ private Peer nominalPeer;
+
/** Is this a testnet node? */
public final boolean testnetEnabled;
@@ -193,14 +196,17 @@
currentLocation = new Location(locationString);
String physical = fs.get("physical.udp");
if(physical == null) throw new FSParseException("No physical.udp");
- peer = new Peer(physical);
+ detectedPeer = new Peer(physical);
+ String nominal = fs.get("hostname");
+ if(nominal == null) throw new FSParseException("No hostname");
+ nominalPeer = new Peer(nominal);
String name = fs.get("myName");
if(name == null) throw new FSParseException("No name");
myName = name;
String testnet = fs.get("testnet");
testnetEnabled = testnet == null ? false :
(testnet.equalsIgnoreCase("true") || testnet.equalsIgnoreCase("yes"));
if(testnetEnabled != node.testnetEnabled) {
- String err = "Ignoring incompatible node "+peer+" -
peer.testnet="+testnetEnabled+"("+testnet+") but
node.testnet="+node.testnetEnabled;
+ String err = "Ignoring incompatible node "+detectedPeer+" -
peer.testnet="+testnetEnabled+"("+testnet+") but
node.testnet="+node.testnetEnabled;
Logger.error(this, err);
throw new PeerParseException(err);
}
@@ -267,11 +273,28 @@
/**
* Get my low-level address
*/
- public Peer getPeer() {
- return peer;
+ public Peer getDetectedPeer() {
+ return detectedPeer;
}
/**
+ * Get my advertised address
+ */
+ public Peer getNominalPeer() {
+ return nominalPeer;
+ }
+
+ /**
+ * Returns an array with the advertised address and the nominal one
+ */
+ public Peer[] getHandshakeIPs(){
+ Peer[] p = new Peer[2];
+ p[0]=nominalPeer;
+ if(detectedPeer!=null) p[1]=detectedPeer;
+ return p;
+ }
+
+ /**
* What is my current keyspace location?
*/
public Location getLocation() {
@@ -518,7 +541,7 @@
* @param newPeer The new address of the peer.
*/
public void changedIP(Peer newPeer) {
- this.peer = newPeer;
+ this.detectedPeer = newPeer;
}
/**
@@ -550,7 +573,7 @@
* @return short version of toString()
*/
public String shortToString() {
- return
super.toString()+"@"+peer.toString()+"@"+HexUtil.bytesToHex(identity);
+ return
super.toString()+"@"+detectedPeer.toString()+"@"+HexUtil.bytesToHex(identity);
}
public String toString() {
@@ -795,8 +818,8 @@
if(physical == null) throw new FSParseException("No physical.udp");
try {
Peer p = new Peer(physical);
- if(!p.equals(peer)) changedAnything = true;
- peer = p;
+ if(!p.equals(detectedPeer)) changedAnything = true;
+ detectedPeer = p;
} catch (PeerParseException e1) {
throw new FSParseException(e1);
}
@@ -855,7 +878,7 @@
public String getStatus() {
return
- (isConnected ? "CONNECTED " : "DISCONNECTED") + " " +
getPeer().toString()+" "+myName+" "+currentLocation.getValue()+"
"+getVersion()+" backoff: "+backoffLength+" ("+(Math.max(backedOffUntil -
System.currentTimeMillis(),0))+")";
+ (isConnected ? "CONNECTED " : "DISCONNECTED") + " " +
getDetectedPeer().toString()+" "+myName+" "+currentLocation.getValue()+"
"+getVersion()+" backoff: "+backoffLength+" ("+(Math.max(backedOffUntil -
System.currentTimeMillis(),0))+")";
}
public String getFreevizOutput() {
@@ -879,7 +902,8 @@
*/
private SimpleFieldSet exportFieldSet() {
SimpleFieldSet fs = new SimpleFieldSet();
- fs.put("physical.udp", peer.toString());
+ fs.put("hostname", nominalPeer.toString());
+ fs.put("physical.udp", detectedPeer.toString());
fs.put("identity", HexUtil.bytesToHex(identity));
fs.put("location", Double.toString(currentLocation.getValue()));
fs.put("testnet", Boolean.toString(testnetEnabled));
@@ -984,9 +1008,9 @@
backoffLength = MAX_BACKOFF_LENGTH;
int x = node.random.nextInt(backoffLength);
backedOffUntil = now + x;
- Logger.minor(this, "Backing off:
backoffLength="+backoffLength+", until "+x+"ms on "+getPeer());
+ Logger.minor(this, "Backing off:
backoffLength="+backoffLength+", until "+x+"ms on "+getDetectedPeer());
} else {
- Logger.minor(this, "Ignoring
localRejectedOverload: "+(backedOffUntil-now)+"ms remaining on backoff on
"+getPeer());
+ Logger.minor(this, "Ignoring
localRejectedOverload: "+(backedOffUntil-now)+"ms remaining on backoff on
"+getDetectedPeer());
}
}
}
@@ -1002,9 +1026,9 @@
// Don't un-backoff if still backed off
if(now > backedOffUntil) {
backoffLength = INITIAL_BACKOFF_LENGTH;
- Logger.minor(this, "Resetting backoff on
"+getPeer());
+ Logger.minor(this, "Resetting backoff on
"+getDetectedPeer());
} else {
- Logger.minor(this, "Ignoring
successNotOverload: "+(backedOffUntil-now)+"ms remaining on backoff on
"+getPeer());
+ Logger.minor(this, "Ignoring
successNotOverload: "+(backedOffUntil-now)+"ms remaining on backoff on
"+getDetectedPeer());
}
}
}
@@ -1069,7 +1093,7 @@
public void reportThrottledPacketSendTime(long timeDiff) {
throttledPacketSendAverage.report(timeDiff);
- Logger.minor(this, "Reporting throttled packet send time:
"+timeDiff+" to "+getPeer());
+ Logger.minor(this, "Reporting throttled packet send time:
"+timeDiff+" to "+getDetectedPeer());
}
}
Modified: trunk/freenet/src/freenet/node/SSKInsertSender.java
===================================================================
--- trunk/freenet/src/freenet/node/SSKInsertSender.java 2006-01-17 14:11:10 UTC
(rev 7869)
+++ trunk/freenet/src/freenet/node/SSKInsertSender.java 2006-01-18 00:01:15 UTC
(rev 7870)
@@ -377,7 +377,7 @@
*
* For now, accept the "old" i.e.
preexisting data.
*/
- Logger.normal(this, "Got collision on
"+myKey+" ("+uid+") sending to "+next.getPeer());
+ Logger.normal(this, "Got collision on
"+myKey+" ("+uid+") sending to "+next.getDetectedPeer());
// FNPSSKDataFound == FNPInsertRequest
Modified: trunk/freenet/src/freenet/node/TextModeClientInterface.java
===================================================================
--- trunk/freenet/src/freenet/node/TextModeClientInterface.java 2006-01-17
14:11:10 UTC (rev 7869)
+++ trunk/freenet/src/freenet/node/TextModeClientInterface.java 2006-01-18
00:01:15 UTC (rev 7870)
@@ -107,6 +107,7 @@
System.out.println("CONNECT:<filename> - connect to a node from its
ref in a file.");
System.out.println("CONNECT:\n<noderef including an End on a line by
itself> - enter a noderef directly.");
System.out.println("DISCONNECT:<ip:port> - disconnect from a node by
providing it's ip+port");
+ System.out.println("HOSTNAME:<new node fqdn> - change the node's
fqdn.");
System.out.println("NAME:<new node name> - change the node's name.");
// System.out.println("SUBFILE:<filename> - append all data received
from subscriptions to a file, rather than sending it to stdout.");
// System.out.println("SAY:<text> - send text to the last
created/pushed stream");
@@ -472,6 +473,15 @@
key = key.substring(0, key.length()-2);
System.out.println("New name: "+key);
n.setName(key);
+ } else if(uline.startsWith("HOSTNAME:")) {
+ System.out.println("Node name currently: "+n.myFQDN);
+ String key = line.substring("HOSTNAME:".length());
+ while(key.length() > 0 && key.charAt(0) == ' ')
+ key = key.substring(1);
+ while(key.length() > 0 && key.charAt(key.length()-1) == ' ')
+ key = key.substring(0, key.length()-2);
+ System.out.println("New name: "+key);
+ n.setFQDN(key);
} else if(uline.startsWith("DISCONNECT:")) {
String ipAndPort = line.substring("DISCONNECT:".length());
disconnect(ipAndPort.trim());
@@ -718,7 +728,7 @@
PeerNode[] pn = n.peers.myPeers;
for(int i=0;i<pn.length;i++)
{
- String nodeIpAndPort =
pn[i].getPeer().getAddress().getHostAddress()+":"+pn[i].getPeer().getPort();
+ String nodeIpAndPort =
pn[i].getDetectedPeer().getAddress().getHostAddress()+":"+pn[i].getDetectedPeer().getPort();
if(nodeIpAndPort.equals(ipAndPort))
{
n.peers.disconnect(pn[i]);
Modified: trunk/freenet/src/freenet/node/Version.java
===================================================================
--- trunk/freenet/src/freenet/node/Version.java 2006-01-17 14:11:10 UTC (rev
7869)
+++ trunk/freenet/src/freenet/node/Version.java 2006-01-18 00:01:15 UTC (rev
7870)
@@ -20,10 +20,10 @@
public static final String protocolVersion = "1.0";
/** The build number of the current revision */
- public static final int buildNumber = 359;
+ public static final int buildNumber = 360;
/** Oldest build of Fred we will talk to */
- public static final int lastGoodBuild = 359;
+ public static final int lastGoodBuild = 360;
/** The highest reported build of fred */
public static int highestSeenBuild = buildNumber;