miniupnp/miniupnpd/natpmp.h

36 lines
1.3 KiB
C

/* $Id: natpmp.h,v 1.12 2014/03/24 10:49:46 nanard Exp $ */
/* MiniUPnP project
* author : Thomas Bernard
* website : http://miniupnp.free.fr/ or http://miniupnp.tuxfamily.org/
*/
#ifndef NATPMP_H_INCLUDED
#define NATPMP_H_INCLUDED
/* The NAT-PMP specification which can be found at the url :
* http://files.dns-sd.org/draft-cheshire-nat-pmp.txt
* draft version 3 of April 2008
* define 5351 as listening port for the gateway,
* and the 224.0.0.1 port 5350 as the local link
* multicast address for address change announces.
* Previous versions of the specification defined 5351
* as the port for address change announces. */
#define NATPMP_PORT (5351)
#define NATPMP_NOTIF_PORT (5350)
#define NATPMP_NOTIF_ADDR ("224.0.0.1")
int OpenAndConfNATPMPSockets(int * sockets);
/* receiveraddr is only used with IPV6 sockets */
int ReceiveNATPMPOrPCPPacket(int s, struct sockaddr * senderaddr,
socklen_t * senderaddrlen,
struct sockaddr_in6 * receiveraddr,
unsigned char * msg_buff, size_t msg_buff_size);
void ProcessIncomingNATPMPPacket(int s, unsigned char * msg_buff, int len,
struct sockaddr_in * senderaddr);
void SendNATPMPPublicAddressChangeNotification(int * sockets, int n_sockets);
#endif