tree 7d5507d44fa11d23e3b9978d367c7044321c8606
parent 8fe516f08affb55f5fed68896d93fd40e6873f34
author Willy Tarreau <w@1wt.eu> 1541697329 +0100
committer Willy Tarreau <w@1wt.eu> 1541927917 +0100
encoding latin1

MINOR: stream-int: replace si_update() with si_update_both()

The function used to be called in turn for each side of the stream, but
since it's called exclusively from process_stream(), it prevents us from
making use of the knowledge we have of the operations in progress for
each side, resulting in having to go all the way through functions like
stream_int_notify() which are not appropriate there.

That patch creates a new function, si_update_both() which takes two
stream interfaces expected to belong to the same stream, and processes
their flags in a more suitable order, but for now doesn't change the
logic at all.

The next step will consist in trying to reinsert the rest of the socket
layer-specific update code to ultimately update the flags correctly at
the end of the operation.
