Explorar el Código

Windows build fixes.

Adam Ierymenko hace 8 años
padre
commit
88997a0314

+ 2 - 2
ext/installfiles/windows/chocolatey/zerotier-one/tools/chocolateyinstall.ps1

@@ -1,7 +1,7 @@
 $packageName = 'zerotier-one'
 $installerType = 'msi'
-$url = 'https://download.zerotier.com/RELEASES/1.1.14/dist/ZeroTier%20One.msi'
-$url64 = 'https://download.zerotier.com/RELEASES/1.1.14/dist/ZeroTier%20One.msi'
+$url = 'https://download.zerotier.com/RELEASES/1.2.4/dist/ZeroTier%20One.msi'
+$url64 = 'https://download.zerotier.com/RELEASES/1.2.4/dist/ZeroTier%20One.msi'
 $silentArgs = '/quiet'
 $validExitCodes = @(0,3010)
 

+ 2 - 2
osdep/Binder.hpp

@@ -150,7 +150,7 @@ public:
 							case InetAddress::IP_SCOPE_GLOBAL:
 							case InetAddress::IP_SCOPE_SHARED:
 							case InetAddress::IP_SCOPE_PRIVATE:
-								for(int x=0;x<portCount;++x) {
+								for(int x=0;x<(int)portCount;++x) {
 									ip.setPort(ports[x]);
 									localIfAddrs.insert(std::pair<InetAddress,std::string>(ip,std::string()));
 								}
@@ -315,7 +315,7 @@ public:
 
 		// Default to binding to wildcard if we can't enumerate addresses
 		if (localIfAddrs.empty()) {
-			for(int x=0;x<portCount;++x) {
+			for(int x=0;x<(int)portCount;++x) {
 				localIfAddrs.insert(std::pair<InetAddress,std::string>(InetAddress((uint32_t)0,ports[x]),std::string()));
 				localIfAddrs.insert(std::pair<InetAddress,std::string>(InetAddress((const void *)"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0",16,ports[x]),std::string()));
 			}

+ 28 - 27
osdep/WindowsEthernetTap.cpp

@@ -722,20 +722,21 @@ bool WindowsEthernetTap::removeIp(const InetAddress &ip)
 							DeleteUnicastIpAddressEntry(&(ipt->Table[i]));
 							FreeMibTable(ipt);
 
-                            if (ip.isV4()) {
-                                std::vector<std::string> regIps(_getRegistryIPv4Value("IPAddress"));
-                                std::vector<std::string> regSubnetMasks(_getRegistryIPv4Value("SubnetMask"));
-                                std::string ipstr(ip.toIpString());
-                                for (std::vector<std::string>::iterator rip(regIps.begin()), rm(regSubnetMasks.begin()); ((rip != regIps.end()) && (rm != regSubnetMasks.end())); ++rip, ++rm) {
-                                    if (*rip == ipstr) {
-                                        regIps.erase(rip);
-                                        regSubnetMasks.erase(rm);
-                                        _setRegistryIPv4Value("IPAddress", regIps);
-                                        _setRegistryIPv4Value("SubnetMask", regSubnetMasks);
-                                        break;
-                                    }
-                                }
-                            }
+							if (ip.isV4()) {
+								std::vector<std::string> regIps(_getRegistryIPv4Value("IPAddress"));
+								std::vector<std::string> regSubnetMasks(_getRegistryIPv4Value("SubnetMask"));
+								char ipbuf[64];
+								std::string ipstr(ip.toIpString(ipbuf));
+								for (std::vector<std::string>::iterator rip(regIps.begin()), rm(regSubnetMasks.begin()); ((rip != regIps.end()) && (rm != regSubnetMasks.end())); ++rip, ++rm) {
+									if (*rip == ipstr) {
+										regIps.erase(rip);
+										regSubnetMasks.erase(rm);
+										_setRegistryIPv4Value("IPAddress", regIps);
+										_setRegistryIPv4Value("SubnetMask", regSubnetMasks);
+										break;
+									}
+								}
+							}
 
 							return true;
 						}
@@ -750,7 +751,7 @@ bool WindowsEthernetTap::removeIp(const InetAddress &ip)
 
 std::vector<InetAddress> WindowsEthernetTap::ips() const
 {
-	static const InetAddress linkLocalLoopback("fe80::1",64); // what is this and why does Windows assign it?
+	static const InetAddress linkLocalLoopback("fe80::1/64"); // what is this and why does Windows assign it?
 	std::vector<InetAddress> addrs;
 
 	if (!_initialized)
@@ -1226,18 +1227,18 @@ void WindowsEthernetTap::_syncIps()
 			CreateUnicastIpAddressEntry(&ipr);
 		}
 
-        if (aip->isV4())
-        {
-            std::string ipStr(aip->toIpString());
-            std::vector<std::string> regIps(_getRegistryIPv4Value("IPAddress"));
-            if (std::find(regIps.begin(), regIps.end(), ipStr) == regIps.end()) {
-                std::vector<std::string> regSubnetMasks(_getRegistryIPv4Value("SubnetMask"));
-                regIps.push_back(ipStr);
-                regSubnetMasks.push_back(aip->netmask().toIpString());
-                _setRegistryIPv4Value("IPAddress", regIps);
-                _setRegistryIPv4Value("SubnetMask", regSubnetMasks);
-            }
-        }
+		if (aip->isV4()) {
+			char ipbuf[64];
+			std::string ipStr(aip->toIpString(ipbuf));
+			std::vector<std::string> regIps(_getRegistryIPv4Value("IPAddress"));
+			if (std::find(regIps.begin(), regIps.end(), ipStr) == regIps.end()) {
+				std::vector<std::string> regSubnetMasks(_getRegistryIPv4Value("SubnetMask"));
+				regIps.push_back(ipStr);
+				regSubnetMasks.push_back(aip->netmask().toIpString(ipbuf));
+				_setRegistryIPv4Value("IPAddress", regIps);
+				_setRegistryIPv4Value("SubnetMask", regSubnetMasks);
+			}
+		}
 	}
 }
 

+ 1 - 1
service/OneService.cpp

@@ -363,7 +363,7 @@ struct TcpConnection
 	OneServiceImpl *parent;
 	PhySocket *sock;
 	InetAddress remoteAddr;
-	unsigned long lastReceive;
+	uint64_t lastReceive;
 
 	// Used for inbound HTTP connections
 	http_parser parser;