From f3b87ca95569bf9c3c5bbac34810d24c5a78ed6d Mon Sep 17 00:00:00 2001 From: Ismael Gomez Date: Wed, 30 Nov 2016 14:51:09 -0500 Subject: [PATCH] fixed missing SO_REUSE* in old kernels --- srslte/lib/io/netsink.c | 4 ++++ srslte/lib/io/netsource.c | 5 ++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/srslte/lib/io/netsink.c b/srslte/lib/io/netsink.c index bedb5fc92..39bd885a9 100644 --- a/srslte/lib/io/netsink.c +++ b/srslte/lib/io/netsink.c @@ -48,10 +48,14 @@ int srslte_netsink_init(srslte_netsink_t *q, char *address, int port, srslte_net } int enable = 1; +#if defined (SO_REUSEADDR) if (setsockopt(q->sockfd, SOL_SOCKET, SO_REUSEADDR, &enable, sizeof(int)) < 0) perror("setsockopt(SO_REUSEADDR) failed"); +#endif +#if defined (SO_REUSEPORT) if (setsockopt(q->sockfd, SOL_SOCKET, SO_REUSEPORT, &enable, sizeof(int)) < 0) perror("setsockopt(SO_REUSEPORT) failed"); +#endif q->servaddr.sin_family = AF_INET; q->servaddr.sin_addr.s_addr=inet_addr(address); diff --git a/srslte/lib/io/netsource.c b/srslte/lib/io/netsource.c index f41296c3c..0e9c804c0 100644 --- a/srslte/lib/io/netsource.c +++ b/srslte/lib/io/netsource.c @@ -48,11 +48,14 @@ int srslte_netsource_init(srslte_netsource_t *q, char *address, int port, srslte // Make sockets reusable int enable = 1; +#if defined (SO_REUSEADDR) if (setsockopt(q->sockfd, SOL_SOCKET, SO_REUSEADDR, &enable, sizeof(int)) < 0) perror("setsockopt(SO_REUSEADDR) failed"); +#endif +#if defined (SO_REUSEPORT) if (setsockopt(q->sockfd, SOL_SOCKET, SO_REUSEPORT, &enable, sizeof(int)) < 0) perror("setsockopt(SO_REUSEPORT) failed"); - +#endif q->type = type; q->servaddr.sin_family = AF_INET;