mirror of
https://github.com/zerotier/ZeroTierOne.git
synced 2025-01-03 03:36:41 +00:00
Merge branch 'dev' into libpq
This commit is contained in:
commit
c1ea1329c1
@ -1043,6 +1043,7 @@ unsigned int EmbeddedNetworkController::handleControlPlaneHttpDELETE(
|
|||||||
|
|
||||||
json network,member;
|
json network,member;
|
||||||
_db->get(nwid,network,address,member);
|
_db->get(nwid,network,address,member);
|
||||||
|
_db->eraseMember(nwid, address);
|
||||||
|
|
||||||
{
|
{
|
||||||
std::lock_guard<std::mutex> l(_memberStatus_l);
|
std::lock_guard<std::mutex> l(_memberStatus_l);
|
||||||
|
@ -136,12 +136,24 @@ void FileDB::eraseNetwork(const uint64_t networkId)
|
|||||||
get(networkId,network);
|
get(networkId,network);
|
||||||
char p[16384];
|
char p[16384];
|
||||||
OSUtils::ztsnprintf(p,sizeof(p),"%s" ZT_PATH_SEPARATOR_S "%.16llx.json",_networksPath.c_str(),networkId);
|
OSUtils::ztsnprintf(p,sizeof(p),"%s" ZT_PATH_SEPARATOR_S "%.16llx.json",_networksPath.c_str(),networkId);
|
||||||
|
|
||||||
|
if (OSUtils::fileExists(p,false)){
|
||||||
OSUtils::rm(p);
|
OSUtils::rm(p);
|
||||||
|
}
|
||||||
_networkChanged(network,nullJson,true);
|
_networkChanged(network,nullJson,true);
|
||||||
}
|
}
|
||||||
|
|
||||||
void FileDB::eraseMember(const uint64_t networkId,const uint64_t memberId)
|
void FileDB::eraseMember(const uint64_t networkId,const uint64_t memberId)
|
||||||
{
|
{
|
||||||
|
nlohmann::json network,member,nullJson;
|
||||||
|
get(networkId,network);
|
||||||
|
get(memberId,member);
|
||||||
|
char p[16384];
|
||||||
|
OSUtils::ztsnprintf(p,sizeof(p),"%s" ZT_PATH_SEPARATOR_S "%.16llx" ZT_PATH_SEPARATOR_S "member" ZT_PATH_SEPARATOR_S "%.10llx.json",_networksPath.c_str(),networkId,memberId);
|
||||||
|
if (OSUtils::fileExists(p,false)){
|
||||||
|
OSUtils::rm(p);
|
||||||
|
}
|
||||||
|
_memberChanged(member,nullJson,true);
|
||||||
}
|
}
|
||||||
|
|
||||||
void FileDB::nodeIsOnline(const uint64_t networkId,const uint64_t memberId,const InetAddress &physicalAddress)
|
void FileDB::nodeIsOnline(const uint64_t networkId,const uint64_t memberId,const InetAddress &physicalAddress)
|
||||||
|
@ -27,7 +27,7 @@ kextunload '/Library/Application Support/ZeroTier/One/tap.kext' >>/dev/null 2>&1
|
|||||||
echo "Removing ZeroTier One files..."
|
echo "Removing ZeroTier One files..."
|
||||||
|
|
||||||
rm -rf '/Applications/ZeroTier One.app'
|
rm -rf '/Applications/ZeroTier One.app'
|
||||||
rm -f '/usr/bin/zerotier-one' '/usr/bin/zerotier-idtool' '/usr/bin/zerotier-cli' '/Library/LaunchDaemons/com.zerotier.one.plist'
|
rm -f '/usr/local/bin/zerotier-one' '/usr/local/bin/zerotier-idtool' '/usr/local/bin/zerotier-cli' '/Library/LaunchDaemons/com.zerotier.one.plist'
|
||||||
|
|
||||||
cd '/Library/Application Support/ZeroTier/One'
|
cd '/Library/Application Support/ZeroTier/One'
|
||||||
if [ "`pwd`" = '/Library/Application Support/ZeroTier/One' ]; then
|
if [ "`pwd`" = '/Library/Application Support/ZeroTier/One' ]; then
|
||||||
|
@ -139,33 +139,15 @@ char *InetAddress::toString(char buf[64]) const
|
|||||||
|
|
||||||
char *InetAddress::toIpString(char buf[64]) const
|
char *InetAddress::toIpString(char buf[64]) const
|
||||||
{
|
{
|
||||||
|
buf[0] = (char)0;
|
||||||
switch(ss_family) {
|
switch(ss_family) {
|
||||||
case AF_INET: {
|
case AF_INET: {
|
||||||
const uint8_t *a = reinterpret_cast<const uint8_t *>(&(reinterpret_cast<const struct sockaddr_in *>(this)->sin_addr.s_addr));
|
inet_ntop(AF_INET, &reinterpret_cast<const struct sockaddr_in *>(this)->sin_addr.s_addr, buf, INET_ADDRSTRLEN);
|
||||||
char *p = buf;
|
|
||||||
for(int i=0;;++i) {
|
|
||||||
Utils::decimal((unsigned long)a[i],p);
|
|
||||||
if (i != 3) {
|
|
||||||
while (*p) ++p;
|
|
||||||
*(p++) = '.';
|
|
||||||
} else break;
|
|
||||||
}
|
|
||||||
} break;
|
} break;
|
||||||
|
|
||||||
case AF_INET6: {
|
case AF_INET6: {
|
||||||
uint16_t a[8];
|
inet_ntop(AF_INET6, reinterpret_cast<const struct sockaddr_in6 *>(this)->sin6_addr.s6_addr, buf, INET6_ADDRSTRLEN);
|
||||||
ZT_FAST_MEMCPY(a,reinterpret_cast<const struct sockaddr_in6 *>(this)->sin6_addr.s6_addr,16);
|
|
||||||
char *p = buf;
|
|
||||||
for(int i=0;i<8;++i) {
|
|
||||||
Utils::hex(Utils::ntoh(a[i]),p);
|
|
||||||
p[4] = (i == 7) ? (char)0 : ':';
|
|
||||||
p += 5;
|
|
||||||
}
|
|
||||||
} break;
|
} break;
|
||||||
|
|
||||||
default:
|
|
||||||
buf[0] = (char)0;
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
return buf;
|
return buf;
|
||||||
}
|
}
|
||||||
@ -191,28 +173,17 @@ bool InetAddress::fromString(const char *ipSlashPort)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (strchr(buf,':')) {
|
if (strchr(buf,':')) {
|
||||||
uint16_t a[8];
|
|
||||||
unsigned int b = 0;
|
|
||||||
char *saveptr = (char *)0;
|
|
||||||
for(char *s=Utils::stok(buf,":",&saveptr);((s)&&(b<8));s=Utils::stok((char *)0,":",&saveptr))
|
|
||||||
a[b++] = Utils::hton((uint16_t)(Utils::hexStrToUInt(s) & 0xffff));
|
|
||||||
|
|
||||||
struct sockaddr_in6 *const in6 = reinterpret_cast<struct sockaddr_in6 *>(this);
|
struct sockaddr_in6 *const in6 = reinterpret_cast<struct sockaddr_in6 *>(this);
|
||||||
|
inet_pton(AF_INET6, buf, &in6->sin6_addr.s6_addr);
|
||||||
in6->sin6_family = AF_INET6;
|
in6->sin6_family = AF_INET6;
|
||||||
ZT_FAST_MEMCPY(in6->sin6_addr.s6_addr,a,16);
|
|
||||||
in6->sin6_port = Utils::hton((uint16_t)port);
|
in6->sin6_port = Utils::hton((uint16_t)port);
|
||||||
|
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
} else if (strchr(buf,'.')) {
|
} else if (strchr(buf,'.')) {
|
||||||
uint8_t a[4];
|
|
||||||
unsigned int b = 0;
|
|
||||||
char *saveptr = (char *)0;
|
|
||||||
for(char *s=Utils::stok(buf,".",&saveptr);((s)&&(b<4));s=Utils::stok((char *)0,".",&saveptr))
|
|
||||||
a[b++] = (uint8_t)(Utils::strToUInt(s) & 0xff);
|
|
||||||
|
|
||||||
struct sockaddr_in *const in = reinterpret_cast<struct sockaddr_in *>(this);
|
struct sockaddr_in *const in = reinterpret_cast<struct sockaddr_in *>(this);
|
||||||
|
inet_pton(AF_INET, buf, &in->sin_addr.s_addr);
|
||||||
in->sin_family = AF_INET;
|
in->sin_family = AF_INET;
|
||||||
ZT_FAST_MEMCPY(&(in->sin_addr.s_addr),a,4);
|
|
||||||
in->sin_port = Utils::hton((uint16_t)port);
|
in->sin_port = Utils::hton((uint16_t)port);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
Loading…
Reference in New Issue
Block a user