Mercurial > hg > dhcpcd
changeset 2508:9f7687ad3013 draft
Revert prior patch and just continue instead of logging more errors. Same effect.
| author | Roy Marples <roy@marples.name> |
|---|---|
| date | Mon, 02 Jun 2014 23:42:52 +0000 |
| parents | c72abf8ed304 |
| children | 8b23a7553c3b |
| files | ipv6nd.c |
| diffstat | 1 files changed, 30 insertions(+), 34 deletions(-) [+] |
line wrap: on
line diff
--- a/ipv6nd.c Mon Jun 02 23:30:50 2014 +0000 +++ b/ipv6nd.c Mon Jun 02 23:42:52 2014 +0000 @@ -825,26 +825,26 @@ syslog(LOG_ERR, "%s: invalid option len for prefix", ifp->name); - break; + continue; } if (pi->nd_opt_pi_prefix_len > 128) { syslog(LOG_ERR, "%s: invalid prefix len", ifp->name); - break; + continue; } if (IN6_IS_ADDR_MULTICAST(&pi->nd_opt_pi_prefix) || IN6_IS_ADDR_LINKLOCAL(&pi->nd_opt_pi_prefix)) { syslog(LOG_ERR, "%s: invalid prefix in RA", ifp->name); - break; + continue; } if (ntohl(pi->nd_opt_pi_preferred_time) > ntohl(pi->nd_opt_pi_valid_time)) { syslog(LOG_ERR, "%s: pltime > vltime", ifp->name); - break; + continue; } TAILQ_FOREACH(ap, &rap->addrs, next) if (ap->prefix_len ==pi->nd_opt_pi_prefix_len && @@ -859,10 +859,8 @@ ND_OPT_PI_FLAG_ONLINK)) continue; ap = calloc(1, sizeof(*ap)); - if (ap == NULL) { - syslog(LOG_ERR, "%s: %m", __func__); + if (ap == NULL) break; - } ap->iface = rap->iface; ap->flags = IPV6_AF_NEW; ap->prefix_len = pi->nd_opt_pi_prefix_len; @@ -909,13 +907,12 @@ opt = tmp; opt[l - 1] = ' '; strlcpy(opt + l, ap->saddr, m); - } else + } else { syslog(LOG_ERR, "%s: %m", __func__); - } else { + continue; + } + } else opt = strdup(ap->saddr); - if (opt == NULL) - syslog(LOG_ERR, "%s: %m", __func__); - } lifetime = ap->prefix_vltime; break; @@ -930,8 +927,6 @@ rap->mtu = mtuv; snprintf(buf, sizeof(buf), "%d", mtuv); opt = strdup(buf); - if (opt == NULL) - syslog(LOG_ERR, "%s: %m", __func__); break; case ND_OPT_RDNSS: @@ -954,24 +949,23 @@ nd_opt_rdnss_lifetime); op += sizeof(rdnss->nd_opt_rdnss_lifetime); tmp = opt = malloc(l); - if (opt) { - for (n = ndo->nd_opt_len - 1; n > 1; n -= 2, - op += sizeof(addr.s6_addr)) - { - r = ipv6_printaddr(tmp, l, op, - ifp->name); - if (r != -1) { - l -= ((size_t)r + 1); - tmp += (size_t)r; - *tmp++ = ' '; - } + if (opt == NULL) + continue; + for (n = ndo->nd_opt_len - 1; n > 1; n -= 2, + op += sizeof(addr.s6_addr)) + { + r = ipv6_printaddr(tmp, l, op, + ifp->name); + if (r != -1) { + l -= ((size_t)r + 1); + tmp += (size_t)r; + *tmp++ = ' '; } - if (tmp != opt) - (*--tmp) = '\0'; - else - *opt = '\0'; - } else - syslog(LOG_ERR, "%s: %m", __func__); + } + if (tmp != opt) + (*--tmp) = '\0'; + else + *opt = '\0'; break; case ND_OPT_DNSSL: @@ -985,6 +979,7 @@ if (r < 1) { syslog(LOG_ERR, "%s: invalid DNSSL option", ifp->name); + continue; } else { l = (size_t)r; tmp = malloc(l); @@ -1001,8 +996,7 @@ syslog(LOG_ERR, "%s: %m", __func__); free(tmp); - } else - syslog(LOG_ERR, "%s: %m", __func__); + } } break; @@ -1010,8 +1004,10 @@ continue; } - if (opt == NULL) + if (opt == NULL) { + syslog(LOG_ERR, "%s: %m", __func__); continue; + } TAILQ_FOREACH(rao, &rap->options, next) { if (rao->type == ndo->nd_opt_type &&
