[Top][All Lists]
[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 */
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r15810 - in gnunet/src: include nat,
gnunet <=