X-Git-Url: https://git.stg.codes/stg.git/blobdiff_plain/a8690e044055da20e4cf7d7d7e51d182b5e09154..10c0d7324d1a25feebaaf6f5bf9b6054e03dd0b3:/stglibs/sgcp.lib/tcp.cpp?ds=inline diff --git a/stglibs/sgcp.lib/tcp.cpp b/stglibs/sgcp.lib/tcp.cpp deleted file mode 100644 index 414d5ec8..00000000 --- a/stglibs/sgcp.lib/tcp.cpp +++ /dev/null @@ -1,52 +0,0 @@ -#include "tcp.h" - -#include "stg/sgcp_utils.h" - -#include -#include - -#include -#include -#include -#include - -using STG::SGCP::TCPProto; - -TCPProto::TCPProto() - : m_sock(socket(AF_INET, SOCK_STREAM, 0)) -{ -} - -TCPProto::~TCPProto() -{ - close(m_sock); -} - -void TCPProto::connect(const std::string& address, uint16_t port) -{ - std::vector addrs = resolve(address); - - for (size_t i = 0; i < addrs.size(); ++i) { - sockaddr_in addr; - addr.sin_family = AF_INET; - addr.sin_port = hton(port); - addr.sin_addr = addrs[i]; - - if (::connect(m_sock, reinterpret_cast(&addr), sizeof(addr)) == 0) - return; - - close(m_sock); - m_sock = socket(AF_INET, SOCK_STREAM, 0); - } - throw Error("No more addresses to connect to."); -} - -ssize_t TCPProto::write(const void* buf, size_t size) -{ - return ::write(m_sock, buf, size); -} - -ssize_t TCPProto::read(void* buf, size_t size) -{ - return ::read(m_sock, buf, size); -}