MINOR: stream_interface: add a data channel close function

This function will be called later when splitting the shutdown in two
steps. It will be needed by SSL and for remote socket operations to
release unused contexts.
diff --git a/include/proto/stream_interface.h b/include/proto/stream_interface.h
index 632300a..efdb1c4 100644
--- a/include/proto/stream_interface.h
+++ b/include/proto/stream_interface.h
@@ -189,6 +189,13 @@
 	return si_ctrl(si)->connect(si);
 }
 
+/* Calls the close() function of the data layer if any */
+static inline void si_data_close(struct stream_interface *si)
+{
+	if (si->conn.data->close)
+		si->conn.data->close(&si->conn);
+}
+
 #endif /* _PROTO_STREAM_INTERFACE_H */
 
 /*
diff --git a/include/types/stream_interface.h b/include/types/stream_interface.h
index 2afefb5..8e9e64b 100644
--- a/include/types/stream_interface.h
+++ b/include/types/stream_interface.h
@@ -132,7 +132,9 @@
 	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);                       /* wrtie callback after poll() */
+	int (*write)(int fd);                       /* write callback after poll() */
+	void (*close)(struct connection *);         /* close the data channel on the connection */
+
 };
 
 /* A stream interface has 3 parts :