1
0
mirror of https://github.com/systemd/systemd.git synced 2025-03-19 22:50:17 +03:00

networkctl: rename check_netns_match() -> varlink_connect_networkd()

Then optionally return the varlink connection to the caller.
This commit is contained in:
Yu Watanabe 2024-02-26 10:32:51 +09:00
parent c48ca17aa8
commit 1dbd2cc72a

View File

@ -93,11 +93,10 @@ JsonFormatFlags arg_json_format_flags = JSON_FORMAT_OFF;
STATIC_DESTRUCTOR_REGISTER(arg_drop_in, freep);
static int check_netns_match(void) {
struct stat st;
uint64_t id;
JsonVariant *reply = NULL;
static int varlink_connect_networkd(Varlink **ret_varlink) {
_cleanup_(varlink_unrefp) Varlink *vl = NULL;
JsonVariant *reply;
uint64_t id;
int r;
r = varlink_connect_address(&vl, "/run/systemd/netif/io.systemd.Network");
@ -117,18 +116,21 @@ static int check_netns_match(void) {
if (r < 0)
return r;
if (id == 0) {
if (id == 0)
log_debug("systemd-networkd.service not running in a network namespace (?), skipping netns check.");
return 0;
else {
struct stat st;
if (stat("/proc/self/ns/net", &st) < 0)
return log_error_errno(errno, "Failed to determine our own network namespace ID: %m");
if (id != st.st_ino)
return log_error_errno(SYNTHETIC_ERRNO(EREMOTE),
"networkctl must be invoked in same network namespace as systemd-networkd.service.");
}
if (stat("/proc/self/ns/net", &st) < 0)
return log_error_errno(errno, "Failed to determine our own network namespace ID: %m");
if (id != st.st_ino)
return log_error_errno(SYNTHETIC_ERRNO(EREMOTE),
"networkctl must be invoked in same network namespace as systemd-networkd.service.");
if (ret_varlink)
*ret_varlink = TAKE_PTR(vl);
return 0;
}
@ -162,7 +164,7 @@ int acquire_bus(sd_bus **ret) {
return log_error_errno(r, "Failed to connect to system bus: %m");
if (networkd_is_running()) {
r = check_netns_match();
r = varlink_connect_networkd(/* ret_varlink = */ NULL);
if (r < 0)
return r;
} else