assert(ret);
HASHMAP_FOREACH(g, nexthop->group) {
- _cleanup_(json_variant_unrefp) JsonVariant *e = NULL;
-
- r = json_build(&e, JSON_BUILD_OBJECT(
- JSON_BUILD_PAIR_UNSIGNED("ID", g->id),
- JSON_BUILD_PAIR_UNSIGNED("Weight", g->weight+1)));
- if (r < 0)
- return r;
-
- r = json_variant_append_array(&array, e);
+ r = json_variant_append_arrayb(
+ &array,
+ JSON_BUILD_OBJECT(
+ JSON_BUILD_PAIR_UNSIGNED("ID", g->id),
+ JSON_BUILD_PAIR_UNSIGNED("Weight", g->weight+1)));
if (r < 0)
return r;
}
}
static int dns_append_json_one(Link *link, const struct in_addr_full *a, NetworkConfigSource s, const union in_addr_union *p, JsonVariant **array) {
- _cleanup_(json_variant_unrefp) JsonVariant *v = NULL;
- int r;
-
assert(link);
assert(a);
assert(array);
if (a->ifindex != 0 && a->ifindex != link->ifindex)
return 0;
- r = json_build(&v, JSON_BUILD_OBJECT(
- JSON_BUILD_PAIR_INTEGER("Family", a->family),
- JSON_BUILD_PAIR_IN_ADDR("Address", &a->address, a->family),
- JSON_BUILD_PAIR_UNSIGNED_NON_ZERO("Port", a->port),
- JSON_BUILD_PAIR_CONDITION(a->ifindex != 0, "InterfaceIndex", JSON_BUILD_INTEGER(a->ifindex)),
- JSON_BUILD_PAIR_STRING_NON_EMPTY("ServerName", a->server_name),
- JSON_BUILD_PAIR_STRING("ConfigSource", network_config_source_to_string(s)),
- JSON_BUILD_PAIR_IN_ADDR_NON_NULL("ConfigProvider", p, a->family)));
- if (r < 0)
- return r;
-
- return json_variant_append_array(array, v);
+ return json_variant_append_arrayb(
+ array,
+ JSON_BUILD_OBJECT(
+ JSON_BUILD_PAIR_INTEGER("Family", a->family),
+ JSON_BUILD_PAIR_IN_ADDR("Address", &a->address, a->family),
+ JSON_BUILD_PAIR_UNSIGNED_NON_ZERO("Port", a->port),
+ JSON_BUILD_PAIR_CONDITION(a->ifindex != 0, "InterfaceIndex", JSON_BUILD_INTEGER(a->ifindex)),
+ JSON_BUILD_PAIR_STRING_NON_EMPTY("ServerName", a->server_name),
+ JSON_BUILD_PAIR_STRING("ConfigSource", network_config_source_to_string(s)),
+ JSON_BUILD_PAIR_IN_ADDR_NON_NULL("ConfigProvider", p, a->family)));
}
static int dns_append_json(Link *link, JsonVariant **v) {
return 0;
HASHMAP_FOREACH(lease, link->dhcp_server->bound_leases_by_client_id) {
- _cleanup_(json_variant_unrefp) JsonVariant *e = NULL;
struct in_addr address = { .s_addr = lease->address };
- r = json_build(&e,
- JSON_BUILD_OBJECT(
- JSON_BUILD_PAIR_BYTE_ARRAY(
- "ClientId",
- lease->client_id.data,
- lease->client_id.length),
- JSON_BUILD_PAIR_IN4_ADDR_NON_NULL("Address", &address),
- JSON_BUILD_PAIR_STRING_NON_EMPTY("Hostname", lease->hostname),
- JSON_BUILD_PAIR_FINITE_USEC(
- "ExpirationUSec", lease->expiration)));
- if (r < 0)
- return r;
-
- r = json_variant_append_array(&array, e);
+ r = json_variant_append_arrayb(
+ &array,
+ JSON_BUILD_OBJECT(
+ JSON_BUILD_PAIR_BYTE_ARRAY(
+ "ClientId",
+ lease->client_id.data,
+ lease->client_id.length),
+ JSON_BUILD_PAIR_IN4_ADDR_NON_NULL("Address", &address),
+ JSON_BUILD_PAIR_STRING_NON_EMPTY("Hostname", lease->hostname),
+ JSON_BUILD_PAIR_FINITE_USEC(
+ "ExpirationUSec", lease->expiration)));
if (r < 0)
return r;
}