You *can* reproduce the error? I feel better already.
> Can you run a tcpdump for validating the TCP connection establishment ?
>
It looks pretty much as expected. Is this what you wanted?
73 69.516276 10.10.10.10 -> 10.20.20.20 TCP 74 44748 > http [SYN] Seq=0
Win=26883 Len=0 MSS=8961 SACK_PERM=1 TSval=833894013 TSecr=0 WS=128
74 69.516893 10.20.20.20 -> 10.10.10.10 TCP 74 http > 44748 [SYN, ACK]
Seq=0 Ack=1 Win=26847 Len=0 MSS=8961 SACK_PERM=1 TSval=20615574
TSecr=833894013 WS=128
75 69.516909 10.10.10.10 -> 10.20.20.20 TCP 66 44748 > http [ACK] Seq=1
Ack=1 Win=27008 Len=0 TSval=833894013 TSecr=20615574
93 72.517981 10.10.10.10 -> 10.20.20.20 TCP 66 44748 > http [FIN, ACK]
Seq=1 Ack=1 Win=27008 Len=0 TSval=833894764 TSecr=20615574
94 72.518672 10.20.20.20 -> 10.10.10.10 TCP 254 [TCP segment of a
reassembled PDU]
95 72.518689 10.10.10.10 -> 10.20.20.20 TCP 66 44748 > http [ACK] Seq=2
Ack=190 Win=28032 Len=0 TSval=833894764 TSecr=20616324
Also a quick hack of src/hlua.c to discover which of the three
possibilities is causing the error reveals that in
hlua_socket_connect_yield()...
if (!hlua || !socket->s || channel_output_closed(&socket->s->req)) {
...the condition being matched and prompting the "Can't connect" error
appears to be !socket->s.