From 5a477a01798fa49a6d0d69debfb2e64c1ded5083 Mon Sep 17 00:00:00 2001 From: jcorgan Date: Mon, 24 Mar 2008 15:58:45 +0000 Subject: [PATCH] Fixed gr.udp_source,sink for use on Win32 (Don Ward) git-svn-id: http://gnuradio.org/svn/gnuradio/trunk@8097 221aa14e-8319-0410-a670-987f0aec2ac5 --- gnuradio-core/src/lib/io/gr_udp_sink.cc | 11 +++++++++-- gnuradio-core/src/lib/io/gr_udp_sink.h | 6 +++++- gnuradio-core/src/lib/io/gr_udp_source.cc | 13 ++++++++++--- gnuradio-core/src/lib/io/gr_udp_source.h | 5 +++++ gnuradio-core/src/lib/io/io.i | 4 ++++ 5 files changed, 33 insertions(+), 6 deletions(-) diff --git a/gnuradio-core/src/lib/io/gr_udp_sink.cc b/gnuradio-core/src/lib/io/gr_udp_sink.cc index 15bcf9a8..82cd5c29 100644 --- a/gnuradio-core/src/lib/io/gr_udp_sink.cc +++ b/gnuradio-core/src/lib/io/gr_udp_sink.cc @@ -26,7 +26,14 @@ #include #include #include +#if defined(HAVE_SOCKET) #include +typedef void* optval_t; +#else +#define SHUT_RDWR 2 +#define inet_aton(N,A) ( (A)->s_addr = inet_addr(N), ( (A)->s_addr != INADDR_NONE ) ) +typedef char* optval_t; +#endif #define SNK_VERBOSE 0 @@ -112,7 +119,7 @@ gr_udp_sink::open() // Turn on reuse address int opt_val = true; - if(setsockopt(d_socket, SOL_SOCKET, SO_REUSEADDR, (void*)&opt_val, sizeof(int)) == -1) { + if(setsockopt(d_socket, SOL_SOCKET, SO_REUSEADDR, (optval_t)&opt_val, sizeof(int)) == -1) { perror("SO_REUSEADDR"); throw std::runtime_error("can't set socket option SO_REUSEADDR"); } @@ -121,7 +128,7 @@ gr_udp_sink::open() linger lngr; lngr.l_onoff = 1; lngr.l_linger = 0; - if(setsockopt(d_socket, SOL_SOCKET, SO_LINGER, (void*)&lngr, sizeof(linger)) == -1) { + if(setsockopt(d_socket, SOL_SOCKET, SO_LINGER, (optval_t)&lngr, sizeof(linger)) == -1) { perror("SO_LINGER"); throw std::runtime_error("can't set socket option SO_LINGER"); } diff --git a/gnuradio-core/src/lib/io/gr_udp_sink.h b/gnuradio-core/src/lib/io/gr_udp_sink.h index 4f08136e..e5938001 100644 --- a/gnuradio-core/src/lib/io/gr_udp_sink.h +++ b/gnuradio-core/src/lib/io/gr_udp_sink.h @@ -25,9 +25,13 @@ #include #include +#if defined(HAVE_SOCKET) #include #include -#include +#elif defined(HAVE_WINDOWS_H) +#include +#include +#endif #if defined(HAVE_NETINET_IN_H) #include #endif diff --git a/gnuradio-core/src/lib/io/gr_udp_source.cc b/gnuradio-core/src/lib/io/gr_udp_source.cc index f7f04d3c..c65947ba 100644 --- a/gnuradio-core/src/lib/io/gr_udp_source.cc +++ b/gnuradio-core/src/lib/io/gr_udp_source.cc @@ -27,7 +27,14 @@ #include #include #include +#if defined(HAVE_SOCKET) #include +typedef void* optval_t; +#else +#define SHUT_RDWR 2 +#define inet_aton(N,A) ( (A)->s_addr = inet_addr(N), ( (A)->s_addr != INADDR_NONE ) ) +typedef char* optval_t; +#endif #define SRC_VERBOSE 0 @@ -91,7 +98,7 @@ gr_udp_source::open() // Turn on reuse address int opt_val = 1; - if(setsockopt(d_socket, SOL_SOCKET, SO_REUSEADDR, (void*)&opt_val, sizeof(int)) == -1) { + if(setsockopt(d_socket, SOL_SOCKET, SO_REUSEADDR, (optval_t)&opt_val, sizeof(int)) == -1) { perror("SO_REUSEADDR"); throw std::runtime_error("can't set socket option SO_REUSEADDR"); } @@ -100,7 +107,7 @@ gr_udp_source::open() linger lngr; lngr.l_onoff = 1; lngr.l_linger = 0; - if(setsockopt(d_socket, SOL_SOCKET, SO_LINGER, (void*)&lngr, sizeof(linger)) == -1) { + if(setsockopt(d_socket, SOL_SOCKET, SO_LINGER, (optval_t)&lngr, sizeof(linger)) == -1) { perror("SO_LINGER"); throw std::runtime_error("can't set socket option SO_LINGER"); } @@ -110,7 +117,7 @@ gr_udp_source::open() timeval timeout; timeout.tv_sec = 1; timeout.tv_usec = 0; - if(setsockopt(d_socket, SOL_SOCKET, SO_RCVTIMEO, (void*)&timeout, sizeof(timeout)) == -1) { + if(setsockopt(d_socket, SOL_SOCKET, SO_RCVTIMEO, (optval_t)&timeout, sizeof(timeout)) == -1) { perror("SO_RCVTIMEO"); throw std::runtime_error("can't set socket option SO_RCVTIMEO"); } diff --git a/gnuradio-core/src/lib/io/gr_udp_source.h b/gnuradio-core/src/lib/io/gr_udp_source.h index 83bebf84..a4403c3d 100644 --- a/gnuradio-core/src/lib/io/gr_udp_source.h +++ b/gnuradio-core/src/lib/io/gr_udp_source.h @@ -25,8 +25,13 @@ #include #include +#if defined(HAVE_SOCKET) #include #include +#elif defined(HAVE_WINDOWS_H) +#include +#include +#endif #if defined(HAVE_NETINET_IN_H) #include #endif diff --git a/gnuradio-core/src/lib/io/io.i b/gnuradio-core/src/lib/io/io.i index 63dd979f..ed7feb49 100644 --- a/gnuradio-core/src/lib/io/io.i +++ b/gnuradio-core/src/lib/io/io.i @@ -22,6 +22,10 @@ %{ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include #include -- 2.39.5