diff --git a/src/source-ipfw.c b/src/source-ipfw.c index 83d440327e..174f0bb999 100644 --- a/src/source-ipfw.c +++ b/src/source-ipfw.c @@ -634,9 +634,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);