[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;
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r34091 - in gnunet-java/src/main/java/org/gnunet/transport: . messages,
gnunet <=