New simpler command interface via loopback UDP protected by a crypto token.
This commit is contained in:
parent
557cc359b3
commit
76bc9968ff
28 changed files with 202 additions and 7121 deletions
|
@ -49,6 +49,7 @@
|
|||
namespace ZeroTier {
|
||||
|
||||
UdpSocket::UdpSocket(
|
||||
bool localOnly,
|
||||
int localPort,
|
||||
bool ipv6,
|
||||
void (*packetHandler)(UdpSocket *,void *,const InetAddress &,const void *,unsigned int),
|
||||
|
@ -87,7 +88,9 @@ UdpSocket::UdpSocket(
|
|||
memset(&sin6,0,sizeof(sin6));
|
||||
sin6.sin6_family = AF_INET6;
|
||||
sin6.sin6_port = htons(localPort);
|
||||
memcpy(&(sin6.sin6_addr),&in6addr_any,sizeof(struct in6_addr));
|
||||
if (localOnly)
|
||||
memcpy(&(sin6.sin6_addr.s6_addr),InetAddress::LO6.rawIpBytes(),16);
|
||||
else memcpy(&(sin6.sin6_addr),&in6addr_any,sizeof(struct in6_addr));
|
||||
if (::bind(_sock,(const struct sockaddr *)&sin6,sizeof(sin6))) {
|
||||
::close(_sock);
|
||||
throw std::runtime_error("unable to bind to port");
|
||||
|
@ -109,7 +112,9 @@ UdpSocket::UdpSocket(
|
|||
memset(&sin,0,sizeof(sin));
|
||||
sin.sin_family = AF_INET;
|
||||
sin.sin_port = htons(localPort);
|
||||
sin.sin_addr.s_addr = INADDR_ANY;
|
||||
if (localOnly)
|
||||
memcpy(&(sin.sin_addr.s_addr),InetAddress::LO4.rawIpBytes(),4);
|
||||
else sin.sin_addr.s_addr = INADDR_ANY;
|
||||
if (::bind(_sock,(const struct sockaddr *)&sin,sizeof(sin))) {
|
||||
::close(_sock);
|
||||
throw std::runtime_error("unable to bind to port");
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue