summaryrefslogtreecommitdiff
path: root/gr-blocks
diff options
context:
space:
mode:
Diffstat (limited to 'gr-blocks')
-rw-r--r--gr-blocks/lib/udp_sink_impl.cc3
-rw-r--r--gr-blocks/lib/udp_source_impl.cc9
-rw-r--r--gr-blocks/python/blocks/qa_udp_source_sink.py8
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