summaryrefslogtreecommitdiff
path: root/src/nat/nat.h
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2010-09-02 08:29:32 +0000
committerChristian Grothoff <christian@grothoff.org>2010-09-02 08:29:32 +0000
commitd82613030b93b97c8efcfe7706ce64561e1ae1b3 (patch)
tree1dd743f78ff70e6662abd8e3baa9ec72e33d1705 /src/nat/nat.h
parentbd55ede36d67a7b13264b9cdf2c0b5a198e57871 (diff)
hdr
Diffstat (limited to 'src/nat/nat.h')
-rw-r--r--src/nat/nat.h73
1 files changed, 73 insertions, 0 deletions
diff --git a/src/nat/nat.h b/src/nat/nat.h
new file mode 100644
index 000000000..a0924af08
--- /dev/null
+++ b/src/nat/nat.h
@@ -0,0 +1,73 @@
+/*
+ This file is part of GNUnet.
+ (C) 2007, 2008, 2009 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.h
+ * @brief Library handling UPnP and NAT-PMP port forwarding and
+ * external IP address retrieval
+ * @author Milan Bouchet-Valat
+ */
+
+#ifndef NAT_H
+#define NAT_H
+
+#define DEBUG GNUNET_YES
+
+/**
+ * Used to communicate with the UPnP and NAT-PMP plugins
+ */
+enum GNUNET_NAT_PortState
+ {
+ GNUNET_NAT_PORT_ERROR,
+
+ /**
+ * the port isn't forwarded
+ */
+ GNUNET_NAT_PORT_UNMAPPED,
+
+ /**
+ * we're cancelling the port forwarding
+ */
+ GNUNET_NAT_PORT_UNMAPPING,
+
+ /**
+ * we're in the process of trying to set up port forwarding
+ */
+ GNUNET_NAT_PORT_MAPPING,
+
+ /**
+ * we've successfully forwarded the port
+ */
+ GNUNET_NAT_PORT_MAPPED
+ };
+
+
+/**
+ * Compare the sin(6)_addr fields of AF_INET or AF_INET(6) sockaddr.
+ *
+ * @param a first sockaddr
+ * @param b second sockaddr
+ * @return 0 if addresses are equal, non-null value otherwise
+ */
+int GNUNET_NAT_cmp_addr (const struct sockaddr *a,
+ const struct sockaddr *b);
+
+
+#endif