mirror of
https://github.com/systemd/systemd-stable.git
synced 2025-01-07 17:17:44 +03:00
Merge pull request #1655 from ssahani/net
network: port to extract_first_word
This commit is contained in:
commit
8b61781d80
@ -910,12 +910,10 @@ static int link_lldp_status(int argc, char *argv[], void *userdata) {
|
||||
_cleanup_netlink_message_unref_ sd_netlink_message *req = NULL, *reply = NULL;
|
||||
_cleanup_netlink_unref_ sd_netlink *rtnl = NULL;
|
||||
_cleanup_free_ LinkInfo *links = NULL;
|
||||
const char *state, *word;
|
||||
|
||||
double ttl = -1;
|
||||
uint32_t capability;
|
||||
int i, r, c, j;
|
||||
size_t ll;
|
||||
const char *p;
|
||||
char **s;
|
||||
|
||||
pager_open_if_enabled();
|
||||
@ -956,14 +954,19 @@ static int link_lldp_status(int argc, char *argv[], void *userdata) {
|
||||
return -ENOMEM;
|
||||
|
||||
STRV_FOREACH(s, l) {
|
||||
FOREACH_WORD_QUOTED(word, ll, *s, state) {
|
||||
_cleanup_free_ char *t = NULL, *a = NULL, *b = NULL;
|
||||
|
||||
t = strndup(word, ll);
|
||||
if (!t)
|
||||
return -ENOMEM;
|
||||
p = *s;
|
||||
for (;;) {
|
||||
_cleanup_free_ char *a = NULL, *b = NULL, *word = NULL;
|
||||
|
||||
r = split_pair(t, "=", &a, &b);
|
||||
r = extract_first_word(&p, &word, NULL, EXTRACT_QUOTES);
|
||||
if (r < 0)
|
||||
return log_error_errno(r, "Failed to parse LLDP syntax \"%s\": %m", *s);
|
||||
|
||||
if (r == 0)
|
||||
break;
|
||||
|
||||
r = split_pair(word, "=", &a, &b);
|
||||
if (r < 0)
|
||||
continue;
|
||||
|
||||
|
@ -340,8 +340,6 @@ int config_parse_arp_ip_target_address(const char *unit,
|
||||
void *data,
|
||||
void *userdata) {
|
||||
Bond *b = userdata;
|
||||
const char *word, *state;
|
||||
size_t l;
|
||||
int r;
|
||||
|
||||
assert(filename);
|
||||
@ -349,14 +347,19 @@ int config_parse_arp_ip_target_address(const char *unit,
|
||||
assert(rvalue);
|
||||
assert(data);
|
||||
|
||||
FOREACH_WORD_QUOTED(word, l, rvalue, state) {
|
||||
for (;;) {
|
||||
_cleanup_free_ ArpIpTarget *buffer = NULL;
|
||||
_cleanup_free_ char *n = NULL;
|
||||
int f;
|
||||
|
||||
n = strndup(word, l);
|
||||
if (!n)
|
||||
return -ENOMEM;
|
||||
r = extract_first_word(&rvalue, &n, NULL, 0);
|
||||
if (r < 0) {
|
||||
log_syntax(unit, LOG_ERR, filename, line, r, "Failed to parse Bond ARP ip target address, ignoring assignment: %s", rvalue);
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (r == 0)
|
||||
break;
|
||||
|
||||
buffer = new0(ArpIpTarget, 1);
|
||||
if (!buffer)
|
||||
@ -380,7 +383,9 @@ int config_parse_arp_ip_target_address(const char *unit,
|
||||
}
|
||||
|
||||
if (b->n_arp_ip_targets > NETDEV_BOND_ARP_TARGETS_MAX)
|
||||
log_syntax(unit, LOG_WARNING, filename, line, 0, "More than the maximum number of kernel-supported ARP ip targets specified: %d > %d", b->n_arp_ip_targets, NETDEV_BOND_ARP_TARGETS_MAX);
|
||||
log_syntax(unit, LOG_WARNING, filename, line, 0,
|
||||
"More than the maximum number of kernel-supported ARP ip targets specified: %d > %d",
|
||||
b->n_arp_ip_targets, NETDEV_BOND_ARP_TARGETS_MAX);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user