On 04/26/2017 06:38 AM, Cédric Bosdonnat wrote: > If several RA routes are found for the same device, only list that > device once in the error message. > --- > src/util/virnetdevip.c | 10 +++++++++- > 1 file changed, 9 insertions(+), 1 deletion(-) > > diff --git a/src/util/virnetdevip.c b/src/util/virnetdevip.c > index 09925e1d7..bf98ed8a5 100644 > --- a/src/util/virnetdevip.c > +++ b/src/util/virnetdevip.c > @@ -551,6 +551,8 @@ virNetDevIPCheckIPv6ForwardingCallback(const struct nlmsghdr *resp, > int ret = 0; > int len = RTM_PAYLOAD(resp); > int oif = -1; > + size_t i; > + bool hasDevice; > > /* Ignore messages other than route ones */ > if (resp->nlmsg_type != RTM_NEWROUTE) > @@ -587,7 +589,13 @@ virNetDevIPCheckIPv6ForwardingCallback(const struct nlmsghdr *resp, > accept_ra = virNetDevIPGetAcceptRA(ifname); > VIR_DEBUG("Checking route for device %s, accept_ra: %d", ifname, accept_ra); > > - if (accept_ra != 2 && VIR_APPEND_ELEMENT(data->devices, data->ndevices, ifname) < 0) > + hasDevice = false; > + for (i = 0; i < data->ndevices && !hasDevice; i++) { > + if (STREQ(data->devices[i], ifname)) > + hasDevice = true; > + } > + if (accept_ra != 2 && !hasDevice && > + VIR_APPEND_ELEMENT(data->devices, data->ndevices, ifname) < 0) > goto error; > > cleanup: > ACK. -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list