sd-varlink: introduce sd_varlink_get_current_method()

This commit is contained in:
Yu Watanabe
2025-01-04 23:33:09 +09:00
parent 8252b74f2d
commit ffe2923303
3 changed files with 21 additions and 0 deletions
+1
View File
@@ -1065,6 +1065,7 @@ global:
sd_device_enumerator_add_all_parents;
sd_json_variant_type_from_string;
sd_json_variant_type_to_string;
sd_varlink_get_current_method;
sd_varlink_get_input_fd;
sd_varlink_get_output_fd;
sd_varlink_reset_fds;
+19
View File
@@ -1542,6 +1542,25 @@ _public_ int sd_varlink_dispatch_again(sd_varlink *v) {
return 0;
}
_public_ int sd_varlink_get_current_method(sd_varlink *v, const char **ret) {
assert_return(v, -EINVAL);
if (!v->current)
return -ENODATA;
sd_json_variant *p = sd_json_variant_by_key(v->current, "method");
if (!p)
return -ENODATA;
const char *s = sd_json_variant_string(p);
if (!s)
return -ENODATA;
if (ret)
*ret = s;
return 0;
}
_public_ int sd_varlink_get_current_parameters(sd_varlink *v, sd_json_variant **ret) {
sd_json_variant *p;
+1
View File
@@ -178,6 +178,7 @@ int sd_varlink_notifyb(sd_varlink *v, ...);
int sd_varlink_dispatch_again(sd_varlink *v);
/* Get the currently processed incoming message */
int sd_varlink_get_current_method(sd_varlink *v, const char **ret);
int sd_varlink_get_current_parameters(sd_varlink *v, sd_json_variant **ret);
/* Parsing incoming data via json_dispatch() and generate a nice error on parse errors */