summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Habets <thomas@habets.se>2020-03-22 18:02:31 +0000
committerMartin Braun <martin@gnuradio.org>2020-03-27 08:46:42 -0700
commit38853cc231adf5ff70051801d19545adbcb1337b (patch)
treed5127c5a4853259cbed4cfb076257be85b5c2ab5
parent94878530c26606b5b1d83d9dfb154e3b5e6e823a (diff)
blocks/udp_source: Switch to smart pointers for socket
-rw-r--r--gr-blocks/lib/udp_source_impl.cc5
-rw-r--r--gr-blocks/lib/udp_source_impl.h3
2 files changed, 5 insertions, 3 deletions
diff --git a/gr-blocks/lib/udp_source_impl.cc b/gr-blocks/lib/udp_source_impl.cc
index 230ec907b3..fc907b7722 100644
--- a/gr-blocks/lib/udp_source_impl.cc
+++ b/gr-blocks/lib/udp_source_impl.cc
@@ -19,6 +19,7 @@
#include <errno.h>
#include <stdio.h>
#include <string.h>
+#include <boost/make_unique.hpp>
#include <stdexcept>
namespace gr {
@@ -73,7 +74,7 @@ void udp_source_impl::connect(const std::string& host, int 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);
+ d_socket = boost::make_unique<boost::asio::ip::udp::socket>(d_io_service);
d_socket->open(d_endpoint.protocol());
boost::asio::socket_base::reuse_address roption(true);
@@ -100,7 +101,7 @@ void udp_source_impl::disconnect()
d_udp_thread.join();
d_socket->close();
- delete d_socket;
+ d_socket.reset();
d_connected = false;
}
diff --git a/gr-blocks/lib/udp_source_impl.h b/gr-blocks/lib/udp_source_impl.h
index 418a19b37d..a0e8caa1d9 100644
--- a/gr-blocks/lib/udp_source_impl.h
+++ b/gr-blocks/lib/udp_source_impl.h
@@ -15,6 +15,7 @@
#include <gnuradio/thread/thread.h>
#include <boost/asio.hpp>
#include <boost/format.hpp>
+#include <memory>
namespace gr {
namespace blocks {
@@ -37,7 +38,7 @@ private:
std::string d_host;
unsigned short d_port;
- boost::asio::ip::udp::socket* d_socket;
+ std::unique_ptr<boost::asio::ip::udp::socket> d_socket;
boost::asio::ip::udp::endpoint d_endpoint;
boost::asio::ip::udp::endpoint d_endpoint_rcvd;
boost::asio::io_service d_io_service;