X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=CAN-binder%2Flow-can-binding%2Futils%2Fsocketcan-raw.cpp;h=23f83322d301dda2372bdf208a8406284ff6491e;hb=7679cd97dc4c20103f8afb364437dbcfd359befc;hp=2c2b54e1735a972ce874175a0688ef5bf9e327b4;hpb=71798df5325efe6005fb87dad8a3489e656021f0;p=apps%2Fagl-service-can-low-level.git diff --git a/CAN-binder/low-can-binding/utils/socketcan-raw.cpp b/CAN-binder/low-can-binding/utils/socketcan-raw.cpp index 2c2b54e1..23f83322 100644 --- a/CAN-binder/low-can-binding/utils/socketcan-raw.cpp +++ b/CAN-binder/low-can-binding/utils/socketcan-raw.cpp @@ -17,25 +17,25 @@ #include "socketcan-raw.hpp" +#include +#include + namespace utils { /// @brief Construct a default, invalid, socket. socketcan_raw_t::socketcan_raw_t() - : socketcan_t{}, socket_{INVALID_SOCKET} + : socketcan_t{} {} - /// @brief Construct a socket by moving an existing one. - socketcan_raw_t::socketcan_raw_t(socketcan_raw_t&& s) - : socket_{s.socket_} - { - s.socket_ = INVALID_SOCKET; - } - /// @brief Destruct the socket. socketcan_raw_t::~socketcan_raw_t() + {} + + /// @brief Bind the socket. + /// @return 0 if success. + int socketcan_raw_t::bind(const struct sockaddr* addr, socklen_t len) { - if(socket_ != INVALID_SOCKET) - ::close(socket_); + return socket_ != INVALID_SOCKET ? ::bind(socket_, addr, len) : 0; } /// @brief Open a raw socket CAN. @@ -47,7 +47,7 @@ namespace utils close(); struct ifreq ifr; - socket_ = open(PF_CAN, SOCK_RAW, CAN_RAW); + socket_ = socketcan_t::open(PF_CAN, SOCK_RAW, CAN_RAW); // Attempts to open a socket to CAN bus ::strcpy(ifr.ifr_name, device_name.c_str());