MEDIUM: stream_interface: pass connection instead of fd in sock_ops

The sock_ops I/O callbacks made use of an FD till now. This has become
inappropriate and the struct connection is much more useful. It also
fixes the race condition introduced by previous change.
diff --git a/src/proto_tcp.c b/src/proto_tcp.c
index 9fb03c4..cebc477 100644
--- a/src/proto_tcp.c
+++ b/src/proto_tcp.c
@@ -524,9 +524,9 @@
  * once the connection is established. It returns zero if it needs some polling
  * before being called again.
  */
-int tcp_connect_probe(int fd)
+int tcp_connect_probe(struct connection *conn)
 {
-	struct connection *conn = fdtab[fd].owner;
+	int fd = conn->t.sock.fd;
 	struct stream_interface *si = container_of(conn, struct stream_interface, conn);
 	struct buffer *b = si->ob;
 	int retval = 0;