set natpmp socket non blocking
This commit is contained in:
parent
0d56822a71
commit
4cdc0b762e
|
@ -2,6 +2,7 @@ $Id: Changelog.txt,v 1.286 2012/05/27 22:35:10 nanard Exp $
|
||||||
|
|
||||||
2012/05/28:
|
2012/05/28:
|
||||||
clean linux/ifacewatcher.c
|
clean linux/ifacewatcher.c
|
||||||
|
set natpmp socket non blocking
|
||||||
|
|
||||||
2012/05/24:
|
2012/05/24:
|
||||||
More solaris fixes
|
More solaris fixes
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* $Id: natpmp.c,v 1.30 2012/04/30 21:08:00 nanard Exp $ */
|
/* $Id: natpmp.c,v 1.32 2012/05/27 22:36:03 nanard Exp $ */
|
||||||
/* MiniUPnP project
|
/* MiniUPnP project
|
||||||
* (c) 2007-2012 Thomas Bernard
|
* (c) 2007-2012 Thomas Bernard
|
||||||
* http://miniupnp.free.fr/ or http://miniupnp.tuxfamily.org/
|
* http://miniupnp.free.fr/ or http://miniupnp.tuxfamily.org/
|
||||||
|
@ -22,19 +22,31 @@
|
||||||
#include "getifaddr.h"
|
#include "getifaddr.h"
|
||||||
#include "upnpredirect.h"
|
#include "upnpredirect.h"
|
||||||
#include "commonrdr.h"
|
#include "commonrdr.h"
|
||||||
|
#include "upnputils.h"
|
||||||
|
|
||||||
#ifdef ENABLE_NATPMP
|
#ifdef ENABLE_NATPMP
|
||||||
|
|
||||||
int OpenAndConfNATPMPSocket(in_addr_t addr)
|
int OpenAndConfNATPMPSocket(in_addr_t addr)
|
||||||
{
|
{
|
||||||
int snatpmp;
|
int snatpmp;
|
||||||
|
int i = 1;
|
||||||
snatpmp = socket(PF_INET, SOCK_DGRAM, 0/*IPPROTO_UDP*/);
|
snatpmp = socket(PF_INET, SOCK_DGRAM, 0/*IPPROTO_UDP*/);
|
||||||
if(snatpmp<0)
|
if(snatpmp<0)
|
||||||
{
|
{
|
||||||
syslog(LOG_ERR, "socket(natpmp): %m");
|
syslog(LOG_ERR, "%s: socket(natpmp): %m",
|
||||||
|
"OpenAndConfNATPMPSocket");
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
else
|
if(setsockopt(snatpmp, SOL_SOCKET, SO_REUSEADDR, &i, sizeof(i)) < 0)
|
||||||
|
{
|
||||||
|
syslog(LOG_WARNING, "%s: setsockopt(natpmp, SO_REUSEADDR): %m",
|
||||||
|
"OpenAndConfNATPMPSocket");
|
||||||
|
}
|
||||||
|
if(!set_non_blocking(snatpmp))
|
||||||
|
{
|
||||||
|
syslog(LOG_WARNING, "%s: set_non_blocking(): %m",
|
||||||
|
"OpenAndConfNATPMPSocket");
|
||||||
|
}
|
||||||
{
|
{
|
||||||
struct sockaddr_in natpmp_addr;
|
struct sockaddr_in natpmp_addr;
|
||||||
memset(&natpmp_addr, 0, sizeof(natpmp_addr));
|
memset(&natpmp_addr, 0, sizeof(natpmp_addr));
|
||||||
|
|
Loading…
Reference in New Issue