/* This code is part of Freenet. It is distributed under the GNU General * Public License, version 2 (or at your option any later version). See * http://www.gnu.org/ for further details of the GPL. */ package freenet.node; import freenet.io.comm.PeerParseException; import freenet.io.comm.ReferenceSignatureVerificationException; import freenet.support.SimpleFieldSet; /** * * @author nextgens */ public class SeedServerTestPeerNode extends SeedServerPeerNode { public SeedServerTestPeerNode(SimpleFieldSet fs, Node node2, NodeCrypto crypto, boolean fromLocal) throws FSParseException, PeerParseException, ReferenceSignatureVerificationException, PeerTooOldException { super(fs, node2, crypto, fromLocal); } @Override public SimpleFieldSet exportFieldSet() { SimpleFieldSet sfs = super.exportFieldSet(); sfs.putOverwrite("opennet", "true"); return sfs; } @Override public boolean shouldDisconnectAndRemoveNow() { return false; } @Override protected void sendInitialMessages() {} public enum FATE { // Never connected NEVER_CONNECTED, // Connected but no packets received yet CONNECTED_NO_PACKETS_RECEIVED, // Connected but TOO_OLD CONNECTED_TOO_OLD, // Connected and received packets CONNECTED_SUCCESS, // Connected but timed out after no packets received CONNECTED_TIMEOUT_NO_PACKETS_RECEIVED, // Connected but then disconnected for no known reason CONNECTED_DISCONNECTED_UNKNOWN } @Override public void onRemove() { long lastReceivedDataPacketTime = lastReceivedDataPacketTime(); if(lastReceivedDataPacketTime <= 0 && timeLastConnectionCompleted() > 0) System.err.println(this.getIdentityString()+" : REMOVED: TIMEOUT: NO PACKETS RECEIVED AFTER SUCCESSFUL CONNECTION SETUP"); else if(timeLastConnectionCompleted() <= 0) System.err.println(this.getIdentityString()+" : REMOVED: NEVER CONNECTED"); else System.err.println(this.getIdentityString()+" : REMOVED: UNKNOWN CAUSE"); super.onRemove(); } public FATE getFate() { long lastReceivedDataPacketTime = lastReceivedDataPacketTime(); if(isConnected()) { if(lastReceivedDataPacketTime <= 0) return FATE.CONNECTED_NO_PACKETS_RECEIVED; else if(this.isUnroutableOlderVersion()) return FATE.CONNECTED_TOO_OLD; else return FATE.CONNECTED_SUCCESS; } long lastConnectionTime = timeLastConnectionCompleted(); if(lastConnectionTime <= 0) return FATE.NEVER_CONNECTED; if(lastReceivedDataPacketTime <= 0) return FATE.CONNECTED_TIMEOUT_NO_PACKETS_RECEIVED; return FATE.CONNECTED_DISCONNECTED_UNKNOWN; } }