gnunet-svn
[Top][All Lists]
Advanced

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

[GNUnet-SVN] r15810 - in gnunet/src: include nat


From: gnunet
Subject: [GNUnet-SVN] r15810 - in gnunet/src: include nat
Date: Fri, 1 Jul 2011 12:38:08 +0200

Author: grothoff
Date: 2011-07-01 12:38:08 +0200 (Fri, 01 Jul 2011)
New Revision: 15810

Added:
   gnunet/src/nat/nat_test.c
Modified:
   gnunet/src/include/gnunet_nat_lib.h
   gnunet/src/nat/Makefile.am
   gnunet/src/nat/gnunet-nat-server.c
Log:
draft for NAT_test API

Modified: gnunet/src/include/gnunet_nat_lib.h
===================================================================
--- gnunet/src/include/gnunet_nat_lib.h 2011-07-01 10:27:11 UTC (rev 15809)
+++ gnunet/src/include/gnunet_nat_lib.h 2011-07-01 10:38:08 UTC (rev 15810)
@@ -1,6 +1,6 @@
 /*
      This file is part of GNUnet.
-     (C) 2007, 2008, 2009, 2010 Christian Grothoff (and other contributing 
authors)
+     (C) 2007, 2008, 2009, 2010, 2011 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
@@ -138,6 +138,54 @@
 void 
 GNUNET_NAT_unregister (struct GNUNET_NAT_Handle *h);
 
+
+/**
+ * Handle to a NAT test.
+ */
+struct GNUNET_NAT_Test;
+
+/**
+ * Function called to report success or failure for
+ * NAT configuration test.
+ *
+ * @param cls closure
+ * @param success GNUNET_OK on success, GNUNET_NO on failure,
+ *                GNUNET_SYSERR if the test could not be 
+ *                properly started (internal failure)
+ */
+typedef void (*GNUNET_NAT_TestCallback)(void *cls,
+                                       int success);
+
+/**
+ * Start testing if NAT traversal works using the
+ * given configuration (IPv4-only).
+ *
+ * @param cfg configuration for the NAT traversal
+ * @param is_tcp GNUNET_YES to test TCP, GNUNET_NO to test UDP
+ * @param bnd_port port to bind to
+ * @param adv_port externally advertised port to use
+ * @param report function to call with the result of the test
+ * @param report_cls closure for report
+ * @return handle to cancel NAT test
+ */
+struct GNUNET_NAT_Test *
+GNUNET_NAT_test_start (const struct GNUNET_CONFIGURATION_Handle *cfg,
+                      int is_tcp,
+                      uint16_t bnd_port,
+                      uint16_t adv_port,
+                      GNUNET_NAT_TestCallback report,
+                      void *report_cls);
+
+
+/**
+ * Stop an active NAT test.
+ *
+ * @param tst test to stop.
+ */
+void
+GNUNET_NAT_test_stop (struct GNUNET_NAT_Test *tst);
+
+
 #endif 
 
 /* end of gnunet_nat_lib.h */

Modified: gnunet/src/nat/Makefile.am
===================================================================
--- gnunet/src/nat/Makefile.am  2011-07-01 10:27:11 UTC (rev 15809)
+++ gnunet/src/nat/Makefile.am  2011-07-01 10:38:08 UTC (rev 15810)
@@ -43,7 +43,7 @@
 lib_LTLIBRARIES = libgnunetnat.la
 
 libgnunetnat_la_SOURCES = \
-  nat.c 
+  nat.c nat_test.c nat.h
 
 libgnunetnat_la_LIBADD = \
   $(top_builddir)/src/util/libgnunetutil.la \

Modified: gnunet/src/nat/gnunet-nat-server.c
===================================================================
--- gnunet/src/nat/gnunet-nat-server.c  2011-07-01 10:27:11 UTC (rev 15809)
+++ gnunet/src/nat/gnunet-nat-server.c  2011-07-01 10:38:08 UTC (rev 15810)
@@ -22,7 +22,6 @@
  * @file src/nat/gnunet-nat-server.c
  * @brief Daemon to run on 'gnunet.org' to help test NAT traversal code
  * @author Christian Grothoff
- *
  */
 #include "platform.h"
 #include "gnunet_util_lib.h"

Added: gnunet/src/nat/nat_test.c
===================================================================
--- gnunet/src/nat/nat_test.c                           (rev 0)
+++ gnunet/src/nat/nat_test.c   2011-07-01 10:38:08 UTC (rev 15810)
@@ -0,0 +1,78 @@
+/*
+     This file is part of GNUnet.
+     (C) 2011 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.
+*/
+
+/**
+ * @file nat/nat_test.c
+ * @brief functions to test if the NAT configuration is successful at 
achieving NAT traversal (with the help of a gnunet-nat-server)
+ * @author Christian Grothoff
+ */
+#include "platform.h"
+#include "gnunet_util_lib.h"
+#include "gnunet_nat_lib.h"
+#include "nat.h"
+
+
+/**
+ * Handle to a NAT test.
+ */
+struct GNUNET_NAT_Test
+{
+  GNUNET_NAT_TestCallback report;
+  
+  void *report_cls;
+};
+
+
+/**
+ * Start testing if NAT traversal works using the
+ * given configuration (IPv4-only).
+ *
+ * @param cfg configuration for the NAT traversal
+ * @param is_tcp GNUNET_YES to test TCP, GNUNET_NO to test UDP
+ * @param bnd_port port to bind to
+ * @param adv_port externally advertised port to use
+ * @param report function to call with the result of the test
+ * @param report_cls closure for report
+ * @return handle to cancel NAT test
+ */
+struct GNUNET_NAT_Test *
+GNUNET_NAT_test_start (const struct GNUNET_CONFIGURATION_Handle *cfg,
+                      int is_tcp,
+                      uint16_t bnd_port,
+                      uint16_t adv_port,
+                      GNUNET_NAT_TestCallback report,
+                      void *report_cls)
+{
+  return NULL;
+}
+
+
+/**
+ * Stop an active NAT test.
+ *
+ * @param tst test to stop.
+ */
+void
+GNUNET_NAT_test_stop (struct GNUNET_NAT_Test *tst)
+{
+  GNUNET_free (tst);
+}
+
+/* end of nat_test.c */




reply via email to

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