diff --git a/Jenkinsfile b/Jenkinsfile index 993ce45..efe45d3 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -6,9 +6,9 @@ slackSend "Building ${env.JOB_NAME} #${env.BUILD_NUMBER} \n Change Log: \n ${cha parallel 'centos7': { node('centos7') { - - // ----- Network Stacks ----- - + // ------------------------------------------------------------------------------ + // --------------------------- Network Stacks (Linux) --------------------------- + // ------------------------------------------------------------------------------ // (lwIP IPv4) try { @@ -62,9 +62,9 @@ parallel 'centos7': { throw err } - - // ----- SDK Service Library ----- - + // ------------------------------------------------------------------------------ + // ------------------------ SDK Service Library (Linux) ------------------------- + // ------------------------------------------------------------------------------ // service (lwIP IPv4) try { @@ -118,9 +118,9 @@ parallel 'centos7': { throw err } - - // ----- Intercept Library ----- - + // ------------------------------------------------------------------------------ + // --------------------------- Intercept Library (Linux) ------------------------ + // ------------------------------------------------------------------------------ // intercept try { @@ -140,6 +140,84 @@ parallel 'centos7': { unlockKeychainMac "~/Library/Keychains/login.keychain-db" + // ------------------------------------------------------------------------------ + // --------------------------- Network Stacks (macOS) --------------------------- + // ------------------------------------------------------------------------------ + + // (lwIP IPv4) + try { + checkout scm + stage('lwIP IPv4') { + sh 'make clean; make lwip SDK_IPV4=1' + } + } + catch (err) { + currentBuild.result = "FAILURE" + slackSend color: '#ff0000', message: "${env.JOB_NAME} broken on macOS (<${env.BUILD_URL}|Open>)" + throw err + } + + // (lwIP IPv6) + try { + checkout scm + stage('lwIP IPv6') { + sh 'make clean; make lwip SDK_IPV6=1' + } + } + catch (err) { + currentBuild.result = "FAILURE" + slackSend color: '#ff0000', message: "${env.JOB_NAME} broken on macOS (<${env.BUILD_URL}|Open>)" + throw err + } + + // (picoTCP IPv4) + try { + checkout scm + stage('picoTCP IPv4') { + sh 'make clean; make pico SDK_IPV4=1' + } + } + catch (err) { + currentBuild.result = "FAILURE" + slackSend color: '#ff0000', message: "${env.JOB_NAME} broken on macOS (<${env.BUILD_URL}|Open>)" + throw err + } + + // (picoTCP IPv6) + try { + checkout scm + stage('picoTCP IPv6') { + sh 'make clean; make pico SDK_IPV6=1' + } + } + catch (err) { + currentBuild.result = "FAILURE" + slackSend color: '#ff0000', message: "${env.JOB_NAME} broken on macOS (<${env.BUILD_URL}|Open>)" + throw err + } + + + // ------------------------------------------------------------------------------ + // -------------------------- Intercept Library (macOS) ------------------------- + // ------------------------------------------------------------------------------ + + // osx_intercept + try { + checkout scm + stage('osx_intercept') { + sh 'make osx_intercept' + } + } + catch (err) { + currentBuild.result = "FAILURE" + slackSend color: '#ff0000', message: "${env.JOB_NAME} broken on macOS (<${env.BUILD_URL}|Open>)" + throw err + } + + // ------------------------------------------------------------------------------ + // -------------------------- SDK Service Library (macOS) ----------------------- + // ------------------------------------------------------------------------------ + // osx_service_and_intercept try { checkout scm @@ -153,9 +231,46 @@ parallel 'centos7': { throw err } + try { + checkout scm + stage('osx_service_and_intercept (lwIP IPv6)') { + sh 'make osx_service_and_intercept SDK_LWIP=1 SDK_IPV6=1' + } + } + catch (err) { + currentBuild.result = "FAILURE" + slackSend color: '#ff0000', message: "${env.JOB_NAME} broken on macOS (<${env.BUILD_URL}|Open>)" + throw err + } - // ----- App Frameworks ----- + try { + checkout scm + stage('osx_service_and_intercept (picoTCP IPv4)') { + sh 'make osx_service_and_intercept SDK_PICOTCP=1 SDK_IPV4=1' + } + } + catch (err) { + currentBuild.result = "FAILURE" + slackSend color: '#ff0000', message: "${env.JOB_NAME} broken on macOS (<${env.BUILD_URL}|Open>)" + throw err + } + + try { + checkout scm + stage('osx_service_and_intercept (lwIP IPv4)') { + sh 'make osx_service_and_intercept SDK_PICOTCP=1 SDK_IPV6=1' + } + } + catch (err) { + currentBuild.result = "FAILURE" + slackSend color: '#ff0000', message: "${env.JOB_NAME} broken on macOS (<${env.BUILD_URL}|Open>)" + throw err + } + + // ------------------------------------------------------------------------------ + // -------------------------- App Frameworks (macOS/iOS) ------------------------ + // ------------------------------------------------------------------------------ // osx_app_framework try { diff --git a/src/proxy.cpp b/src/proxy.cpp index 8c9199b..b2ec026 100644 --- a/src/proxy.cpp +++ b/src/proxy.cpp @@ -106,7 +106,7 @@ namespace ZeroTier struct sockaddr_in *in4 = (struct sockaddr_in *)&addr; proxyListenPhySocket = _phy.tcpListen((const struct sockaddr*)&in4,(void *)this); sockstate = SOCKS_OPEN; - DEBUG_INFO("SOCKS5 proxy server address for <%.16lx> is: <%s> (sock=%p)", nwid, inet_ntoa(in4->sin_addr), /*ntohs(in4->sin_port), */(void*)&proxyListenPhySocket); + DEBUG_INFO("SOCKS5 proxy server address for <%.16llx> is: <%s> (sock=%p)", nwid, inet_ntoa(in4->sin_addr), /*ntohs(in4->sin_port), */(void*)&proxyListenPhySocket); return 0; } else { @@ -126,7 +126,7 @@ namespace ZeroTier unsigned int randp = 0; Utils::getSecureRandom(&randp,sizeof(randp)); portno = 1000 + (randp % 1000); - DEBUG_INFO("no port specified in networks.d/%.16lx.port, randomly picking port", nwid); + DEBUG_INFO("no port specified in networks.d/%.16llx.port, randomly picking port", nwid); std::stringstream ss; ss << portno; portStr = ss.str(); diff --git a/src/sdkutils.hpp b/src/sdkutils.hpp index e764158..0c8f4a2 100644 --- a/src/sdkutils.hpp +++ b/src/sdkutils.hpp @@ -38,7 +38,6 @@ inline void in6_to_ip6(ip6_addr_t *ba, struct sockaddr_in6 *in6) { uint8_t *ip = &(in6->sin6_addr).s6_addr[0]; - uint16_t ip16; IP6_ADDR2(ba, (((ip[ 0] & 0xffff) << 8) | ((ip[ 1]) & 0xffff)), (((ip[ 2] & 0xffff) << 8) | ((ip[ 3]) & 0xffff)),