Temporary /24 netmask for macOS

This commit is contained in:
2025-11-14 20:29:25 +01:00
parent 2343fdd1e2
commit ff81bfed31
2 changed files with 14 additions and 0 deletions

View File

@@ -60,6 +60,12 @@ namespace ColumnLynx::Net {
return std::string(buf);
}
static inline uint32_t prefixLengthToNetmask(uint8_t prefixLen) {
if (prefixLen == 0) return 0;
uint32_t mask = (0xFFFFFFFF << (32 - prefixLen)) & 0xFFFFFFFF;
return htonl(mask); // convert to network byte order
}
private:
bool mApplyLinuxIP(uint32_t clientIP, uint32_t serverIP, uint8_t prefixLen, uint16_t mtu);
bool mApplyMacOSIP(uint32_t clientIP, uint32_t serverIP, uint8_t prefixLen, uint16_t mtu);

View File

@@ -191,6 +191,14 @@ namespace ColumnLynx::Net {
"ifconfig utun0 %s %s mtu %d up",
ipStr.c_str(), peerStr.c_str(), mtu);
system(cmd);
// Reset cmd buffer
cmd[0] = '\0';
// Set netmask (/24 CIDR temporarily with raw command, improve later)
snprintf(cmd, sizeof(cmd),
"ifconfig utun0 netmask 255.255.255.0");
system(cmd);
return true;
}