Does not proceed final chunk if we got an error previously
Flips the direction for last chunk as usual
free(isolatedBuffer);
flags &= ~(STREAM_START);
if (f->alparser && AppLayerParserStateIssetFlag(f->alparser, APP_LAYER_PARSER_EOF)) {
+ //no final chunk
+ alsize = 0;
break;
}
}
alnext = memmem(albuffer, alsize, separator, 4);
}
if (alsize > 0 ) {
+ if (flip) {
+ flags |= STREAM_TOCLIENT;
+ flags &= ~(STREAM_TOSERVER);
+ flip = 0;
+ } else {
+ flags |= STREAM_TOSERVER;
+ flags &= ~(STREAM_TOCLIENT);
+ flip = 1;
+ }
flags |= STREAM_EOF;
isolatedBuffer = malloc(alsize);
if (isolatedBuffer == NULL) {