BUG: stream_interface: Reuse connection even if the output channel is empty

in function 'si_connect', an existing connection is reused (and considered as
established) only when there are some pending data in the output channel.

This can be problem when filters are used, because a filter can choose to not
forward data immediatly. So when we try to initiate a connection to a server,
the output channel can be empty. In this situation, if the connection already
exists, it is not considered as established and nothing happens. If the stream
interface is in the state SI_ST_ASS, this leads to an infinite loop in
process_stream because it remains in this state.

This patch fixes this problem. Now, in 'si_connect', we always reuse an existing
connection, whether or not there are pending data in the output channel.
(cherry picked from commit c34d19fc3c2c393e3d7bc80753b338def05a1bca)
(cherry picked from commit 59070e742ad9faabaf908d26f4b8843dc5bc88e8)
1 file changed