void *data,
void *userdata) {
- Network *network = userdata;
_cleanup_(neighbor_free_or_set_invalidp) Neighbor *n = NULL;
+ Network *network = userdata;
int r;
assert(filename);
assert(section);
assert(lvalue);
assert(rvalue);
- assert(data);
+ assert(userdata);
r = neighbor_new_static(network, filename, section_line, &n);
if (r < 0)
return log_oom();
+ if (isempty(rvalue)) {
+ n->family = AF_UNSPEC;
+ n->in_addr = IN_ADDR_NULL;
+ TAKE_PTR(n);
+ return 0;
+ }
+
r = in_addr_from_string_auto(rvalue, &n->family, &n->in_addr);
if (r < 0) {
log_syntax(unit, LOG_WARNING, filename, line, r,
}
TAKE_PTR(n);
-
return 0;
}
void *data,
void *userdata) {
- Network *network = userdata;
_cleanup_(neighbor_free_or_set_invalidp) Neighbor *n = NULL;
+ Network *network = userdata;
int r;
assert(filename);
assert(section);
assert(lvalue);
assert(rvalue);
- assert(data);
+ assert(userdata);
r = neighbor_new_static(network, filename, section_line, &n);
if (r < 0)
return log_oom();
+ if (isempty(rvalue)) {
+ n->ll_addr = HW_ADDR_NULL;
+ TAKE_PTR(n);
+ return 0;
+ }
+
r = parse_hw_addr(rvalue, &n->ll_addr);
if (r < 0) {
log_syntax(unit, LOG_WARNING, filename, line, r,