[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r33532 - in gnunet-java/src: main/java/org/gnunet/cadet mai
From: |
gnunet |
Subject: |
[GNUnet-SVN] r33532 - in gnunet-java/src: main/java/org/gnunet/cadet main/java/org/gnunet/cadet/messages main/java/org/gnunet/voting test/bash test/java/org/gnunet/cadet test/python |
Date: |
Wed, 4 Jun 2014 23:12:52 +0200 |
Author: dold
Date: 2014-06-04 23:12:52 +0200 (Wed, 04 Jun 2014)
New Revision: 33532
Added:
gnunet-java/src/main/java/org/gnunet/cadet/Cadet.java
gnunet-java/src/main/java/org/gnunet/cadet/CadetRunabout.java
gnunet-java/src/test/java/org/gnunet/cadet/CadetTest.java
Removed:
gnunet-java/src/main/java/org/gnunet/cadet/Mesh.java
gnunet-java/src/main/java/org/gnunet/cadet/MeshRunabout.java
gnunet-java/src/test/java/org/gnunet/cadet/MeshTest.java
Modified:
gnunet-java/src/main/java/org/gnunet/cadet/ChannelEndHandler.java
gnunet-java/src/main/java/org/gnunet/cadet/ConnectHandler.java
gnunet-java/src/main/java/org/gnunet/cadet/DataMessage.java
gnunet-java/src/main/java/org/gnunet/cadet/InboundChannelHandler.java
gnunet-java/src/main/java/org/gnunet/cadet/RejectMessage.java
gnunet-java/src/main/java/org/gnunet/cadet/messages/ClientConnectMessage.java
gnunet-java/src/main/java/org/gnunet/cadet/messages/LocalAckMessage.java
gnunet-java/src/main/java/org/gnunet/cadet/messages/TunnelCreateMessage.java
gnunet-java/src/main/java/org/gnunet/cadet/messages/TunnelDestroyMessage.java
gnunet-java/src/main/java/org/gnunet/cadet/package-info.java
gnunet-java/src/main/java/org/gnunet/voting/BallotTool.java
gnunet-java/src/main/java/org/gnunet/voting/TallyAuthorityDaemon.java
gnunet-java/src/test/bash/test_voting.conf
gnunet-java/src/test/bash/test_voting_2auth.sh
gnunet-java/src/test/bash/test_voting_simple.sh
gnunet-java/src/test/python/test_voting.conf
Log:
rename mesh to cadet
Copied: gnunet-java/src/main/java/org/gnunet/cadet/Cadet.java (from rev 33529,
gnunet-java/src/main/java/org/gnunet/cadet/Mesh.java)
===================================================================
--- gnunet-java/src/main/java/org/gnunet/cadet/Cadet.java
(rev 0)
+++ gnunet-java/src/main/java/org/gnunet/cadet/Cadet.java 2014-06-04
21:12:52 UTC (rev 33532)
@@ -0,0 +1,390 @@
+/*
+ This file is part of GNUnet.
+ (C) 2011, 2012 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.cadet;
+
+import org.gnunet.construct.Construct;
+import org.gnunet.cadet.messages.ClientConnectMessage;
+import org.gnunet.cadet.messages.LocalAckMessage;
+import org.gnunet.cadet.messages.TunnelCreateMessage;
+import org.gnunet.cadet.messages.TunnelDestroyMessage;
+import org.gnunet.mq.Envelope;
+import org.gnunet.mq.MessageQueue;
+import org.gnunet.mq.NotifySentHandler;
+import org.gnunet.util.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * Connection to the cadet service.
+ */
+public class Cadet {
+ /**
+ * Class logger.
+ */
+ private static final Logger logger = LoggerFactory
+ .getLogger(Cadet.class);
+
+ /**
+ * For tunnels created by the client, the bit in this
+ * mask is always set.
+ */
+ private static final long TUNNEL_ID_CLI = 0x80000000L;
+
+ /**
+ * For tunnels created by the service, the bit in this
+ * mask is always set.
+ */
+ private static final long TUNNEL_ID_SERV = 0xB0000000L;
+
+ /**
+ * Disable buffering on intermediate nodes (for minimum latency).
+ * Yes/No.
+ */
+ private static final int OPTION_NOBUFFER = 1;
+
+ /**
+ * Enable tunnel reliability, lost messages will be retransmitted.
+ * Yes/No.
+ */
+ private static final int OPTION_RELIABLE = 2;
+
+ /**
+ * Client connected to the cadet service
+ */
+ private final Client client;
+
+ /**
+ * Called whenever a tunnel was destroyed.
+ */
+ private ChannelEndHandler channelEndHandler;
+
+ /**
+ * Message handler for messages received through
+ * a tunnel.
+ */
+ private CadetRunabout messageReceiver;
+
+ /**
+ * Ports that we listen on.
+ */
+ private int[] ports;
+
+ /**
+ * Handler for inbound tunnels.
+ */
+ private InboundChannelHandler inboundChannelHandler;
+
+ /**
+ * Mapping from the tunnel's ID to the tunnel object.
+ */
+ private Map<Long,Channel> tunnelMap = new HashMap<Long,Channel>();
+
+ /**
+ * Counter for generating fresh tunnel ID's
+ * when creating new tunnels.
+ */
+ private long nextTid = 1;
+
+ /**
+ * A tunnel to a remote peer.
+ */
+ public class Channel extends MessageQueue {
+ private final int opt;
+ final PeerIdentity peer;
+ final int port;
+ protected long tunnelId;
+ private boolean receiveDoneExpected = false;
+ int ackCount = 0;
+ boolean destroyedByService;
+
+ /**
+ * Canceler for the currently submitted envelope.
+ */
+ private Cancelable envelopeCanceler;
+
+ /**
+ * Create a new tunnel (we're initiator and will be allowed to
add/remove peers
+ * and to broadcast).
+ *
+ * @param peer peer identity the tunnel should go to
+ * @param port Port number.
+ * @param nobuffer Flag for disabling buffering on relay nodes.
+ * @param reliable Flag for end-to-end reliability.
+ */
+ public Channel(PeerIdentity peer, int port, boolean nobuffer, boolean
reliable) {
+ this(peer, 0, port, nobuffer, reliable);
+ TunnelCreateMessage tcm = new TunnelCreateMessage();
+ tcm.otherEnd = peer;
+ tcm.opt = opt;
+ tcm.port = port;
+ tcm.tunnelId = tunnelId;
+ client.send(tcm);
+ }
+
+
+ /**
+ * Private tunnel constructor, for creating tunnel objects for
+ * incoming tunnels.
+ *
+ * @param peer
+ * @param tunnelId
+ * @param port
+ * @param nobuffer
+ * @param reliable
+ */
+ public Channel(PeerIdentity peer, long tunnelId, int port, boolean
nobuffer, boolean reliable) {
+ int myOpt = 0;
+ if (reliable)
+ myOpt |= OPTION_RELIABLE;
+ if (nobuffer)
+ myOpt |= OPTION_NOBUFFER;
+ if (0 == tunnelId) {
+ this.tunnelId = nextTid++;
+ this.tunnelId &= ~TUNNEL_ID_SERV;
+ this.tunnelId |= TUNNEL_ID_CLI;
+ }
+ else {
+ this.tunnelId = tunnelId;
+ }
+ this.peer = peer;
+ this.port = port;
+ this.opt = myOpt;
+ logger.debug("registering tunnel {}", this.tunnelId);
+ tunnelMap.put(this.tunnelId, this);
+ }
+
+ public void receiveDone() {
+ if (!receiveDoneExpected)
+ throw new AssertionError("unexpected call to receiveDone");
+ LocalAckMessage am = new LocalAckMessage();
+ am.tid = tunnelId;
+ client.send(am);
+ receiveDoneExpected = false;
+ }
+
+ public void destroy() {
+ if (!destroyedByService) {
+ TunnelDestroyMessage m = new TunnelDestroyMessage();
+ m.tunnelId = tunnelId;
+ m.reserved = new byte[32];
+ client.send(m);
+ }
+ tunnelMap.remove(tunnelId);
+ }
+
+ @Override
+ protected void submit(Envelope ev) {
+ logger.debug("submitting data message on tunnel {}", tunnelId);
+ if (ackCount <= 0)
+ throw new AssertionError();
+ DataMessage m = new DataMessage();
+ m.payload = Construct.toBinary(GnunetMessage.fromBody(ev.message));
+ m.tid = tunnelId;
+ Envelope cadetEv = new Envelope(m);
+ cadetEv.notifySent(new NotifySentHandler() {
+ @Override
+ public void onSent() {
+ envelopeCanceler = null;
+ reportMessageSent();
+ }
+ });
+ client.send(cadetEv);
+ envelopeCanceler = cadetEv;
+ ackCount -= 1;
+ }
+
+ @Override
+ protected void retract() {
+ if (envelopeCanceler == null)
+ throw new AssertionError();
+ envelopeCanceler.cancel();
+ envelopeCanceler = null;
+ }
+
+ void handleAck() {
+ ackCount++;
+ logger.debug("got ack for tunnel id " + tunnelId);
+ if (ackCount == 1) {
+ reportReadyForSubmit();
+ }
+ }
+ }
+
+ private class CadetMessageReceiver extends RunaboutMessageReceiver {
+ public void visit(TunnelCreateMessage m) {
+ Channel t = new Channel(m.otherEnd, m.tunnelId, m.port,
+ (m.opt & OPTION_NOBUFFER) != 0, (m.opt & OPTION_NOBUFFER)
!= 0);
+ logger.debug("inbound tunnel {}", m.tunnelId);
+ if (inboundChannelHandler != null) {
+ inboundChannelHandler.onInboundChannel(t, m.otherEnd);
+ }
+ }
+
+ public void visit(DataMessage m) {
+ Channel t = tunnelMap.get(m.tid);
+ if (t != null)
+ {
+ if (t.receiveDoneExpected)
+ logger.warn("got unexpected message from service");
+ t.receiveDoneExpected = true;
+ messageReceiver.setSender(t);
+ GnunetMessage gnunetMessage = Construct.parseAs(m.payload,
GnunetMessage.class);
+ logger.debug("received message of size {} and type {}",
+ gnunetMessage.header.messageSize,
gnunetMessage.header.messageType);
+ messageReceiver.visitAppropriate(gnunetMessage.body);
+ messageReceiver.setSender(null);
+ }
+ }
+
+ public void visit(LocalAckMessage m) {
+ logger.debug("got LocalAckMessage for {}", m.tid);
+ Channel t = tunnelMap.get(m.tid);
+ if (t != null) {
+ t.handleAck();
+ } else {
+ logger.warn("tunnel id for local ack not found");
+ }
+ }
+
+ public void visit(TunnelDestroyMessage m) {
+ Channel t = tunnelMap.get(m.tunnelId);
+ if (null == t) {
+ logger.warn("server got confused with tunnel IDs on destroy,
ignoring message");
+ return;
+ }
+ t.destroyedByService = true;
+ logger.debug("tunnel destroyed by service");
+ t.destroy();
+ channelEndHandler.onChannelEnd(t);
+ }
+
+ public void visit(RejectMessage m) {
+ // FIXME: C code indicates that the nack/reject message might
change ...
+ Channel t = tunnelMap.get(m.tunnelId);
+ if (null == t) {
+ logger.warn("server got confused with tunnel IDs on destroy,
ignoring message");
+ return;
+ }
+ t.destroyedByService = true;
+ logger.debug("tunnel destroyed by service (nack/reject)");
+ t.destroy();
+ channelEndHandler.onChannelEnd(t);
+ }
+
+ @Override
+ public void handleError() {
+ logger.warn("lost connection to cadet service, reconnecting");
+ if (null != channelEndHandler) {
+ for (Channel t : tunnelMap.values()) {
+ channelEndHandler.onChannelEnd(t);
+ }
+ }
+ tunnelMap.clear();
+ client.reconnect();
+ ClientConnectMessage ccm = new ClientConnectMessage();
+ ccm.applicationList = ports;
+ client.send(ccm);
+ }
+ }
+
+ /**
+ * Connect to the cadet service, listening to the given ports.
+ *
+ * @param cfg configuration to use
+ * @param inboundChannelHandler called when an inbound channel is
established
+ * @param channelEndHandler called when a tunnel is destroyed (either by
the client calling Tunnel.destroy(),
+ * or by the service)
+ * @param messageReceiver runabout for messages we are interested in
+ * @param ports ports to listen on
+ */
+ public Cadet(Configuration cfg, InboundChannelHandler
inboundChannelHandler,
+ ChannelEndHandler channelEndHandler, CadetRunabout
messageReceiver, int... ports) {
+ if (null == channelEndHandler) {
+ throw new AssertionError("tunnel end handler may not be null");
+ }
+ this.channelEndHandler = channelEndHandler;
+ this.messageReceiver = messageReceiver;
+ this.ports = ports;
+ this.inboundChannelHandler = inboundChannelHandler;
+ client = new Client("cadet", cfg);
+ client.installReceiver(new CadetMessageReceiver());
+ ClientConnectMessage ccm = new ClientConnectMessage();
+ ccm.applicationList = ports;
+ String portList = "";
+ for (int p : ports) {
+ portList += "" + p + " ";
+ }
+ client.send(ccm);
+
+ logger.debug("cadet handle created, listening on ports {}", portList);
+ }
+
+ /**
+ * Connect to the cadet service. Use this constructor if you are not
interested in inbound channels.
+ *
+ * @param cfg configuration to use
+ * @param channelEndHandler called when a tunnel is destroyed (either by
the client calling Channel.destroy(),
+ * or by the service)
+ */
+ public Cadet(Configuration cfg, ChannelEndHandler channelEndHandler,
CadetRunabout messageReceiver) {
+ this(cfg, null, channelEndHandler, messageReceiver);
+ }
+
+ /**
+ * Connect to the cadet service. Use this constructor if you are not
interested in inbound tunnels
+ * and don't want to receive messages.
+ *
+ * @param cfg configuration to use
+ * @param channelEndHandler called when a tunnel is destroyed (either by
the client calling Tunnel.destroy(),
+ * or by the service)
+ */
+ public Cadet(Configuration cfg, ChannelEndHandler channelEndHandler) {
+ this(cfg, null, channelEndHandler, null);
+ }
+
+
+ /**
+ * Create a channel to a peer over the given port, with the given options.
+ *
+ * @param peer peer to create a channel to
+ * @param port port to use
+ * @param nobuffer true if messages should be buffered
+ * @param reliable true if transmission should be reliable
+ * @return a channel
+ */
+ public Channel createChannel(PeerIdentity peer, int port, boolean
nobuffer, boolean reliable) {
+ logger.debug("creating tunnel to peer {} over port {}",
peer.toString(), port);
+ return new Channel(peer, port, nobuffer, reliable);
+ }
+
+ /**
+ * Disconnect from the cadet service.
+ * All tunnels will be destroyed.
+ * All tunnel disconnect callbacks will be called on any still connected
peers, notifying
+ * about their disconnection.
+ */
+ public void destroy() {
+ client.disconnect();
+ }
+}
Copied: gnunet-java/src/main/java/org/gnunet/cadet/CadetRunabout.java (from rev
33529, gnunet-java/src/main/java/org/gnunet/cadet/MeshRunabout.java)
===================================================================
--- gnunet-java/src/main/java/org/gnunet/cadet/CadetRunabout.java
(rev 0)
+++ gnunet-java/src/main/java/org/gnunet/cadet/CadetRunabout.java
2014-06-04 21:12:52 UTC (rev 33532)
@@ -0,0 +1,19 @@
+package org.gnunet.cadet;
+
+import org.grothoff.Runabout;
+
+/**
+ * ...
+ *
+ * @author Florian Dold
+ */
+public class CadetRunabout extends Runabout {
+ private Cadet.Channel sender;
+ /* package private */ void setSender(Cadet.Channel sender) {
+ this.sender = sender;
+ }
+ public Cadet.Channel getSender() {
+ return sender;
+ }
+}
+
Modified: gnunet-java/src/main/java/org/gnunet/cadet/ChannelEndHandler.java
===================================================================
--- gnunet-java/src/main/java/org/gnunet/cadet/ChannelEndHandler.java
2014-06-04 20:34:08 UTC (rev 33531)
+++ gnunet-java/src/main/java/org/gnunet/cadet/ChannelEndHandler.java
2014-06-04 21:12:52 UTC (rev 33532)
@@ -1,4 +1,4 @@
-package org.gnunet.mesh;
+package org.gnunet.cadet;
/**
* ...
@@ -13,5 +13,5 @@
*
* @param channel channel that has been destroyed
*/
- void onChannelEnd(Mesh.Channel channel);
+ void onChannelEnd(Cadet.Channel channel);
}
Modified: gnunet-java/src/main/java/org/gnunet/cadet/ConnectHandler.java
===================================================================
--- gnunet-java/src/main/java/org/gnunet/cadet/ConnectHandler.java
2014-06-04 20:34:08 UTC (rev 33531)
+++ gnunet-java/src/main/java/org/gnunet/cadet/ConnectHandler.java
2014-06-04 21:12:52 UTC (rev 33532)
@@ -1,4 +1,4 @@
-package org.gnunet.mesh;
+package org.gnunet.cadet;
import org.gnunet.util.PeerIdentity;
@@ -8,5 +8,5 @@
* @author Florian Dold
*/
public interface ConnectHandler {
- public void onConnect(Mesh.Channel channel, PeerIdentity peer);
+ public void onConnect(Cadet.Channel channel, PeerIdentity peer);
}
Modified: gnunet-java/src/main/java/org/gnunet/cadet/DataMessage.java
===================================================================
--- gnunet-java/src/main/java/org/gnunet/cadet/DataMessage.java 2014-06-04
20:34:08 UTC (rev 33531)
+++ gnunet-java/src/main/java/org/gnunet/cadet/DataMessage.java 2014-06-04
21:12:52 UTC (rev 33532)
@@ -1,4 +1,4 @@
-package org.gnunet.mesh;
+package org.gnunet.cadet;
import org.gnunet.construct.FillWith;
import org.gnunet.construct.UInt32;
Modified: gnunet-java/src/main/java/org/gnunet/cadet/InboundChannelHandler.java
===================================================================
--- gnunet-java/src/main/java/org/gnunet/cadet/InboundChannelHandler.java
2014-06-04 20:34:08 UTC (rev 33531)
+++ gnunet-java/src/main/java/org/gnunet/cadet/InboundChannelHandler.java
2014-06-04 21:12:52 UTC (rev 33532)
@@ -1,4 +1,4 @@
-package org.gnunet.mesh;
+package org.gnunet.cadet;
import org.gnunet.util.PeerIdentity;
@@ -8,5 +8,5 @@
* @author Florian Dold
*/
public interface InboundChannelHandler {
- void onInboundChannel(Mesh.Channel channel, PeerIdentity initiator);
+ void onInboundChannel(Cadet.Channel channel, PeerIdentity initiator);
}
Deleted: gnunet-java/src/main/java/org/gnunet/cadet/Mesh.java
===================================================================
--- gnunet-java/src/main/java/org/gnunet/cadet/Mesh.java 2014-06-04
20:34:08 UTC (rev 33531)
+++ gnunet-java/src/main/java/org/gnunet/cadet/Mesh.java 2014-06-04
21:12:52 UTC (rev 33532)
@@ -1,390 +0,0 @@
-/*
- This file is part of GNUnet.
- (C) 2011, 2012 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.mesh;
-
-import org.gnunet.construct.Construct;
-import org.gnunet.mesh.messages.ClientConnectMessage;
-import org.gnunet.mesh.messages.LocalAckMessage;
-import org.gnunet.mesh.messages.TunnelCreateMessage;
-import org.gnunet.mesh.messages.TunnelDestroyMessage;
-import org.gnunet.mq.Envelope;
-import org.gnunet.mq.MessageQueue;
-import org.gnunet.mq.NotifySentHandler;
-import org.gnunet.util.*;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- * Connection to the mesh service.
- */
-public class Mesh {
- /**
- * Class logger.
- */
- private static final Logger logger = LoggerFactory
- .getLogger(Mesh.class);
-
- /**
- * For tunnels created by the client, the bit in this
- * mask is always set.
- */
- private static final long TUNNEL_ID_CLI = 0x80000000L;
-
- /**
- * For tunnels created by the service, the bit in this
- * mask is always set.
- */
- private static final long TUNNEL_ID_SERV = 0xB0000000L;
-
- /**
- * Disable buffering on intermediate nodes (for minimum latency).
- * Yes/No.
- */
- private static final int OPTION_NOBUFFER = 1;
-
- /**
- * Enable tunnel reliability, lost messages will be retransmitted.
- * Yes/No.
- */
- private static final int OPTION_RELIABLE = 2;
-
- /**
- * Client connected to the mesh service
- */
- private final Client client;
-
- /**
- * Called whenever a tunnel was destroyed.
- */
- private ChannelEndHandler channelEndHandler;
-
- /**
- * Message handler for messages received through
- * a tunnel.
- */
- private MeshRunabout messageReceiver;
-
- /**
- * Ports that we listen on.
- */
- private int[] ports;
-
- /**
- * Handler for inbound tunnels.
- */
- private InboundChannelHandler inboundChannelHandler;
-
- /**
- * Mapping from the tunnel's ID to the tunnel object.
- */
- private Map<Long,Channel> tunnelMap = new HashMap<Long,Channel>();
-
- /**
- * Counter for generating fresh tunnel ID's
- * when creating new tunnels.
- */
- private long nextTid = 1;
-
- /**
- * A tunnel to a remote peer.
- */
- public class Channel extends MessageQueue {
- private final int opt;
- final PeerIdentity peer;
- final int port;
- protected long tunnelId;
- private boolean receiveDoneExpected = false;
- int ackCount = 0;
- boolean destroyedByService;
-
- /**
- * Canceler for the currently submitted envelope.
- */
- private Cancelable envelopeCanceler;
-
- /**
- * Create a new tunnel (we're initiator and will be allowed to
add/remove peers
- * and to broadcast).
- *
- * @param peer peer identity the tunnel should go to
- * @param port Port number.
- * @param nobuffer Flag for disabling buffering on relay nodes.
- * @param reliable Flag for end-to-end reliability.
- */
- public Channel(PeerIdentity peer, int port, boolean nobuffer, boolean
reliable) {
- this(peer, 0, port, nobuffer, reliable);
- TunnelCreateMessage tcm = new TunnelCreateMessage();
- tcm.otherEnd = peer;
- tcm.opt = opt;
- tcm.port = port;
- tcm.tunnelId = tunnelId;
- client.send(tcm);
- }
-
-
- /**
- * Private tunnel constructor, for creating tunnel objects for
- * incoming tunnels.
- *
- * @param peer
- * @param tunnelId
- * @param port
- * @param nobuffer
- * @param reliable
- */
- public Channel(PeerIdentity peer, long tunnelId, int port, boolean
nobuffer, boolean reliable) {
- int myOpt = 0;
- if (reliable)
- myOpt |= OPTION_RELIABLE;
- if (nobuffer)
- myOpt |= OPTION_NOBUFFER;
- if (0 == tunnelId) {
- this.tunnelId = nextTid++;
- this.tunnelId &= ~TUNNEL_ID_SERV;
- this.tunnelId |= TUNNEL_ID_CLI;
- }
- else {
- this.tunnelId = tunnelId;
- }
- this.peer = peer;
- this.port = port;
- this.opt = myOpt;
- logger.debug("registering tunnel {}", this.tunnelId);
- tunnelMap.put(this.tunnelId, this);
- }
-
- public void receiveDone() {
- if (!receiveDoneExpected)
- throw new AssertionError("unexpected call to receiveDone");
- LocalAckMessage am = new LocalAckMessage();
- am.tid = tunnelId;
- client.send(am);
- receiveDoneExpected = false;
- }
-
- public void destroy() {
- if (!destroyedByService) {
- TunnelDestroyMessage m = new TunnelDestroyMessage();
- m.tunnelId = tunnelId;
- m.reserved = new byte[32];
- client.send(m);
- }
- tunnelMap.remove(tunnelId);
- }
-
- @Override
- protected void submit(Envelope ev) {
- logger.debug("submitting data message on tunnel {}", tunnelId);
- if (ackCount <= 0)
- throw new AssertionError();
- DataMessage m = new DataMessage();
- m.payload = Construct.toBinary(GnunetMessage.fromBody(ev.message));
- m.tid = tunnelId;
- Envelope meshEv = new Envelope(m);
- meshEv.notifySent(new NotifySentHandler() {
- @Override
- public void onSent() {
- envelopeCanceler = null;
- reportMessageSent();
- }
- });
- client.send(meshEv);
- envelopeCanceler = meshEv;
- ackCount -= 1;
- }
-
- @Override
- protected void retract() {
- if (envelopeCanceler == null)
- throw new AssertionError();
- envelopeCanceler.cancel();
- envelopeCanceler = null;
- }
-
- void handleAck() {
- ackCount++;
- logger.debug("got ack for tunnel id " + tunnelId);
- if (ackCount == 1) {
- reportReadyForSubmit();
- }
- }
- }
-
- private class MeshMessageReceiver extends RunaboutMessageReceiver {
- public void visit(TunnelCreateMessage m) {
- Channel t = new Channel(m.otherEnd, m.tunnelId, m.port,
- (m.opt & OPTION_NOBUFFER) != 0, (m.opt & OPTION_NOBUFFER)
!= 0);
- logger.debug("inbound tunnel {}", m.tunnelId);
- if (inboundChannelHandler != null) {
- inboundChannelHandler.onInboundChannel(t, m.otherEnd);
- }
- }
-
- public void visit(DataMessage m) {
- Channel t = tunnelMap.get(m.tid);
- if (t != null)
- {
- if (t.receiveDoneExpected)
- logger.warn("got unexpected message from service");
- t.receiveDoneExpected = true;
- messageReceiver.setSender(t);
- GnunetMessage gnunetMessage = Construct.parseAs(m.payload,
GnunetMessage.class);
- logger.debug("received message of size {} and type {}",
- gnunetMessage.header.messageSize,
gnunetMessage.header.messageType);
- messageReceiver.visitAppropriate(gnunetMessage.body);
- messageReceiver.setSender(null);
- }
- }
-
- public void visit(LocalAckMessage m) {
- logger.debug("got LocalAckMessage for {}", m.tid);
- Channel t = tunnelMap.get(m.tid);
- if (t != null) {
- t.handleAck();
- } else {
- logger.warn("tunnel id for local ack not found");
- }
- }
-
- public void visit(TunnelDestroyMessage m) {
- Channel t = tunnelMap.get(m.tunnelId);
- if (null == t) {
- logger.warn("server got confused with tunnel IDs on destroy,
ignoring message");
- return;
- }
- t.destroyedByService = true;
- logger.debug("tunnel destroyed by service");
- t.destroy();
- channelEndHandler.onChannelEnd(t);
- }
-
- public void visit(RejectMessage m) {
- // FIXME: C code indicates that the nack/reject message might
change ...
- Channel t = tunnelMap.get(m.tunnelId);
- if (null == t) {
- logger.warn("server got confused with tunnel IDs on destroy,
ignoring message");
- return;
- }
- t.destroyedByService = true;
- logger.debug("tunnel destroyed by service (nack/reject)");
- t.destroy();
- channelEndHandler.onChannelEnd(t);
- }
-
- @Override
- public void handleError() {
- logger.warn("lost connection to mesh service, reconnecting");
- if (null != channelEndHandler) {
- for (Channel t : tunnelMap.values()) {
- channelEndHandler.onChannelEnd(t);
- }
- }
- tunnelMap.clear();
- client.reconnect();
- ClientConnectMessage ccm = new ClientConnectMessage();
- ccm.applicationList = ports;
- client.send(ccm);
- }
- }
-
- /**
- * Connect to the mesh service, listening to the given ports.
- *
- * @param cfg configuration to use
- * @param inboundChannelHandler called when an inbound channel is
established
- * @param channelEndHandler called when a tunnel is destroyed (either by
the client calling Tunnel.destroy(),
- * or by the service)
- * @param messageReceiver runabout for messages we are interested in
- * @param ports ports to listen on
- */
- public Mesh(Configuration cfg, InboundChannelHandler inboundChannelHandler,
- ChannelEndHandler channelEndHandler, MeshRunabout
messageReceiver, int... ports) {
- if (null == channelEndHandler) {
- throw new AssertionError("tunnel end handler may not be null");
- }
- this.channelEndHandler = channelEndHandler;
- this.messageReceiver = messageReceiver;
- this.ports = ports;
- this.inboundChannelHandler = inboundChannelHandler;
- client = new Client("mesh", cfg);
- client.installReceiver(new MeshMessageReceiver());
- ClientConnectMessage ccm = new ClientConnectMessage();
- ccm.applicationList = ports;
- String portList = "";
- for (int p : ports) {
- portList += "" + p + " ";
- }
- client.send(ccm);
-
- logger.debug("mesh handle created, listening on ports {}", portList);
- }
-
- /**
- * Connect to the mesh service. Use this constructor if you are not
interested in inbound channels.
- *
- * @param cfg configuration to use
- * @param channelEndHandler called when a tunnel is destroyed (either by
the client calling Channel.destroy(),
- * or by the service)
- */
- public Mesh(Configuration cfg, ChannelEndHandler channelEndHandler,
MeshRunabout messageReceiver) {
- this(cfg, null, channelEndHandler, messageReceiver);
- }
-
- /**
- * Connect to the mesh service. Use this constructor if you are not
interested in inbound tunnels
- * and don't want to receive messages.
- *
- * @param cfg configuration to use
- * @param channelEndHandler called when a tunnel is destroyed (either by
the client calling Tunnel.destroy(),
- * or by the service)
- */
- public Mesh(Configuration cfg, ChannelEndHandler channelEndHandler) {
- this(cfg, null, channelEndHandler, null);
- }
-
-
- /**
- * Create a channel to a peer over the given port, with the given options.
- *
- * @param peer peer to create a channel to
- * @param port port to use
- * @param nobuffer true if messages should be buffered
- * @param reliable true if transmission should be reliable
- * @return a channel
- */
- public Channel createChannel(PeerIdentity peer, int port, boolean
nobuffer, boolean reliable) {
- logger.debug("creating tunnel to peer {} over port {}",
peer.toString(), port);
- return new Channel(peer, port, nobuffer, reliable);
- }
-
- /**
- * Disconnect from the mesh service.
- * All tunnels will be destroyed.
- * All tunnel disconnect callbacks will be called on any still connected
peers, notifying
- * about their disconnection.
- */
- public void destroy() {
- client.disconnect();
- }
-}
Deleted: gnunet-java/src/main/java/org/gnunet/cadet/MeshRunabout.java
===================================================================
--- gnunet-java/src/main/java/org/gnunet/cadet/MeshRunabout.java
2014-06-04 20:34:08 UTC (rev 33531)
+++ gnunet-java/src/main/java/org/gnunet/cadet/MeshRunabout.java
2014-06-04 21:12:52 UTC (rev 33532)
@@ -1,18 +0,0 @@
-package org.gnunet.mesh;
-
-import org.grothoff.Runabout;
-
-/**
- * ...
- *
- * @author Florian Dold
- */
-public class MeshRunabout extends Runabout {
- private Mesh.Channel sender;
- /* package private */ void setSender(Mesh.Channel sender) {
- this.sender = sender;
- }
- public Mesh.Channel getSender() {
- return sender;
- }
-}
Modified: gnunet-java/src/main/java/org/gnunet/cadet/RejectMessage.java
===================================================================
--- gnunet-java/src/main/java/org/gnunet/cadet/RejectMessage.java
2014-06-04 20:34:08 UTC (rev 33531)
+++ gnunet-java/src/main/java/org/gnunet/cadet/RejectMessage.java
2014-06-04 21:12:52 UTC (rev 33532)
@@ -18,7 +18,7 @@
Boston, MA 02111-1307, USA.
*/
-package org.gnunet.mesh;
+package org.gnunet.cadet;
import org.gnunet.construct.FixedSizeIntegerArray;
import org.gnunet.construct.UInt32;
@@ -29,7 +29,7 @@
* Message sent by the server to indicate that a tunnel could not
* be created.
*
- * (GNUNET_MESSAGE_TYPE_MESH_CHANNEL_NACK)
+ * (GNUNET_MESSAGE_TYPE_CADET_CHANNEL_NACK)
*
* @author Florian Dold
*/
Modified:
gnunet-java/src/main/java/org/gnunet/cadet/messages/ClientConnectMessage.java
===================================================================
---
gnunet-java/src/main/java/org/gnunet/cadet/messages/ClientConnectMessage.java
2014-06-04 20:34:08 UTC (rev 33531)
+++
gnunet-java/src/main/java/org/gnunet/cadet/messages/ClientConnectMessage.java
2014-06-04 21:12:52 UTC (rev 33532)
@@ -1,4 +1,4 @@
-package org.gnunet.mesh.messages;
+package org.gnunet.cadet.messages;
import org.gnunet.construct.IntegerFill;
import org.gnunet.construct.UnionCase;
Modified:
gnunet-java/src/main/java/org/gnunet/cadet/messages/LocalAckMessage.java
===================================================================
--- gnunet-java/src/main/java/org/gnunet/cadet/messages/LocalAckMessage.java
2014-06-04 20:34:08 UTC (rev 33531)
+++ gnunet-java/src/main/java/org/gnunet/cadet/messages/LocalAckMessage.java
2014-06-04 21:12:52 UTC (rev 33532)
@@ -1,4 +1,4 @@
-package org.gnunet.mesh.messages;
+package org.gnunet.cadet.messages;
import org.gnunet.construct.UInt32;
import org.gnunet.construct.UnionCase;
Modified:
gnunet-java/src/main/java/org/gnunet/cadet/messages/TunnelCreateMessage.java
===================================================================
---
gnunet-java/src/main/java/org/gnunet/cadet/messages/TunnelCreateMessage.java
2014-06-04 20:34:08 UTC (rev 33531)
+++
gnunet-java/src/main/java/org/gnunet/cadet/messages/TunnelCreateMessage.java
2014-06-04 21:12:52 UTC (rev 33532)
@@ -1,4 +1,4 @@
-package org.gnunet.mesh.messages;
+package org.gnunet.cadet.messages;
import org.gnunet.construct.NestedMessage;
import org.gnunet.construct.UInt32;
Modified:
gnunet-java/src/main/java/org/gnunet/cadet/messages/TunnelDestroyMessage.java
===================================================================
---
gnunet-java/src/main/java/org/gnunet/cadet/messages/TunnelDestroyMessage.java
2014-06-04 20:34:08 UTC (rev 33531)
+++
gnunet-java/src/main/java/org/gnunet/cadet/messages/TunnelDestroyMessage.java
2014-06-04 21:12:52 UTC (rev 33532)
@@ -1,4 +1,4 @@
-package org.gnunet.mesh.messages;
+package org.gnunet.cadet.messages;
import org.gnunet.construct.FixedSizeIntegerArray;
import org.gnunet.construct.UInt32;
Modified: gnunet-java/src/main/java/org/gnunet/cadet/package-info.java
===================================================================
--- gnunet-java/src/main/java/org/gnunet/cadet/package-info.java
2014-06-04 20:34:08 UTC (rev 33531)
+++ gnunet-java/src/main/java/org/gnunet/cadet/package-info.java
2014-06-04 21:12:52 UTC (rev 33532)
@@ -22,4 +22,4 @@
/**
* Create channels for packet-based communication to distant peers.
*/
-package org.gnunet.mesh;
+package org.gnunet.cadet;
Modified: gnunet-java/src/main/java/org/gnunet/voting/BallotTool.java
===================================================================
--- gnunet-java/src/main/java/org/gnunet/voting/BallotTool.java 2014-06-04
20:34:08 UTC (rev 33531)
+++ gnunet-java/src/main/java/org/gnunet/voting/BallotTool.java 2014-06-04
21:12:52 UTC (rev 33532)
@@ -26,9 +26,9 @@
import com.google.common.io.Files;
import org.gnunet.identity.Identity;
import org.gnunet.identity.IdentityCallback;
-import org.gnunet.mesh.Mesh;
-import org.gnunet.mesh.MeshRunabout;
-import org.gnunet.mesh.ChannelEndHandler;
+import org.gnunet.cadet.Cadet;
+import org.gnunet.cadet.CadetRunabout;
+import org.gnunet.cadet.ChannelEndHandler;
import org.gnunet.secretsharing.ThresholdPublicKey;
import org.gnunet.testbed.CompressedConfig;
import org.gnunet.util.*;
@@ -139,14 +139,14 @@
private String ballotFilename;
/**
- * Our handle to MESH.
+ * Our handle to CADET.
*/
- private Mesh mesh;
+ private Cadet cadet;
/**
* A channel to 'currentAuthority' or null.
*/
- private Mesh.Channel channel;
+ private Cadet.Channel channel;
/**
* The authority we are currently communicating with.
@@ -154,7 +154,7 @@
private PeerIdentity currentAuthority;
/**
- * Are we finished with communicating over the mesh channel and don't need
to worry about
+ * Are we finished with communicating over the cadet channel and don't
need to worry about
* disconnection?
*/
private boolean tunnelCommunicationFinished;
@@ -163,11 +163,11 @@
public class BallotChannelEndHandler implements ChannelEndHandler {
@Override
- public void onChannelEnd(final Mesh.Channel channel) {
+ public void onChannelEnd(final Cadet.Channel channel) {
// FIXME: just re-running 'doCommands' is a bit of a hack
BallotTool.this.channel = null;
if (!tunnelCommunicationFinished) {
- logger.warn("mesh channel disconnected, but operation not
finished");
+ logger.warn("cadet channel disconnected, but operation not
finished");
Scheduler.addDelayed(tunnelReconnectBackoff, new
Scheduler.Task() {
@Override
public void run(Scheduler.RunContext ctx) {
@@ -181,36 +181,36 @@
/**
* Destroy the channel to the authority as well
- * as the mesh handle.
+ * as the cadet handle.
*/
- private void endMesh() {
+ private void endCadet() {
tunnelCommunicationFinished = true;
if (null != channel) {
channel.destroy();
channel = null;
}
- if (null != mesh) {
- mesh.destroy();
- mesh = null;
+ if (null != cadet) {
+ cadet.destroy();
+ cadet = null;
}
}
- public class BallotRegisterReceiver extends MeshRunabout {
+ public class BallotRegisterReceiver extends CadetRunabout {
public void visit(BallotRegisterSuccessMessage m) {
System.out.println("ballot successfully registered");
ballot.addRegistrationSignature(currentAuthority,
m.registrationSignature);
writeBallot();
- endMesh();
+ endCadet();
}
public void visit(BallotRegisterFailureMessage m) {
System.out.println("registering failed: " + m.reason);
- endMesh();
+ endCadet();
setReturnValue(1);
}
}
- public class QueryReceiver extends MeshRunabout {
+ public class QueryReceiver extends CadetRunabout {
public void visit(ResultQueryResponseMessage m) {
if (m.results.length != ballot.choices.size()) {
System.out.println("failure to query result: malformed
response");
@@ -220,39 +220,39 @@
System.out.println("'" + ballot.choices.get(i) + "': " +
m.results[i]);
}
}
- endMesh();
+ endCadet();
}
public void visit(ResultQueryFailureMessage m) {
System.out.println("failure to query result: " + m.reason);
- endMesh();
+ endCadet();
setReturnValue(1);
}
}
- public class PublicKeyReceiver extends MeshRunabout {
+ public class PublicKeyReceiver extends CadetRunabout {
public void visit(KeyQueryResponseMessage m) {
System.out.println("got threshold public key!");
ballot.addThresholdPublicKey(currentAuthority, m);
writeBallot();
- endMesh();
+ endCadet();
}
public void visit(KeyQueryFailureMessage m) {
System.out.println("failure to query result: " + m.reason);
- endMesh();
+ endCadet();
setReturnValue(1);
}
}
- public class SubmitReceiver extends MeshRunabout {
+ public class SubmitReceiver extends CadetRunabout {
public void visit(SubmitSuccessMessage m) {
System.out.println("vote successfully submitted");
ballot.addConfirmation(currentAuthority, m.confirmationSig);
writeBallot();
- endMesh();
+ endCadet();
}
public void visit(SubmitFailureMessage m) {
@@ -262,7 +262,7 @@
System.out.println("authority time: " +
AbsoluteTime.fromNetwork(m.signedAuthorityTime.time).toFancyString());
}
- endMesh();
+ endCadet();
setReturnValue(1);
}
}
@@ -320,8 +320,8 @@
Random r = new Random();
currentAuthority =
remainingAuthorities.get(r.nextInt(remainingAuthorities.size()));
System.out.println("registering ballot with authority " +
currentAuthority.toString());
- mesh = new Mesh(getConfiguration(), new BallotChannelEndHandler(),
new BallotRegisterReceiver());
- channel = mesh.createChannel(currentAuthority,
TallyAuthorityDaemon.MESH_PORT, true, true);
+ cadet = new Cadet(getConfiguration(), new
BallotChannelEndHandler(), new BallotRegisterReceiver());
+ channel = cadet.createChannel(currentAuthority,
TallyAuthorityDaemon.CADET_PORT, true, true);
BallotRegisterRequestMessage m = new
BallotRegisterRequestMessage();
CompressedConfig ccfg = new
CompressedConfig(ballot.toConfiguration());
m.compressedBallotConfig = ccfg.compressedData;
@@ -365,8 +365,8 @@
PeerIdentity authority =
remainingAuthorities.get(r.nextInt(remainingAuthorities.size()));
System.out.println("submitting to authority " +
authority.toString());
currentAuthority = authority;
- mesh = new Mesh(cfg, new BallotChannelEndHandler(), new
SubmitReceiver());
- channel = mesh.createChannel(authority,
TallyAuthorityDaemon.MESH_PORT, true, true);
+ cadet = new Cadet(cfg, new BallotChannelEndHandler(), new
SubmitReceiver());
+ channel = cadet.createChannel(authority,
TallyAuthorityDaemon.CADET_PORT, true, true);
SubmitMessage m = new SubmitMessage();
if (ballot.voterPub == null) {
throw new InvalidBallotException("no voter in ballot");
@@ -399,8 +399,8 @@
Random r = new Random();
currentAuthority =
remainingAuthorities.get(r.nextInt(remainingAuthorities.size()));
System.out.println("querying authority " +
currentAuthority.toString());
- mesh = new Mesh(cfg, new BallotChannelEndHandler(), new
QueryReceiver());
- channel = mesh.createChannel(currentAuthority,
TallyAuthorityDaemon.MESH_PORT, true, true);
+ cadet = new Cadet(cfg, new BallotChannelEndHandler(), new
QueryReceiver());
+ channel = cadet.createChannel(currentAuthority,
TallyAuthorityDaemon.CADET_PORT, true, true);
ResultQueryMessage m = new ResultQueryMessage();
m.ballotGuid = ballot.getBallotGuid();
channel.send(m);
@@ -415,8 +415,8 @@
Random r = new Random();
currentAuthority =
remainingAuthorities.get(r.nextInt(remainingAuthorities.size()));
System.out.println("asking authority for key " +
currentAuthority.toString());
- mesh = new Mesh(cfg, new BallotChannelEndHandler(), new
PublicKeyReceiver());
- channel = mesh.createChannel(currentAuthority,
TallyAuthorityDaemon.MESH_PORT, true, true);
+ cadet = new Cadet(cfg, new BallotChannelEndHandler(), new
PublicKeyReceiver());
+ channel = cadet.createChannel(currentAuthority,
TallyAuthorityDaemon.CADET_PORT, true, true);
KeyQueryMessage m = new KeyQueryMessage();
m.ballotGuid = ballot.getBallotGuid();
channel.send(m);
Modified: gnunet-java/src/main/java/org/gnunet/voting/TallyAuthorityDaemon.java
===================================================================
--- gnunet-java/src/main/java/org/gnunet/voting/TallyAuthorityDaemon.java
2014-06-04 20:34:08 UTC (rev 33531)
+++ gnunet-java/src/main/java/org/gnunet/voting/TallyAuthorityDaemon.java
2014-06-04 21:12:52 UTC (rev 33532)
@@ -25,9 +25,9 @@
import org.gnunet.consensus.ConsensusCallback;
import org.gnunet.consensus.ConsensusElement;
import org.gnunet.construct.Construct;
-import org.gnunet.mesh.Mesh;
-import org.gnunet.mesh.MeshRunabout;
-import org.gnunet.mesh.ChannelEndHandler;
+import org.gnunet.cadet.Cadet;
+import org.gnunet.cadet.CadetRunabout;
+import org.gnunet.cadet.ChannelEndHandler;
import org.gnunet.secretsharing.*;
import org.gnunet.testbed.CompressedConfig;
import org.gnunet.util.*;
@@ -52,14 +52,14 @@
.getLogger(TallyAuthorityDaemon.class);
/**
- * Mesh port used to connect to to the tally authority daemon.
+ * Cadet port used to connect to to the tally authority daemon.
*/
- public static final int MESH_PORT = 1002;
+ public static final int CADET_PORT = 1002;
/**
- * Mesh handle.
+ * Cadet handle.
*/
- private Mesh mesh;
+ private Cadet cadet;
/**
* Private key of the local peer.
@@ -222,7 +222,7 @@
return tm;
}
- private class TallyMeshReceiver extends MeshRunabout {
+ private class TallyCadetReceiver extends CadetRunabout {
public void visit(SubmitMessage m) {
logger.debug("got submit message");
ElectionState electionState = elections.get(m.ballotGuid);
@@ -391,19 +391,19 @@
@Override
public void run() {
logger.info("running tally daemon");
- mesh = new Mesh(getConfiguration(), null, new ChannelEndHandler() {
+ cadet = new Cadet(getConfiguration(), null, new ChannelEndHandler() {
@Override
- public void onChannelEnd(Mesh.Channel channel) {
+ public void onChannelEnd(Cadet.Channel channel) {
logger.warn("on channel end");
}
- }, new TallyMeshReceiver(), MESH_PORT);
+ }, new TallyCadetReceiver(), CADET_PORT);
Scheduler.addDelayed(RelativeTime.FOREVER, new Scheduler.Task() {
@Override
public void run(Scheduler.RunContext ctx) {
- if (null != mesh) {
- mesh.destroy();
- mesh = null;
+ if (null != cadet) {
+ cadet.destroy();
+ cadet = null;
}
}
});
Modified: gnunet-java/src/test/bash/test_voting.conf
===================================================================
--- gnunet-java/src/test/bash/test_voting.conf 2014-06-04 20:34:08 UTC (rev
33531)
+++ gnunet-java/src/test/bash/test_voting.conf 2014-06-04 21:12:52 UTC (rev
33532)
@@ -1,7 +1,7 @@
[arm]
-DEFAULTSERVICES = mesh fs set consensus
+DEFAULTSERVICES = cadet fs set consensus
-[mesh]
+[cadet]
AUTOSTART = YES
[testbed]
Modified: gnunet-java/src/test/bash/test_voting_2auth.sh
===================================================================
--- gnunet-java/src/test/bash/test_voting_2auth.sh 2014-06-04 20:34:08 UTC
(rev 33531)
+++ gnunet-java/src/test/bash/test_voting_2auth.sh 2014-06-04 21:12:52 UTC
(rev 33532)
@@ -50,7 +50,7 @@
trap "cleanup \"exiting\"" EXIT
export GNUNET_FORCE_LOG=";;;;ERROR"
-#export GNUNET_FORCE_LOG="mesh;;;;DEBUG"
+#export GNUNET_FORCE_LOG="cadet;;;;DEBUG"
export GNUNET_TESTING_PREFIX=$PREFIX
gnunet-testbed-profiler -n -c "$SDIR/test_voting.conf" -p 2 &
Modified: gnunet-java/src/test/bash/test_voting_simple.sh
===================================================================
--- gnunet-java/src/test/bash/test_voting_simple.sh 2014-06-04 20:34:08 UTC
(rev 33531)
+++ gnunet-java/src/test/bash/test_voting_simple.sh 2014-06-04 21:12:52 UTC
(rev 33532)
@@ -49,7 +49,7 @@
trap "cleanup \"exiting\"" EXIT
export GNUNET_FORCE_LOG=";;;;ERROR"
-#export GNUNET_FORCE_LOG="mesh;;;;DEBUG"
+#export GNUNET_FORCE_LOG="cadet;;;;DEBUG"
export GNUNET_TESTING_PREFIX=$PREFIX
gnunet-testbed-profiler -n -c "$SDIR/test_voting.conf" -p 1 &
Copied: gnunet-java/src/test/java/org/gnunet/cadet/CadetTest.java (from rev
33529, gnunet-java/src/test/java/org/gnunet/cadet/MeshTest.java)
===================================================================
--- gnunet-java/src/test/java/org/gnunet/cadet/CadetTest.java
(rev 0)
+++ gnunet-java/src/test/java/org/gnunet/cadet/CadetTest.java 2014-06-04
21:12:52 UTC (rev 33532)
@@ -0,0 +1,78 @@
+package org.gnunet.cadet;
+
+import org.gnunet.core.Core;
+import org.gnunet.core.PeerIdentityContinuation;
+import org.gnunet.testing.TestingFixture;
+import org.gnunet.testing.TestingSubsystem;
+import org.gnunet.util.*;
+import org.junit.Test;
+
+/**
+ * ...
+ *
+ * @author Florian Dold
+ */
+public class CadetTest extends TestingFixture {
+ public static class MessageHandler1 extends CadetRunabout {
+ public Cadet m1;
+ public Cadet m2;
+ public void visit(TestMessage m) {
+ System.out.println("got test message");
+ m1.destroy();
+ m2.destroy();
+ }
+ }
+
+ public static class MyChannelEndHandler implements ChannelEndHandler {
+ Cadet cadet1;
+ PeerIdentity peerIdentity;
+ @Override
+ public void onChannelEnd(Cadet.Channel channel) {
+ Cadet.Channel myChannel = cadet1.createChannel(peerIdentity, 42,
false, true);
+ myChannel.send(new TestMessage());
+ }
+ }
+
+ /**
+ * Send a message locally, to our own peer.
+ */
+ @Test (timeout = 5000)
+ public void test_cadet_send() {
+ Program.configureLogging("DEBUG");
+ // we want the full arm here (starts both cadet and core)
+ final TestingSubsystem ts = new TestingSubsystem("arm");
+ final Configuration cfg = ts.getConfiguration();
+
+ final MessageHandler1 mh = new MessageHandler1();
+ // FIXME: use CryptoEcc instead of Core once available and compatible
+ Core.withPeerIdentity(cfg, new PeerIdentityContinuation() {
+ @Override
+ public void cont(PeerIdentity peerIdentity) {
+ System.out.println("got peer identity from core");
+ //
+ MyChannelEndHandler teh = new MyChannelEndHandler();
+ // first cadet handle, used to send the message
+ final Cadet cadet1 = new Cadet(cfg, teh);
+ teh.cadet1 = cadet1;
+ teh.peerIdentity = peerIdentity;
+ // second cadet handle, used to receive the message
+ final Cadet cadet2 = new Cadet(cfg, new
InboundChannelHandler() {
+ @Override
+ public void onInboundChannel(Cadet.Channel tunnel,
PeerIdentity initiator) {
+ System.out.println("got inbound channel " + initiator);
+ }
+ }, new ChannelEndHandler() {
+ @Override
+ public void onChannelEnd(Cadet.Channel tunnel) {
+ System.out.println("channel end handler called");
+ }
+ }, mh, 42);
+ mh.m1 = cadet1;
+ mh.m2 = cadet2;
+ Cadet.Channel channel = cadet1.createChannel(peerIdentity, 42,
false, true);
+ channel.send(new TestMessage());
+ }
+ });
+ Scheduler.run();
+ }
+}
Deleted: gnunet-java/src/test/java/org/gnunet/cadet/MeshTest.java
===================================================================
--- gnunet-java/src/test/java/org/gnunet/cadet/MeshTest.java 2014-06-04
20:34:08 UTC (rev 33531)
+++ gnunet-java/src/test/java/org/gnunet/cadet/MeshTest.java 2014-06-04
21:12:52 UTC (rev 33532)
@@ -1,78 +0,0 @@
-package org.gnunet.mesh;
-
-import org.gnunet.core.Core;
-import org.gnunet.core.PeerIdentityContinuation;
-import org.gnunet.testing.TestingFixture;
-import org.gnunet.testing.TestingSubsystem;
-import org.gnunet.util.*;
-import org.junit.Test;
-
-/**
- * ...
- *
- * @author Florian Dold
- */
-public class MeshTest extends TestingFixture {
- public static class MessageHandler1 extends MeshRunabout {
- public Mesh m1;
- public Mesh m2;
- public void visit(TestMessage m) {
- System.out.println("got test message");
- m1.destroy();
- m2.destroy();
- }
- }
-
- public static class MyChannelEndHandler implements ChannelEndHandler {
- Mesh mesh1;
- PeerIdentity peerIdentity;
- @Override
- public void onChannelEnd(Mesh.Channel channel) {
- Mesh.Channel myChannel = mesh1.createChannel(peerIdentity, 42,
false, true);
- myChannel.send(new TestMessage());
- }
- }
-
- /**
- * Send a message locally, to our own peer.
- */
- @Test (timeout = 5000)
- public void test_mesh_send() {
- Program.configureLogging("DEBUG");
- // we want the full arm here (starts both mesh and core)
- final TestingSubsystem ts = new TestingSubsystem("arm");
- final Configuration cfg = ts.getConfiguration();
-
- final MessageHandler1 mh = new MessageHandler1();
- // FIXME: use CryptoEcc instead of Core once available and compatible
- Core.withPeerIdentity(cfg, new PeerIdentityContinuation() {
- @Override
- public void cont(PeerIdentity peerIdentity) {
- System.out.println("got peer identity from core");
- //
- MyChannelEndHandler teh = new MyChannelEndHandler();
- // first mesh handle, used to send the message
- final Mesh mesh1 = new Mesh(cfg, teh);
- teh.mesh1 = mesh1;
- teh.peerIdentity = peerIdentity;
- // second mesh handle, used to receive the message
- final Mesh mesh2 = new Mesh(cfg, new InboundChannelHandler() {
- @Override
- public void onInboundChannel(Mesh.Channel tunnel,
PeerIdentity initiator) {
- System.out.println("got inbound channel " + initiator);
- }
- }, new ChannelEndHandler() {
- @Override
- public void onChannelEnd(Mesh.Channel tunnel) {
- System.out.println("channel end handler called");
- }
- }, mh, 42);
- mh.m1 = mesh1;
- mh.m2 = mesh2;
- Mesh.Channel channel = mesh1.createChannel(peerIdentity, 42,
false, true);
- channel.send(new TestMessage());
- }
- });
- Scheduler.run();
- }
-}
Modified: gnunet-java/src/test/python/test_voting.conf
===================================================================
--- gnunet-java/src/test/python/test_voting.conf 2014-06-04 20:34:08 UTC
(rev 33531)
+++ gnunet-java/src/test/python/test_voting.conf 2014-06-04 21:12:52 UTC
(rev 33532)
@@ -1,5 +1,5 @@
[arm]
-DEFAULTSERVICES = mesh set consensus secretsharing
+DEFAULTSERVICES = cadet set consensus secretsharing
[testbed]
OVERLAY_TOPOLOGY = CLIQUE
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r33532 - in gnunet-java/src: main/java/org/gnunet/cadet main/java/org/gnunet/cadet/messages main/java/org/gnunet/voting test/bash test/java/org/gnunet/cadet test/python,
gnunet <=