diff --git a/libraries/AP_HAL/utility/Socket.cpp b/libraries/AP_HAL/utility/Socket.cpp index f3ab72a86c..501b8dd18a 100644 --- a/libraries/AP_HAL/utility/Socket.cpp +++ b/libraries/AP_HAL/utility/Socket.cpp @@ -33,6 +33,13 @@ datagram(_datagram) setsockopt(fd, IPPROTO_TCP, TCP_NODELAY, &one, sizeof(one)); } +SocketAPM::~SocketAPM() +{ + if (::close(fd) < 0) { + perror("close"); + } +} + void SocketAPM::make_sockaddr(const char *address, uint16_t port, struct sockaddr_in &sockaddr) { memset(&sockaddr, 0, sizeof(sockaddr)); diff --git a/libraries/AP_HAL/utility/Socket.h b/libraries/AP_HAL/utility/Socket.h index bac981f84b..32b9be87cd 100644 --- a/libraries/AP_HAL/utility/Socket.h +++ b/libraries/AP_HAL/utility/Socket.h @@ -34,6 +34,8 @@ class SocketAPM { public: SocketAPM(bool _datagram); + ~SocketAPM(); + bool connect(const char *address, uint16_t port); bool bind(const char *address, uint16_t port); void reuseaddress();