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/include/proto/proto_tcp.h b/include/proto/proto_tcp.h
index 66f29fc..6a60121 100644
--- a/include/proto/proto_tcp.h
+++ b/include/proto/proto_tcp.h
@@ -31,7 +31,7 @@
 void tcpv4_add_listener(struct listener *listener);
 void tcpv6_add_listener(struct listener *listener);
 int tcp_connect_server(struct stream_interface *si);
-int tcp_connect_probe(int fd);
+int tcp_connect_probe(struct connection *conn);
 int tcp_get_src(int fd, struct sockaddr *sa, socklen_t salen, int dir);
 int tcp_get_dst(int fd, struct sockaddr *sa, socklen_t salen, int dir);
 int tcp_inspect_request(struct session *s, struct buffer *req, int an_bit);
diff --git a/include/types/stream_interface.h b/include/types/stream_interface.h
index 88b55ab..851870f 100644
--- a/include/types/stream_interface.h
+++ b/include/types/stream_interface.h
@@ -114,8 +114,8 @@
 	void (*shutw)(struct stream_interface *);   /* shutw function */
 	void (*chk_rcv)(struct stream_interface *); /* chk_rcv function */
 	void (*chk_snd)(struct stream_interface *); /* chk_snd function */
-	int (*read)(int fd);                        /* read callback after poll() */
-	int (*write)(int fd);                       /* write callback after poll() */
+	int (*read)(struct connection *conn);       /* read callback after poll() */
+	int (*write)(struct connection *conn);      /* write callback after poll() */
 	void (*close)(struct connection *);         /* close the data channel on the connection */
 
 };