gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] r34091 - in gnunet-java/src/main/java/org/gnunet/transport:


From: gnunet
Subject: [GNUnet-SVN] r34091 - in gnunet-java/src/main/java/org/gnunet/transport: . messages
Date: Thu, 31 Jul 2014 11:46:23 +0200

Author: dold
Date: 2014-07-31 11:46:22 +0200 (Thu, 31 Jul 2014)
New Revision: 34091

Modified:
   gnunet-java/src/main/java/org/gnunet/transport/AddressQuery.java
   gnunet-java/src/main/java/org/gnunet/transport/HelloAddress.java
   gnunet-java/src/main/java/org/gnunet/transport/PeerAddressListCallback.java
   
gnunet-java/src/main/java/org/gnunet/transport/PeerAddressMonitorCallback.java
   
gnunet-java/src/main/java/org/gnunet/transport/messages/AddressIterateMessage.java
   
gnunet-java/src/main/java/org/gnunet/transport/messages/AddressIterateResponseMessageContent.java
Log:
implement address query correctly


Modified: gnunet-java/src/main/java/org/gnunet/transport/AddressQuery.java
===================================================================
--- gnunet-java/src/main/java/org/gnunet/transport/AddressQuery.java    
2014-07-31 09:06:58 UTC (rev 34090)
+++ gnunet-java/src/main/java/org/gnunet/transport/AddressQuery.java    
2014-07-31 09:46:22 UTC (rev 34091)
@@ -22,7 +22,6 @@
 
 import org.gnunet.transport.messages.AddressIterateMessage;
 import org.gnunet.transport.messages.AddressIterateResponseMessage;
-import org.gnunet.transport.messages.BlacklistInitMessage;
 import org.gnunet.util.*;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -62,8 +61,10 @@
                 } else {
                     HelloAddress helloAddress = new HelloAddress();
                     helloAddress.peer = m.content.peerIdentity;
-                    // FIXME: address and plugin
-                    listCallback.onPeerAddress(helloAddress);
+                    helloAddress.address = m.content.address;
+                    helloAddress.transportName = m.content.plugin;
+                    listCallback.onPeerAddress(helloAddress, m.content.state,
+                        AbsoluteTime.fromNetwork(m.content.validUntil));
                 }
             } else {
                 if (m.content.addrLen == 0 && m.content.pluginLen == 0) {
@@ -71,15 +72,17 @@
                 } else {
                     HelloAddress helloAddress = new HelloAddress();
                     helloAddress.peer = m.content.peerIdentity;
-                    // FIXME: address and plugin
-                    monitorCallback.onPeerAddress(helloAddress);
+                    helloAddress.address = m.content.address;
+                    helloAddress.transportName = m.content.plugin;
+                    monitorCallback.onPeerAddress(helloAddress, 
m.content.state,
+                        AbsoluteTime.fromNetwork(m.content.validUntil));
                 }
             }
         }
         @Override
         public void handleError() {
             client.reconnect();
-            client.send(new BlacklistInitMessage());
+            sendInitMessage();
         }
     }
 
@@ -102,10 +105,6 @@
         this.monitorCallback = peerAddressCallback;
         this.listCallback = null;
 
-        client = new Client("transport", configuration);
-        client.send(new BlacklistInitMessage());
-        client.installReceiver(new AddressMonitorReceiver());
-
         createAndInitClient(configuration);
     }
 
@@ -129,12 +128,10 @@
         this.monitorCallback = null;
 
         createAndInitClient(configuration);
-
     }
 
     private void createAndInitClient(Configuration configuration) {
         client = new Client("transport", configuration);
-        client.send(new BlacklistInitMessage());
         client.installReceiver(new AddressMonitorReceiver());
         sendInitMessage();
     }
@@ -143,13 +140,11 @@
         AddressIterateMessage m = new AddressIterateMessage();
         m.oneShot = oneShot;
         if (peerIdentity == null) {
+            // set peer to all zeroes
             m.peer = new PeerIdentity();
         } else {
             m.peer = peerIdentity;
         }
-        // value seems to be deprecated in the C api, we're not using
-        // service-managed timeouts anyway, so send FOREVER
-        m.timeout = AbsoluteTime.FOREVER.asMessage();
         client.send(m);
     }
 }

Modified: gnunet-java/src/main/java/org/gnunet/transport/HelloAddress.java
===================================================================
--- gnunet-java/src/main/java/org/gnunet/transport/HelloAddress.java    
2014-07-31 09:06:58 UTC (rev 34090)
+++ gnunet-java/src/main/java/org/gnunet/transport/HelloAddress.java    
2014-07-31 09:46:22 UTC (rev 34091)
@@ -27,17 +27,37 @@
  * An address for communicating with a peer.
  */
 public class HelloAddress {
+
     /**
+     * No additional information
+     */
+    public static final int INFO_NONE = 0;
+
+    /**
+     * This is an inbound address and cannot be used to initiate an outbound
+     * connection to another peer
+     */
+    public static final int INFO_INBOUND = 1;
+
+    /**
      * For which peer is this an address?
      */
     public PeerIdentity peer;
+
     /**
      * Name of the transport plugin enabling the communication using
      * this address.
      */
-    String transportName;
+    public String transportName;
+
     /**
      * Binary representation of the address (plugin-specific).
      */
-    byte[] address;
+    public byte[] address;
+
+    /**
+     * Extended information about address.
+     * Either INFO_NONE or INFO_INBOUND.
+     */
+    public int localInfo;
 }

