diff --git a/message.c b/message.c index cf6c733d..764a7f27 100644 --- a/message.c +++ b/message.c @@ -1156,6 +1156,12 @@ flushbuf(struct buffered *buf, struct interface *ifp) (struct sockaddr*)&buf->sin6, sizeof(buf->sin6)); if(rc < 0) { + static int edestaddrreq_seen; + if (errno == EDESTADDRREQ) { + if (edestaddrreq_seen) + goto skip_send_error; + edestaddrreq_seen = 1; + } char addr[INET6_ADDRSTRLEN+1]; uint32_t scope = buf->sin6.sin6_scope_id; @@ -1163,6 +1169,7 @@ flushbuf(struct buffered *buf, struct interface *ifp) fprintf(stderr, "send(%s%%%" PRIu32 "): %s\n", addr, scope, strerror(errno)); } + skip_send_error: } VALGRIND_MAKE_MEM_UNDEFINED(buf->buf, buf->size); buf->len = 0;