|
|
@ -69,9 +69,8 @@ void TmqhPacketpoolRegister (void) {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void TmqhPacketpoolDestroy (void) {
|
|
|
|
void TmqhPacketpoolDestroy (void) {
|
|
|
|
if (ringbuffer != NULL) {
|
|
|
|
/* doing this clean up PacketPoolDestroy now,
|
|
|
|
RingBufferDestroy(ringbuffer);
|
|
|
|
* where we also clean the packets */
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
int PacketPoolIsEmpty(void) {
|
|
|
|
int PacketPoolIsEmpty(void) {
|
|
|
@ -110,6 +109,40 @@ Packet *PacketPoolGetPacket(void) {
|
|
|
|
return p;
|
|
|
|
return p;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void PacketPoolInit(intmax_t max_pending_packets) {
|
|
|
|
|
|
|
|
/* pre allocate packets */
|
|
|
|
|
|
|
|
SCLogDebug("preallocating packets... packet size %" PRIuMAX "", (uintmax_t)SIZE_OF_PACKET);
|
|
|
|
|
|
|
|
int i = 0;
|
|
|
|
|
|
|
|
for (i = 0; i < max_pending_packets; i++) {
|
|
|
|
|
|
|
|
/* XXX pkt alloc function */
|
|
|
|
|
|
|
|
Packet *p = SCMalloc(SIZE_OF_PACKET);
|
|
|
|
|
|
|
|
if (p == NULL) {
|
|
|
|
|
|
|
|
SCLogError(SC_ERR_FATAL, "Fatal error encountered while allocating a packet. Exiting...");
|
|
|
|
|
|
|
|
exit(EXIT_FAILURE);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
PACKET_INITIALIZE(p);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
PacketPoolStorePacket(p);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
SCLogInfo("preallocated %"PRIiMAX" packets. Total memory %"PRIuMAX"",
|
|
|
|
|
|
|
|
max_pending_packets, (uintmax_t)(max_pending_packets*SIZE_OF_PACKET));
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void PacketPoolDestroy(void) {
|
|
|
|
|
|
|
|
if (ringbuffer == NULL) {
|
|
|
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Packet *p = NULL;
|
|
|
|
|
|
|
|
while ((p = PacketPoolGetPacket()) != NULL) {
|
|
|
|
|
|
|
|
PACKET_CLEANUP(p);
|
|
|
|
|
|
|
|
SCFree(p);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
RingBufferDestroy(ringbuffer);
|
|
|
|
|
|
|
|
ringbuffer = NULL;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
Packet *TmqhInputPacketpool(ThreadVars *t)
|
|
|
|
Packet *TmqhInputPacketpool(ThreadVars *t)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
Packet *p = NULL;
|
|
|
|
Packet *p = NULL;
|
|
|
|