diff options
Diffstat (limited to 'gr-blocks')
-rw-r--r-- | gr-blocks/lib/udp_sink_impl.cc | 3 | ||||
-rw-r--r-- | gr-blocks/lib/udp_source_impl.cc | 9 | ||||
-rw-r--r-- | gr-blocks/python/blocks/qa_udp_source_sink.py | 8 |
3 files changed, 13 insertions, 7 deletions
diff --git a/gr-blocks/lib/udp_sink_impl.cc b/gr-blocks/lib/udp_sink_impl.cc index a23d3274cb..ae6488f6dd 100644 --- a/gr-blocks/lib/udp_sink_impl.cc +++ b/gr-blocks/lib/udp_sink_impl.cc @@ -77,7 +77,8 @@ namespace gr { if(host.size() > 0) { boost::asio::ip::udp::resolver resolver(d_io_service); boost::asio::ip::udp::resolver::query query(boost::asio::ip::udp::v4(), - host, s_port); + host, s_port, + boost::asio::ip::resolver_query_base::passive); d_endpoint = *resolver.resolve(query); d_socket = new boost::asio::ip::udp::socket(d_io_service); diff --git a/gr-blocks/lib/udp_source_impl.cc b/gr-blocks/lib/udp_source_impl.cc index 7f4a2af3d3..5fa06072ae 100644 --- a/gr-blocks/lib/udp_source_impl.cc +++ b/gr-blocks/lib/udp_source_impl.cc @@ -85,7 +85,8 @@ namespace gr { if(host.size() > 0) { boost::asio::ip::udp::resolver resolver(d_io_service); boost::asio::ip::udp::resolver::query query(boost::asio::ip::udp::v4(), - host, s_port); + d_host, s_port, + boost::asio::ip::resolver_query_base::passive); d_endpoint = *resolver.resolve(query); d_socket = new boost::asio::ip::udp::socket(d_io_service); @@ -113,7 +114,9 @@ namespace gr { if(!d_connected) return; + d_io_service.reset(); d_io_service.stop(); + d_udp_thread.join(); d_socket->close(); delete d_socket; @@ -156,11 +159,11 @@ namespace gr { // Make sure we never go beyond the boundary of the // residual buffer. This will just drop the last bit of // data in the buffer if we've run out of room. - if((int)(d_residual + bytes_transferred) > (50*d_payload_size)) { + if((int)(d_residual + bytes_transferred) >= (50*d_payload_size)) { GR_LOG_WARN(d_logger, "Too much data; dropping packet."); } else { - // otherwise, copy receid data into local buffer for + // otherwise, copy received data into local buffer for // copying later. memcpy(d_residbuf+d_residual, d_rxbuf, bytes_transferred); d_residual += bytes_transferred; diff --git a/gr-blocks/python/blocks/qa_udp_source_sink.py b/gr-blocks/python/blocks/qa_udp_source_sink.py index b96d393a50..a8dcdef5ea 100644 --- a/gr-blocks/python/blocks/qa_udp_source_sink.py +++ b/gr-blocks/python/blocks/qa_udp_source_sink.py @@ -39,7 +39,7 @@ class test_udp_sink_source(gr_unittest.TestCase): def test_001(self): # Tests calling disconnect/reconnect. - port = 65500 + port = 65510 n_data = 16 src_data = [x for x in range(n_data)] @@ -56,7 +56,7 @@ class test_udp_sink_source(gr_unittest.TestCase): self.tb_snd.run() def test_002(self): - port = 65500 + port = 65520 n_data = 100 src_data = [float(x) for x in range(n_data)] @@ -83,10 +83,12 @@ class test_udp_sink_source(gr_unittest.TestCase): self.assert_(not self.timeout) def test_003(self): + port = 65530 + udp_rcv = blocks.udp_source(gr.sizeof_float, '0.0.0.0', 0, eof=False) rcv_port = udp_rcv.get_port() - udp_snd = blocks.udp_sink(gr.sizeof_float, '127.0.0.1', 65500) + udp_snd = blocks.udp_sink(gr.sizeof_float, '127.0.0.1', port) udp_snd.connect('localhost', rcv_port) n_data = 16 |