diff --git a/src/source-ipfw.c b/src/source-ipfw.c index 36e7d68225..573ef5d7e7 100644 --- a/src/source-ipfw.c +++ b/src/source-ipfw.c @@ -626,9 +626,16 @@ TmEcode IPFWSetVerdict(ThreadVars *tv, IPFWThreadVars *ptv, Packet *p) IPFWMutexLock(nq); if (sendto(nq->fd, GET_PKT_DATA(p), GET_PKT_LEN(p), 0,(struct sockaddr *)&nq->ipfw_sin, nq->ipfw_sinlen) == -1) { - SCLogWarning(SC_WARN_IPFW_XMIT,"Write to ipfw divert socket failed: %s",strerror(errno)); - IPFWMutexUnlock(nq); - SCReturnInt(TM_ECODE_FAILED); + int r = errno; + switch (r) { + default: + SCLogWarning(SC_WARN_IPFW_XMIT,"Write to ipfw divert socket failed: %s",strerror(r)); + IPFWMutexUnlock(nq); + SCReturnInt(TM_ECODE_FAILED); + case EHOSTDOWN: + case ENETDOWN: + break; + } } IPFWMutexUnlock(nq);