Bug #78 » 0001-bug-78.patch
| src/app-layer-detect-proto.c | ||
|---|---|---|
|
}
|
||
|
uint16_t AppLayerDetectGetProto(AlpProtoDetectCtx *ctx, AlpProtoDetectThreadCtx *tctx, uint8_t *buf, uint16_t buflen, uint8_t flags) {
|
||
|
//printf("AppLayerDetectGetProto: start\n");
|
||
|
SCEnter();
|
||
|
//PrintRawDataFp(stdout, buf, buflen);
|
||
|
//if (buflen < INSPECT_BYTES)
|
||
| ... | ... | |
|
uint16_t proto;
|
||
|
uint32_t cnt = mpm_table[dir->mpm_ctx.mpm_type].Scan(&dir->mpm_ctx, &tdir->mpm_ctx, &tdir->pmq, buf, scanlen);
|
||
|
//printf("AppLayerDetectGetProto: scan cnt %" PRIu32 "\n", cnt);
|
||
|
SCLogDebug("scan cnt %" PRIu32 "", cnt);
|
||
|
if (cnt == 0) {
|
||
|
proto = ALPROTO_UNKNOWN;
|
||
|
goto end;
|
||
| ... | ... | |
|
break;
|
||
|
}
|
||
|
#endif
|
||
|
return proto;
|
||
|
SCReturnInt(proto);
|
||
|
}
|
||
|
int AppLayerHandleMsg(AlpProtoDetectThreadCtx *dp_ctx, StreamMsg *smsg)
|
||
| src/stream-tcp-reassemble.c | ||
|---|---|---|
|
static void StreamTcpSetupMsg(TcpSession *ssn, TcpStream *stream, Packet *p,
|
||
|
StreamMsg *smsg)
|
||
|
{
|
||
|
SCEnter();
|
||
|
if (stream->ra_base_seq == stream->isn) {
|
||
|
smsg->flags = STREAM_START;
|
||
|
} else if (ssn->state > TCP_ESTABLISHED) {
|
||
| ... | ... | |
|
COPY_PORT(p->flow->sp,smsg->data.src_port);
|
||
|
COPY_PORT(p->flow->dp,smsg->data.dst_port);
|
||
|
smsg->flags |= STREAM_TOSERVER;
|
||
|
} else {
|
||
|
COPY_ADDRESS(&p->flow->dst,&smsg->data.src_ip);
|
||
|
COPY_ADDRESS(&p->flow->src,&smsg->data.dst_ip);
|
||
|
COPY_PORT(p->flow->dp,smsg->data.src_port);
|
||
|
COPY_PORT(p->flow->sp,smsg->data.dst_port);
|
||
|
}
|
||
|
/* As we are opposing the stream to handle the ACK, we need to update the
|
||
|
smsg direction accordingly too */
|
||
|
if (stream == &ssn->client) {
|
||
|
smsg->flags |= STREAM_TOSERVER;
|
||
|
SCLogDebug("stream mesage is to_server");
|
||
|
} else {
|
||
|
smsg->flags |= STREAM_TOCLIENT;
|
||
|
SCLogDebug("stream mesage is to_client");
|
||
|
}
|
||
|
smsg->data.data_len = 0;
|
||
| ... | ... | |
|
if (smsg->flow != NULL) {
|
||
|
smsg->flow->use_cnt++;
|
||
|
}
|
||
|
SCReturn;
|
||
|
}
|
||
|
/** \brief Check the minimum size limits for reassembly.
|
||
- « Previous
- 1
- 2
- Next »