MEDIUM: protocol: add a pointer to struct sock_ops to the listener struct
The listener struct is now aware of the socket layer to use upon accept().
At the moment, only sock_raw is supported so this patch should not change
anything.
diff --git a/src/cfgparse.c b/src/cfgparse.c
index b3ae050..5bd2cfc 100644
--- a/src/cfgparse.c
+++ b/src/cfgparse.c
@@ -265,6 +265,7 @@
l->fd = -1;
l->addr = ss;
+ l->sock = &sock_raw;
l->state = LI_INIT;
if (ss.ss_family == AF_INET) {
diff --git a/src/dumpstats.c b/src/dumpstats.c
index 6b4c84e..14d50e1 100644
--- a/src/dumpstats.c
+++ b/src/dumpstats.c
@@ -276,6 +276,7 @@
}
}
+ global.stats_sock.sock = &sock_raw;
uxst_add_listener(&global.stats_sock);
global.maxsock++;
}
diff --git a/src/session.c b/src/session.c
index fcd113e..353fa66 100644
--- a/src/session.c
+++ b/src/session.c
@@ -180,7 +180,7 @@
s->si[0].flags = SI_FL_CAP_SPLTCP; /* TCP/TCPv6 splicing possible */
/* add the various callbacks */
- stream_interface_prepare(&s->si[0], &sock_raw);
+ stream_interface_prepare(&s->si[0], l->sock);
/* pre-initialize the other side's stream interface to an INIT state. The
* callbacks will be initialized before attempting to connect.