From 3ad98b8403d9941c3f13e8841d546648b375d056 Mon Sep 17 00:00:00 2001 From: DcruBro Date: Thu, 13 Nov 2025 16:04:39 +0100 Subject: [PATCH] root permissions check and version counter update --- CMakeLists.txt | 2 +- src/common/utils.cpp | 2 +- src/common/virtual_interface.cpp | 5 ++++- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 53fc39d..1344026 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -6,7 +6,7 @@ cmake_minimum_required(VERSION 3.16) # If MAJOR is 0, and MINOR > 0, Version is BETA project(ColumnLynx - VERSION 0.0.3 + VERSION 0.0.4 LANGUAGES CXX ) diff --git a/src/common/utils.cpp b/src/common/utils.cpp index 7003ebf..c62b6ec 100644 --- a/src/common/utils.cpp +++ b/src/common/utils.cpp @@ -37,7 +37,7 @@ namespace ColumnLynx::Utils { } std::string getVersion() { - return "a0.3"; + return "a0.4"; } unsigned short serverPort() { diff --git a/src/common/virtual_interface.cpp b/src/common/virtual_interface.cpp index 76a0c67..953bd27 100644 --- a/src/common/virtual_interface.cpp +++ b/src/common/virtual_interface.cpp @@ -42,8 +42,11 @@ namespace ColumnLynx::Net { sc.sc_id = ctlInfo.ctl_id; sc.sc_unit = 0; // utun0 (0 = auto-assign) - if (connect(mFd, (struct sockaddr*)&sc, sizeof(sc)) < 0) + if (connect(mFd, (struct sockaddr*)&sc, sizeof(sc)) < 0) { + if (errno == EPERM) + throw std::runtime_error("connect(AF_SYS_CONTROL) failed: Insufficient permissions (try running as root)"); throw std::runtime_error("connect(AF_SYS_CONTROL) failed: " + std::string(strerror(errno))); + } // Retrieve actual utun device name struct sockaddr_storage addr;