networkd: add basic Varlink interface
Let's get networkd onto Varlink. This only adds the most basic of operations. I'd love to see networkd do Varlink for all its basic operations so that networkctl can use that, and work correctly before D-Bus is up. Right now, many of networkctls calls simply don't work before D-Bus, and I'd like to see that improved.
This commit is contained in:
committed by
Yu Watanabe
parent
8017ed7e0e
commit
c5c74d85d3
@@ -176,9 +176,10 @@ shared_sources = files(
|
||||
'varlink-io.systemd.Credentials.c',
|
||||
'varlink-io.systemd.Journal.c',
|
||||
'varlink-io.systemd.ManagedOOM.c',
|
||||
'varlink-io.systemd.Network.c',
|
||||
'varlink-io.systemd.PCRExtend.c',
|
||||
'varlink-io.systemd.Resolve.Monitor.c',
|
||||
'varlink-io.systemd.Resolve.c',
|
||||
'varlink-io.systemd.Resolve.Monitor.c',
|
||||
'varlink-io.systemd.UserDatabase.c',
|
||||
'varlink-io.systemd.oom.c',
|
||||
'varlink-io.systemd.service.c',
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
/* SPDX-License-Identifier: LGPL-2.1-or-later */
|
||||
|
||||
#include "varlink-io.systemd.Network.h"
|
||||
|
||||
static VARLINK_DEFINE_METHOD(GetStates,
|
||||
VARLINK_DEFINE_OUTPUT(AddressState, VARLINK_STRING, 0),
|
||||
VARLINK_DEFINE_OUTPUT(IPv4AddressState, VARLINK_STRING, 0),
|
||||
VARLINK_DEFINE_OUTPUT(IPv6AddressState, VARLINK_STRING, 0),
|
||||
VARLINK_DEFINE_OUTPUT(CarrierState, VARLINK_STRING, 0),
|
||||
VARLINK_DEFINE_OUTPUT(OnlineState, VARLINK_STRING, 0),
|
||||
VARLINK_DEFINE_OUTPUT(OperationalState, VARLINK_STRING, 0));
|
||||
|
||||
static VARLINK_DEFINE_METHOD(GetNamespaceId,
|
||||
VARLINK_DEFINE_OUTPUT(NamespaceId, VARLINK_INT, 0));
|
||||
|
||||
VARLINK_DEFINE_INTERFACE(
|
||||
io_systemd_Network,
|
||||
"io.systemd.Network",
|
||||
&vl_method_GetStates,
|
||||
&vl_method_GetNamespaceId);
|
||||
@@ -0,0 +1,6 @@
|
||||
/* SPDX-License-Identifier: LGPL-2.1-or-later */
|
||||
#pragma once
|
||||
|
||||
#include "varlink-idl.h"
|
||||
|
||||
extern const VarlinkInterface vl_interface_io_systemd_Network;
|
||||
Reference in New Issue
Block a user