#include "stream.h"
#include "pkt-var.h"
+#include "host.h"
#include "app-layer-parser.h"
#include "app-layer-protos.h"
StreamTcpInitConfig(TRUE);
- if (StreamTcpPacket(&tv, p, &stt, &pq) == -1)
+ SCMutexLock(&f.m);
+ if (StreamTcpPacket(&tv, p, &stt, &pq) == -1) {
goto end;
+ }
p->tcph->th_ack = htonl(1);
p->tcph->th_flags = TH_SYN | TH_ACK;
ret = 1;
end:
StreamTcpFreeConfig(TRUE);
+ SCMutexUnlock(&f.m);
SCFree(p);
return ret;
}
p->tcph = &tcph;
int ret = 0;
+ SCMutexLock(&f.m);
if (StreamTcpPacket(&tv, p, &stt, &pq) == -1)
goto end;
ret = 1;
end:
StreamTcpFreeConfig(TRUE);
+ SCMutexUnlock(&f.m);
SCFree(p);
return ret;
}
int ret = 0;
+ SCMutexLock(&f.m);
if (StreamTcpPacket(&tv, p, &stt, &pq) == -1)
goto end;
ret = 1;
end:
StreamTcpFreeConfig(TRUE);
+ SCMutexUnlock(&f.m);
SCFree(p);
return ret;
}
p->payload = payload;
p->payload_len = 3;
+ SCMutexLock(&f.m);
if (StreamTcpPacket(&tv, p, &stt, &pq) == -1)
goto end;
ret = 1;
end:
StreamTcpFreeConfig(TRUE);
+ SCMutexUnlock(&f.m);
SCFree(p);
return ret;
}
tcph.th_flags = TH_FIN;
p->tcph = &tcph;
+ SCMutexLock(&f.m);
/* StreamTcpPacket returns -1 on unsolicited FIN */
if (StreamTcpPacket(&tv, p, &stt, &pq) != -1) {
printf("StreamTcpPacket failed: ");
ret = 1;
end:
StreamTcpFreeConfig(TRUE);
+ SCMutexUnlock(&f.m);
SCFree(p);
return ret;
}
p->payload = payload;
p->payload_len = 1;
+ SCMutexLock(&f.m);
if (StreamTcpPacket(&tv, p, &stt, &pq) == -1)
goto end;
}
end:
StreamTcpFreeConfig(TRUE);
+ SCMutexUnlock(&f.m);
SCFree(p);
return ret;
}
p->payload = payload;
p->payload_len = 1;
+ SCMutexLock(&f.m);
if (StreamTcpPacket(&tv, p, &stt, &pq) == -1)
goto end;
ret = 1;
end:
StreamTcpFreeConfig(TRUE);
+ SCMutexUnlock(&f.m);
SCFree(p);
return ret;
}
p->payload = payload;
p->payload_len = 1;
+ SCMutexLock(&f.m);
if (StreamTcpPacket(&tv, p, &stt, &pq) == -1)
goto end;
StreamTcpSessionClear(p->flow->protoctx);
end:
StreamTcpFreeConfig(TRUE);
+ SCMutexUnlock(&f.m);
SCFree(p);
return ret;
}
p->tcph = &tcph;
int ret = 0;
+ SCMutexLock(&f.m);
if (StreamTcpPacket(&tv, p, &stt, &pq) == -1)
goto end;
ret = 1;
end:
StreamTcpFreeConfig(TRUE);
+ SCMutexUnlock(&f.m);
SCFree(p);
return ret;
}
p->tcph = &tcph;
int ret = 0;
+ SCMutexLock(&f.m);
if (StreamTcpPacket(&tv, p, &stt, &pq) == -1)
goto end;
ret = 1;
end:
StreamTcpFreeConfig(TRUE);
+ SCMutexUnlock(&f.m);
SCFree(p);
return ret;
}
p->tcph = &tcph;
int ret = 0;
+ SCMutexLock(&f.m);
if (StreamTcpPacket(&tv, p, &stt, &pq) == -1)
goto end;
ret = 1;
end:
StreamTcpFreeConfig(TRUE);
+ SCMutexUnlock(&f.m);
SCFree(p);
return ret;
}
p->tcph = &tcph;
int ret = 0;
+ SCMutexLock(&f.m);
if (StreamTcpPacket(&tv, p, &stt, &pq) == -1)
goto end;
ret = 1;
end:
StreamTcpFreeConfig(TRUE);
+ SCMutexUnlock(&f.m);
SCFree(p);
return ret;
}
p->payload = payload;
p->payload_len = 3;
+ SCMutexLock(&f.m);
if (StreamTcpPacket(&tv, p, &stt, &pq) == -1)
goto end;
StreamTcpFreeConfig(TRUE);
ConfDeInit();
ConfRestoreContextBackup();
+ SCMutexUnlock(&f.m);
SCFree(p);
return ret;
}
tcph.th_flags = TH_SYN;
p->tcph = &tcph;
+ SCMutexLock(&f.m);
if (StreamTcpPacket(&tv, p, &stt, &pq) == -1)
goto end;
end:
StreamTcpSessionClear(p->flow->protoctx);
StreamTcpFreeConfig(TRUE);
+ SCMutexUnlock(&f.m);
SCFree(p);
return ret;
}
tcph.th_flags = TH_SYN;
p->tcph = &tcph;
+ SCMutexLock(&f.m);
if (StreamTcpPacket(&tv, p, &stt, &pq) == -1)
goto end;
end:
StreamTcpSessionClear(p->flow->protoctx);
StreamTcpFreeConfig(TRUE);
+ SCMutexUnlock(&f.m);
SCFree(p);
return ret;
}
tcph.th_flags = TH_SYN;
p->tcph = &tcph;
+ SCMutexLock(&f.m);
if (StreamTcpPacket(&tv, p, &stt, &pq) == -1)
goto end;
end:
StreamTcpSessionClear(p->flow->protoctx);
StreamTcpFreeConfig(TRUE);
+ SCMutexUnlock(&f.m);
SCFree(p);
return ret;
}
p->payload = payload;
p->payload_len = 3;
+ SCMutexLock(&f.m);
if (StreamTcpPacket(&tv, p, &stt, &pq) == -1)
goto end;
StreamTcpFreeConfig(TRUE);
ConfDeInit();
ConfRestoreContextBackup();
+ SCMutexUnlock(&f.m);
SCFree(p);
return ret;
}
p->payload = payload;
p->payload_len = 3;
+ SCMutexLock(&f.m);
if (StreamTcpPacket(&tv, p, &stt, &pq) == -1)
goto end;
StreamTcpFreeConfig(TRUE);
ConfDeInit();
ConfRestoreContextBackup();
+ SCMutexUnlock(&f.m);
SCFree(p);
return ret;
}
p->payload = payload;
p->payload_len = 3;
+ SCMutexLock(&f.m);
if (StreamTcpPacket(&tv, p, &stt, &pq) == -1)
goto end;
StreamTcpFreeConfig(TRUE);
ConfDeInit();
ConfRestoreContextBackup();
+ SCMutexUnlock(&f.m);
SCFree(p);
return ret;
}
StreamTcpInitConfig(TRUE);
+ SCMutexLock(&f.m);
if (StreamTcpPacket(&tv, p, &stt, &pq) == -1)
goto end;
ret = 1;
end:
StreamTcpFreeConfig(TRUE);
+ SCMutexUnlock(&f.m);
SCFree(p);
return ret;
}
StreamTcpInitConfig(TRUE);
+ SCMutexLock(&f.m);
if (StreamTcpPacket(&tv, p, &stt, &pq) == -1)
goto end;
ret = 1;
end:
StreamTcpFreeConfig(TRUE);
+ SCMutexUnlock(&f.m);
SCFree(p);
return ret;
}
StreamTcpInitConfig(TRUE);
+ SCMutexLock(&f.m);
if (StreamTcpPacket(&tv, p, &stt, &pq) == -1)
goto end;
ret = 1;
end:
StreamTcpFreeConfig(TRUE);
+ SCMutexUnlock(&f.m);
SCFree(p);
return ret;
}
StreamTcpInitConfig(TRUE);
+ SCMutexLock(&f.m);
if (StreamTcpPacket(&tv, p, &stt, &pq) == -1) {
printf("failed in processing packet\n");
goto end;
ret = 1;
end:
StreamTcpFreeConfig(TRUE);
+ SCMutexUnlock(&f.m);
SCFree(p);
return ret;
}
stt.ra_ctx = &ra_ctx;
StreamTcpInitConfig(TRUE);
+ SCMutexLock(&f.m);
if (StreamTcpPacket(&tv, p, &stt, &pq) == -1) {
printf("failed in processing packet in StreamTcpPacket\n");
goto end;
end:
StreamTcpSessionClear(p->flow->protoctx);
StreamTcpFreeConfig(TRUE);
+ SCMutexUnlock(&f.m);
+ SCFree(p);
return ret;
}
StreamTcpInitConfig(TRUE);
+ SCMutexLock(&f.m);
if (StreamTcpPacket(&tv, p, &stt, &pq) == -1) {
printf("failed in processing packet in StreamTcpPacket\n");
goto end;
end:
StreamTcpSessionClear(p->flow->protoctx);
StreamTcpFreeConfig(TRUE);
+ SCMutexUnlock(&f.m);
+ SCFree(p);
return ret;
}
return 0;
}
+ PACKET_RECYCLE(np);
+ PACKET_RECYCLE(p);
FlowShutdown();
- PACKET_CLEANUP(p);
return 1;
}
return 0;
}
- FlowShutdown();
- PACKET_CLEANUP(p);
+ PACKET_RECYCLE(np);
+ PACKET_RECYCLE(p);
SCFree(p);
+ FlowShutdown();
return 1;
}
tcph.th_seq = htonl(100);
p->flowflags = FLOW_PKT_TOSERVER;
+ SCMutexLock(&f.m);
if (StreamTcpPacket(&tv, p, &stt, &pq) == -1)
goto end;
ret = 1;
end:
StreamTcpFreeConfig(TRUE);
+ SCMutexUnlock(&f.m);
SCFree(p);
return ret;
}
tcph.th_seq = htonl(100);
p->flowflags = FLOW_PKT_TOSERVER;
+ SCMutexLock(&f.m);
if (StreamTcpPacket(&tv, p, &stt, &pq) == -1)
goto end;
ret = 1;
end:
StreamTcpFreeConfig(TRUE);
+ SCMutexUnlock(&f.m);
SCFree(p);
return ret;
}
tcph.th_seq = htonl(100);
p->flowflags = FLOW_PKT_TOSERVER;
+ SCMutexLock(&f.m);
if (StreamTcpPacket(&tv, p, &stt, &pq) == -1)
goto end;
ret = 1;
end:
StreamTcpFreeConfig(TRUE);
+ SCMutexUnlock(&f.m);
SCFree(p);
return ret;
}
tcph.th_seq = htonl(100);
p->flowflags = FLOW_PKT_TOSERVER;
+ SCMutexLock(&f.m);
if (StreamTcpPacket(&tv, p, &stt, &pq) == -1)
goto end;
ret = 1;
end:
StreamTcpFreeConfig(TRUE);
+ SCMutexUnlock(&f.m);
SCFree(p);
return ret;
}