From: Christian Grothoff Date: Thu, 2 Sep 2010 08:29:32 +0000 (+0000) Subject: hdr X-Git-Tag: initial-import-from-subversion-38251~20478 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=d82613030b93b97c8efcfe7706ce64561e1ae1b3;p=oweals%2Fgnunet.git hdr --- 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