peerAddedTime used to for the time in the idle column for never 
connected peers and for when to timeout the never connected status or 
whatever it is we do after 30 days of being never connected (can't 
remember the details anymore).

toad at freenetproject.org wrote:
> Author: toad
> Date: 2006-08-31 15:49:33 +0000 (Thu, 31 Aug 2006)
> New Revision: 10305
>
> Modified:
>    trunk/freenet/src/freenet/node/IPDetectorPluginManager.java
>    trunk/freenet/src/freenet/node/NodeIPDetector.java
>    trunk/freenet/src/freenet/node/PeerNode.java
> Log:
> IP detection related:
> Logging.
> Detect every 12 hours if have a directly detected IP.
> Locking.
> What is peerAddedTime = 1 for? Set it to 0.
> Send an IP-detected message if the other side's IP changes while a connection 
> is open.
>
>
> Modified: trunk/freenet/src/freenet/node/IPDetectorPluginManager.java
> ===================================================================
> --- trunk/freenet/src/freenet/node/IPDetectorPluginManager.java       
> 2006-08-31 15:35:02 UTC (rev 10304)
> +++ trunk/freenet/src/freenet/node/IPDetectorPluginManager.java       
> 2006-08-31 15:49:33 UTC (rev 10305)
> @@ -169,8 +169,8 @@
>                       if(detector.hasDirectlyDetectedIP()) {
>                               // We might still be firewalled?
>                               // First, check only once per day or startup
> -                             if(now - lastDetectAttemptEndedTime < 
> 24*60*60*1000) {
> -                                     if(logMINOR) Logger.minor(this, "Node 
> has directly detected IP and we have checked less than 24 hours ago");
> +                             if(now - lastDetectAttemptEndedTime < 
> 12*60*60*1000) {
> +                                     if(logMINOR) Logger.minor(this, "Node 
> has directly detected IP and we have checked less than 12 hours ago");
>                                       return;
>                               }
>                               
>
> Modified: trunk/freenet/src/freenet/node/NodeIPDetector.java
> ===================================================================
> --- trunk/freenet/src/freenet/node/NodeIPDetector.java        2006-08-31 
> 15:35:02 UTC (rev 10304)
> +++ trunk/freenet/src/freenet/node/NodeIPDetector.java        2006-08-31 
> 15:49:33 UTC (rev 10305)
> @@ -69,6 +69,7 @@
>        * third parties if available and UP&P if available.
>        */
>       Peer[] detectPrimaryIPAddress() {
> +             Logger.minor(this, "Redetecting IPs...");
>               boolean setMaybeSymmetric = false;
>               Vector addresses = new Vector();
>               if(overrideIPAddress != null) {
> @@ -121,6 +122,7 @@
>                       if(countsByPeer.size() == 1) {
>                               Iterator it = countsByPeer.keySet().iterator();
>                               Peer p = (Peer) (it.next());
> +                             Logger.minor(this, "Everyone agrees we are "+p);
>                               if(!addresses.contains(p)) addresses.add(p);
>                       } else if(countsByPeer.size() > 1) {
>                               Iterator it = countsByPeer.keySet().iterator();
> @@ -220,9 +222,11 @@
>  
>       public void redetectAddress() {
>               Peer[] newIP = detectPrimaryIPAddress();
> -             if(Arrays.equals(newIP, lastIP)) return;
> +             synchronized(this) {
> +                     if(Arrays.equals(newIP, lastIP)) return;
> +                     lastIP = newIP;
> +             }
>               arkPutter.update();
> -             lastIP = newIP;
>               node.writeNodeFile();
>       }
>  
>
> Modified: trunk/freenet/src/freenet/node/PeerNode.java
> ===================================================================
> --- trunk/freenet/src/freenet/node/PeerNode.java      2006-08-31 15:35:02 UTC 
> (rev 10304)
> +++ trunk/freenet/src/freenet/node/PeerNode.java      2006-08-31 15:49:33 UTC 
> (rev 10305)
> @@ -493,7 +493,7 @@
>                       long tempPeerAddedTime = 
> Long.parseLong(tempPeerAddedTimeString);
>                       peerAddedTime = tempPeerAddedTime;
>               } else {
> -                     peerAddedTime = 1;
> +                     peerAddedTime = 0;
>               }
>               neverConnected = 
> Fields.stringToBool(metadata.get("neverConnected"), false);
>               if((now - peerAddedTime) > (((long) 30)*24*60*60*1000)) {  // 
> 30 days
> @@ -1191,13 +1191,17 @@
>       setDetectedPeer(newPeer);
>      }
>  
> -    private synchronized void setDetectedPeer(Peer newPeer) {
> +    private void setDetectedPeer(Peer newPeer) {
>       // Only clear lastAttemptedHandshakeIPUpdateTime if we have a new IP.
>       // Also, we need to call .equals() to propagate any DNS lookups that 
> have been done if the two have the same domain.
> -     if((newPeer != null) && ((detectedPeer == null) || 
> !detectedPeer.equals(newPeer))) {
> -             this.detectedPeer=newPeer;
> -             this.lastAttemptedHandshakeIPUpdateTime = 0;
> +     synchronized(this) {
> +             if((newPeer != null) && ((detectedPeer == null) || 
> !detectedPeer.equals(newPeer))) {
> +                     this.detectedPeer=newPeer;
> +                     this.lastAttemptedHandshakeIPUpdateTime = 0;
> +                     if(!isConnected) return;
> +             } else return;
>       }
> +     sendIPAddressMessage();
>       }
>  
>       /**
> @@ -1437,6 +1441,15 @@
>              Logger.error(this, "Completed handshake with "+getPeer()+" but 
> disconnected ("+isConnected+":"+currentTracker+"!!!: "+e, e);
>          }
>      }
> +    
> +    private void sendIPAddressMessage() {
> +        Message ipMsg = DMT.createFNPDetectedIPAddress(getDetectedPeer());
> +        try {
> +            sendAsync(ipMsg, null, 0, null);
> +        } catch (NotConnectedException e) {
> +             Logger.normal(this, "Sending IP change message to "+this+" but 
> disconnected: "+e, e);
> +        }
> +    }
>  
>      /**
>       * Called when a packet is successfully decrypted on a given
>   


Reply via email to