Modified: 
gnunet-java/src/main/java/org/gnunet/transport/PeerAddressListCallback.java
===================================================================
--- gnunet-java/src/main/java/org/gnunet/transport/PeerAddressListCallback.java 
2014-07-31 09:06:58 UTC (rev 34090)
+++ gnunet-java/src/main/java/org/gnunet/transport/PeerAddressListCallback.java 
2014-07-31 09:46:22 UTC (rev 34091)
@@ -40,8 +40,21 @@
 
 package org.gnunet.transport;
 
+import org.gnunet.util.*;
 
+
 public interface PeerAddressListCallback {
-    void onPeerAddress(HelloAddress helloAddress);
+    /**
+     * Called with peer address information from transport.
+     *
+     * @param helloAddress the hello address
+     * @param state the state (see constants from PeerState)
+     * @param stateTimeout validity of the address state
+     */
+    void onPeerAddress(HelloAddress helloAddress, int state, AbsoluteTime 
stateTimeout);
+
+    /**
+     * Called when transport sent us all peer addresses.
+     */
     void onDone();
 }

Modified: 
gnunet-java/src/main/java/org/gnunet/transport/PeerAddressMonitorCallback.java
===================================================================
--- 
gnunet-java/src/main/java/org/gnunet/transport/PeerAddressMonitorCallback.java  
    2014-07-31 09:06:58 UTC (rev 34090)
+++ 
gnunet-java/src/main/java/org/gnunet/transport/PeerAddressMonitorCallback.java  
    2014-07-31 09:46:22 UTC (rev 34091)
@@ -20,10 +20,23 @@
 
 package org.gnunet.transport;
 
+import org.gnunet.util.*;
 
-import org.gnunet.util.PeerIdentity;
+public interface PeerAddressMonitorCallback {
+    /**
+     * Called with address information from transport.
+     *
+     * @param helloAddress the helloAddress
+     * @param state the state of the peer
+     * @param stateTimeout validity of the address state
+     */
+    void onPeerAddress(HelloAddress helloAddress, int state, AbsoluteTime 
stateTimeout);
 
-public interface PeerAddressMonitorCallback {
-    void onPeerAddress(HelloAddress helloAddress);
+    /**
+     * Called when the given peer disconnected on transport
+     * level.
+     *
+     * @param peerIdentity the peer that disconnected
+     */
     void onPeerDisconnect(PeerIdentity peerIdentity);
 }

Modified: 
gnunet-java/src/main/java/org/gnunet/transport/messages/AddressIterateMessage.java
===================================================================
--- 
gnunet-java/src/main/java/org/gnunet/transport/messages/AddressIterateMessage.java
  2014-07-31 09:06:58 UTC (rev 34090)
+++ 
gnunet-java/src/main/java/org/gnunet/transport/messages/AddressIterateMessage.java
  2014-07-31 09:46:22 UTC (rev 34091)
@@ -22,14 +22,9 @@
     public boolean oneShot;
 
     /**
-     * FIXME: This field seems to be deprecated in the C API?
-     */
-    @NestedMessage
-    public AbsoluteTimeMessage timeout;
-
-    /**
      * The identity of the peer to look up.
      */
     @NestedMessage
     public PeerIdentity peer;
 }
+

Modified: 
gnunet-java/src/main/java/org/gnunet/transport/messages/AddressIterateResponseMessageContent.java
===================================================================
--- 
gnunet-java/src/main/java/org/gnunet/transport/messages/AddressIterateResponseMessageContent.java
   2014-07-31 09:06:58 UTC (rev 34090)
+++ 
gnunet-java/src/main/java/org/gnunet/transport/messages/AddressIterateResponseMessageContent.java
   2014-07-31 09:46:22 UTC (rev 34091)
@@ -18,30 +18,10 @@
   Boston, MA 02111-1307, USA.
  */
 
-/*
- This file is part of GNUnet.
-  (C) 2012, 2013 Christian Grothoff (and other contributing authors)
-
-  GNUnet is free software; you can redistribute it and/or modify
-  it under the terms of the GNU General Public License as published
-  by the Free Software Foundation; either version 3, or (at your
-  option) any later version.
-
-  GNUnet is distributed in the hope that it will be useful, but
-  WITHOUT ANY WARRANTY; without even the implied warranty of
-  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-  General Public License for more details.
-
-  You should have received a copy of the GNU General Public License
-  along with GNUnet; see the file COPYING.  If not, write to the
-  Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-  Boston, MA 02111-1307, USA.
- */
-
 package org.gnunet.transport.messages;
 
 import org.gnunet.construct.*;
-import org.gnunet.util.PeerIdentity;
+import org.gnunet.util.*;
 
 public class AddressIterateResponseMessageContent implements Message {
     @UInt32
@@ -49,11 +29,21 @@
     @NestedMessage
     public PeerIdentity peerIdentity;
     @UInt32
+    public int localAddresInfo;
+    @UInt32
     public int addrLen;
     @UInt32
     public int pluginLen;
+    @UInt32
+    public int state;
     @VariableSizeIntegerArray(lengthField = "addrLen", bitSize = 8, signed = 
true)
     public byte[] address;
     @VariableSizeString(lengthField = "pluginLen", terminationType = 
StringTerminationType.NONE)
     public String plugin;
+    @NestedMessage
+    public AbsoluteTimeMessage lastValidation;
+    @NestedMessage
+    public AbsoluteTimeMessage validUntil;
+    @NestedMessage
+    public AbsoluteTimeMessage nextValidation;
 }




reply via email to

[Prev in Thread] Current Thread [Next in Thread]