PF_RING hang at exit fix

remotes/origin/master-1.0.x
William 16 years ago committed by Victor Julien
parent 1bd2d59253
commit f7ab84ca83

@ -54,6 +54,7 @@ TmEcode DecodePfringThreadInit(ThreadVars *, void *, void **);
TmEcode DecodePfring(ThreadVars *, Packet *, void *, PacketQueue *, PacketQueue *); TmEcode DecodePfring(ThreadVars *, Packet *, void *, PacketQueue *, PacketQueue *);
extern int max_pending_packets; extern int max_pending_packets;
extern uint8_t suricata_ctl_flags;
#ifndef HAVE_PFRING #ifndef HAVE_PFRING
@ -194,9 +195,9 @@ TmEcode ReceivePfring(ThreadVars *tv, Packet *p, void *data, PacketQueue *pq, Pa
u_char buffer[MAX_CAPLEN]; u_char buffer[MAX_CAPLEN];
int r; int r;
if (TmThreadsCheckFlag(tv, THV_KILL) || TmThreadsCheckFlag(tv, THV_PAUSE)) { if (suricata_ctl_flags & SURICATA_STOP ||
SCLogInfo("interrupted."); suricata_ctl_flags & SURICATA_KILL) {
return TM_ECODE_OK; SCReturnInt(TM_ECODE_FAILED);
} }
/* Depending on what compile time options are used for pfring we either return 0 or -1 on error and always 1 for success */ /* Depending on what compile time options are used for pfring we either return 0 or -1 on error and always 1 for success */
@ -285,10 +286,11 @@ TmEcode ReceivePfringThreadInit(ThreadVars *tv, void *initdata, void **data) {
#endif /* HAVE_PFRING_CLUSTER_TYPE */ #endif /* HAVE_PFRING_CLUSTER_TYPE */
if(rc != 0){ if(rc != 0){
SCLogError(SC_ERR_PF_RING_SET_CLUSTER_FAILED,"pfring_set_cluster returned %d", rc); SCLogError(SC_ERR_PF_RING_SET_CLUSTER_FAILED,"pfring_set_cluster returned %d for cluster-id: %d", rc, ptv->cluster_id);
return TM_ECODE_FAILED; return TM_ECODE_FAILED;
}else{
SCLogInfo("pfring_set_cluster-id %d set successfully",ptv->cluster_id);
} }
*data = (void *)ptv; *data = (void *)ptv;
return TM_ECODE_OK; return TM_ECODE_OK;
} }

Loading…
Cancel
Save