gnunet-svn
[Top][All Lists]
Advanced

[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




reply via email to

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