summaryrefslogtreecommitdiffstats
path: root/src/kernel/net.c
diff options
context:
space:
mode:
authorSimon Rettberg2015-10-13 13:37:26 +0200
committerSimon Rettberg2015-10-13 13:37:26 +0200
commitc3c050851dc866f2311d33a262ed81af8c57ce22 (patch)
tree06f0bd73c9c0c8b3223f0fd4bc5bfb1b1e304bb0 /src/kernel/net.c
parent[SERVER] Fix integer overflow of global bytesReceived getter (diff)
downloaddnbd3-c3c050851dc866f2311d33a262ed81af8c57ce22.tar.gz
dnbd3-c3c050851dc866f2311d33a262ed81af8c57ce22.tar.xz
dnbd3-c3c050851dc866f2311d33a262ed81af8c57ce22.zip
[KERNEL] Add support for kernel 4.2.x
Diffstat (limited to 'src/kernel/net.c')
-rw-r--r--src/kernel/net.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/kernel/net.c b/src/kernel/net.c
index ab7a211..3392feb 100644
--- a/src/kernel/net.c
+++ b/src/kernel/net.c
@@ -30,6 +30,12 @@
#define MIN(a,b) ((a) < (b) ? (a) : (b))
#endif
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 2, 0)
+#define dnbd3_sock_create(af,type,proto,sock) sock_create_kern(&init_net, af, type, proto, sock)
+#else
+#define dnbd3_sock_create(af,type,proto,sock) sock_create_kern(af, type, proto, sock)
+#endif
+
/**
* Some macros for easier debug output. Location in source-code
* as well as server IP:port info will be printed.
@@ -169,7 +175,7 @@ int dnbd3_net_connect(dnbd3_device_t *dev)
int mlen;
init_msghdr(msg);
- if (sock_create_kern(dev->cur_server.host.type, SOCK_STREAM, IPPROTO_TCP, &dev->sock) < 0)
+ if (dnbd3_sock_create(dev->cur_server.host.type, SOCK_STREAM, IPPROTO_TCP, &dev->sock) < 0)
error_dev("ERROR: Couldn't create socket (v6).");
kernel_setsockopt(dev->sock, SOL_SOCKET, SO_SNDTIMEO, (char *)&timeout, sizeof(timeout));
@@ -543,7 +549,7 @@ int dnbd3_net_discover(void *data)
continue;
// Initialize socket and connect
- if (sock_create_kern(dev->alt_servers[i].host.type, SOCK_STREAM, IPPROTO_TCP, &sock) < 0)
+ if (dnbd3_sock_create(dev->alt_servers[i].host.type, SOCK_STREAM, IPPROTO_TCP, &sock) < 0)
{
debug_alt("ERROR: Couldn't create socket (discover).");
sock = NULL;