mirror of
https://github.com/systemd/systemd.git
synced 2026-08-09 17:38:42 +00:00
network: rename dispatch_interface() and make it take flags
No functional change. Just refactoring and preparation for later change.
This commit is contained in:
@@ -9,7 +9,7 @@
|
||||
#include "networkd-manager.h"
|
||||
#include "networkd-setlink.h"
|
||||
|
||||
int dispatch_interface(sd_varlink *vlink, sd_json_variant *parameters, Manager *manager, bool polkit, Link **ret) {
|
||||
int dispatch_link(sd_varlink *vlink, sd_json_variant *parameters, Manager *manager, DispatchLinkFlag flags, Link **ret) {
|
||||
struct {
|
||||
int ifindex;
|
||||
const char *ifname;
|
||||
@@ -32,7 +32,11 @@ int dispatch_interface(sd_varlink *vlink, sd_json_variant *parameters, Manager *
|
||||
assert(manager);
|
||||
assert(ret);
|
||||
|
||||
r = sd_varlink_dispatch(vlink, parameters, polkit ? dispatch_polkit_table : dispatch_table, &info);
|
||||
r = sd_varlink_dispatch(
|
||||
vlink,
|
||||
parameters,
|
||||
FLAGS_SET(flags, DISPATCH_LINK_POLKIT) ? dispatch_polkit_table : dispatch_table,
|
||||
&info);
|
||||
if (r != 0)
|
||||
return r;
|
||||
|
||||
@@ -53,7 +57,10 @@ int dispatch_interface(sd_varlink *vlink, sd_json_variant *parameters, Manager *
|
||||
link = link_by_name;
|
||||
}
|
||||
|
||||
/* If neither InterfaceIndex nor InterfaceName specified, this function returns NULL. */
|
||||
if (!link && FLAGS_SET(flags, DISPATCH_LINK_MANDATORY))
|
||||
return sd_varlink_error_invalid_parameter(vlink, JSON_VARIANT_STRING_CONST("InterfaceIndex"));
|
||||
|
||||
/* If the DISPATCH_LINK_MANDATORY flag is not set, this function may return NULL. */
|
||||
*ret = link;
|
||||
return 0;
|
||||
}
|
||||
@@ -65,14 +72,10 @@ static int vl_method_link_up_or_down(sd_varlink *vlink, sd_json_variant *paramet
|
||||
assert(vlink);
|
||||
assert(manager);
|
||||
|
||||
r = dispatch_interface(vlink, parameters, manager, /* polkit= */ true, &link);
|
||||
r = dispatch_link(vlink, parameters, manager, DISPATCH_LINK_POLKIT | DISPATCH_LINK_MANDATORY, &link);
|
||||
if (r != 0)
|
||||
return r;
|
||||
|
||||
/* Require a specific link to be specified. */
|
||||
if (!link)
|
||||
return sd_varlink_error_invalid_parameter(vlink, JSON_VARIANT_STRING_CONST("InterfaceIndex"));
|
||||
|
||||
r = varlink_verify_polkit_async(
|
||||
vlink,
|
||||
manager->bus,
|
||||
|
||||
@@ -3,7 +3,12 @@
|
||||
|
||||
#include "networkd-forward.h"
|
||||
|
||||
int dispatch_interface(sd_varlink *vlink, sd_json_variant *parameters, Manager *manager, bool polkit, Link **ret);
|
||||
typedef enum DispatchLinkFlag {
|
||||
DISPATCH_LINK_POLKIT = 1 << 0,
|
||||
DISPATCH_LINK_MANDATORY = 1 << 1,
|
||||
} DispatchLinkFlag;
|
||||
|
||||
int dispatch_link(sd_varlink *vlink, sd_json_variant *parameters, Manager *manager, DispatchLinkFlag flags, Link **ret);
|
||||
|
||||
int vl_method_link_up(sd_varlink *vlink, sd_json_variant *parameters, sd_varlink_method_flags_t flags, void *userdata);
|
||||
int vl_method_link_down(sd_varlink *vlink, sd_json_variant *parameters, sd_varlink_method_flags_t flags, void *userdata);
|
||||
|
||||
@@ -115,7 +115,7 @@ static int vl_method_get_lldp_neighbors(sd_varlink *vlink, sd_json_variant *para
|
||||
assert(vlink);
|
||||
assert(manager);
|
||||
|
||||
r = dispatch_interface(vlink, parameters, manager, /* polkit= */ false, &link);
|
||||
r = dispatch_link(vlink, parameters, manager, /* flags= */ 0, &link);
|
||||
if (r != 0)
|
||||
return r;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user