REORG/MEDIUM: replace stream interface protocol functions by a proto pointer

The stream interface now makes use of the socket protocol pointer instead
of the direct functions.
diff --git a/src/peers.c b/src/peers.c
index 31fb8d9..ba57e18 100644
--- a/src/peers.c
+++ b/src/peers.c
@@ -1154,9 +1154,8 @@
 	s->si[0].state = s->si[0].prev_state = SI_ST_EST;
 	s->si[0].err_type = SI_ET_NONE;
 	s->si[0].err_loc = NULL;
-	s->si[0].connect   = NULL;
-	s->si[0].get_src   = NULL;
-	s->si[0].get_dst   = NULL;
+	s->si[0].proto   = NULL;
+	s->si[0].release = NULL;
 	clear_target(&s->si[0].target);
 	s->si[0].exp = TICK_ETERNITY;
 	s->si[0].flags = SI_FL_NONE;
@@ -1173,9 +1172,8 @@
 	s->si[1].conn_retries = p->conn_retries;
 	s->si[1].err_type = SI_ET_NONE;
 	s->si[1].err_loc = NULL;
-	s->si[1].connect = tcp_connect_server;
-	s->si[1].get_src = getsockname;
-	s->si[1].get_dst = getpeername;
+	s->si[1].proto = peer->proto;
+	s->si[1].release = NULL;
 	set_target_proxy(&s->si[1].target, s->be);
 	s->si[1].exp = TICK_ETERNITY;
 	s->si[1].flags = SI_FL_NONE;
@@ -1183,7 +1181,6 @@
 		s->si[1].flags |= SI_FL_INDEP_STR;
 
 	stream_interface_prepare(&s->si[1], &stream_sock);
-	s->si[1].release = NULL;
 
 	session_init_srv_conn(s);
 	set_target_proxy(&s->target, s->be);