diff --git a/include/types/peers.h b/include/types/peers.h
index 50e4ea3..9e33d6d 100644
--- a/include/types/peers.h
+++ b/include/types/peers.h
@@ -74,6 +74,8 @@
 	time_t last_change;
 	struct sockaddr_storage addr;  /* peer address */
 	struct protocol *proto;	       /* peer address protocol */
+	struct sock_ops *sock;         /* peer socket operations */
+	void *sock_init_arg;           /* socket operations's opaque init argument if needed */
 	struct peer *next;	  /* next peer in the list */
 };
 
diff --git a/include/types/server.h b/include/types/server.h
index 31f036d..aa2c4f8 100644
--- a/include/types/server.h
+++ b/include/types/server.h
@@ -149,6 +149,8 @@
 	int bind_hdr_occ;			/* occurrence number of header above: >0 = from first, <0 = from end, 0=disabled */
 #endif
 	struct protocol *proto;	                /* server address protocol */
+	struct sock_ops *sock;                  /* server socket operations */
+	void *sock_init_arg;                    /* socket operations's opaque init argument if needed */
 	unsigned down_time;			/* total time the server was down */
 	time_t last_change;			/* last time, when the state was changed */
 	struct timeval check_start;		/* last health check start time */
diff --git a/src/backend.c b/src/backend.c
index 9467b2d..3f30bea 100644
--- a/src/backend.c
+++ b/src/backend.c
@@ -968,32 +968,30 @@
 			return SN_ERR_INTERNAL;
 	}
 
-	/* Prepare the stream interface for a TCP connection. Later
-	 * we may assign a protocol-specific connect() function.
-	 * NOTE: when we later support HTTP keep-alive, we'll have to
-	 * decide here if we can reuse the connection by comparing the
-	 * session's freshly assigned target with the stream interface's.
-	 */
-	stream_interface_prepare(s->req->cons, &sock_raw);
-
 	/* the target was only on the session, assign it to the SI now */
 	copy_target(&s->req->cons->target, &s->target);
 
-	/* process the case where the server requires the PROXY protocol to be sent */
-	s->req->cons->send_proxy_ofs = 0;
-	if (s->target.type == TARG_TYPE_SERVER && (s->target.ptr.s->state & SRV_SEND_PROXY)) {
-		s->req->cons->send_proxy_ofs = 1; /* must compute size */
-		si_get_to_addr(s->req->prod);
-	}
-
 	/* set the correct protocol on the output stream interface */
-	if (s->target.type == TARG_TYPE_SERVER)
+	if (s->target.type == TARG_TYPE_SERVER) {
 		s->req->cons->proto = target_srv(&s->target)->proto;
+		stream_interface_prepare(s->req->cons, target_srv(&s->target)->sock);
+	}
 	else if (s->target.type == TARG_TYPE_PROXY) {
+		/* proxies exclusively run on sock_raw right now */
 		s->req->cons->proto = protocol_by_family(s->req->cons->addr.to.ss_family);
+		stream_interface_prepare(s->req->cons, &sock_raw);
 		if (!s->req->cons->proto)
 			return SN_ERR_INTERNAL;
 	}
+	else
+		return SN_ERR_INTERNAL;  /* how did we get there ? */
+
+	/* process the case where the server requires the PROXY protocol to be sent */
+	s->req->cons->send_proxy_ofs = 0;
+	if (s->target.type == TARG_TYPE_SERVER && (s->target.ptr.s->state & SRV_SEND_PROXY)) {
+		s->req->cons->send_proxy_ofs = 1; /* must compute size */
+		si_get_to_addr(s->req->prod);
+	}
 
 	assign_tproxy_address(s);
 
diff --git a/src/cfgparse.c b/src/cfgparse.c
index ec15fba..5d12056 100644
--- a/src/cfgparse.c
+++ b/src/cfgparse.c
@@ -61,6 +61,7 @@
 #include <proto/sample.h>
 #include <proto/server.h>
 #include <proto/session.h>
+#include <proto/sock_raw.h>
 #include <proto/task.h>
 #include <proto/stick_table.h>
 
@@ -1270,6 +1271,8 @@
 		}
 		newpeer->addr = *sk;
 		newpeer->proto = protocol_by_family(newpeer->addr.ss_family);
+		newpeer->sock  = &sock_raw;
+		newpeer->sock_init_arg = NULL;
 
 		if (!sk) {
 			Alert("parsing [%s:%d] : Unknown protocol family %d '%s'\n",
@@ -4071,6 +4074,8 @@
 			}
 			newsrv->addr = *sk;
 			newsrv->proto = protocol_by_family(newsrv->addr.ss_family);
+			newsrv->sock  = &sock_raw;
+			newsrv->sock_init_arg = NULL;
 
 			if (!sk) {
 				Alert("parsing [%s:%d] : Unknown protocol family %d '%s'\n",
