From 9d0d3a4cc931dcab24864b4e566aaebd2f05ab92 Mon Sep 17 00:00:00 2001 From: Michael Date: Wed, 23 Jan 2019 22:16:16 +0000 Subject: [PATCH] Fix build on darwin --- CMakeLists.txt | 10 +++++----- llarp/ev/ev.hpp | 16 +++++++++------- llarp/ev/ev_kqueue.hpp | 42 +++++++++++++++++++++--------------------- 3 files changed, 35 insertions(+), 33 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index f24976f41..8cf5e5d44 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -677,11 +677,11 @@ if(USE_LIBABYSS) set(ALL_SRC ${ALL_SRC} ${ABYSS_SRC} ${ABYSS}/main.cpp) add_executable(${ABYSS_EXE} ${ABYSS}/main.cpp) -if (NOT WIN32) - target_link_libraries(${ABYSS_EXE} ${UTIL_LIB} ${PLATFORM_LIB}) -else() - target_link_libraries(${ABYSS_EXE} ${UTIL_LIB} ${PLATFORM_LIB} ws2_32 iphlpapi) -endif(NOT WIN32) + if (NOT WIN32) + target_link_libraries(${ABYSS_EXE} ${STATIC_LIB} ${UTIL_LIB} ${PLATFORM_LIB} Threads::Threads) + else() + target_link_libraries(${ABYSS_EXE} ${STATIC_LIB} ${UTIL_LIB} ${PLATFORM_LIB} ws2_32 iphlpapi Threads::Threads) + endif(NOT WIN32) set(TEST_SRC ${TEST_SRC} test/test_libabyss.cpp) # for freebsd diff --git a/llarp/ev/ev.hpp b/llarp/ev/ev.hpp index 8f4deb560..daef6cf9d 100644 --- a/llarp/ev/ev.hpp +++ b/llarp/ev/ev.hpp @@ -672,11 +672,20 @@ struct llarp_ev_loop { byte_t readbuf[EV_READ_BUF_SZ] = {0}; llarp_time_t _now = 0; + virtual bool init() = 0; + virtual int run() = 0; + virtual bool + running() const = 0; + + /// return false on socket error (non blocking) + virtual bool + tcp_connect(llarp_tcp_connecter* tcp, const sockaddr* addr) = 0; + virtual int tick(int ms) = 0; @@ -701,17 +710,10 @@ struct llarp_ev_loop virtual llarp::ev_io* bind_tcp(llarp_tcp_acceptor* tcp, const sockaddr* addr) = 0; - /// return false on socket error (non blocking) - virtual bool - tcp_connect(llarp_tcp_connecter* tcp, const sockaddr* addr) = 0; - /// register event listener virtual bool add_ev(llarp::ev_io* ev, bool write) = 0; - virtual bool - running() const = 0; - virtual ~llarp_ev_loop(){}; std::list< std::unique_ptr< llarp::ev_io > > handlers; diff --git a/llarp/ev/ev_kqueue.hpp b/llarp/ev/ev_kqueue.hpp index 71f6a10cf..79dd4874c 100644 --- a/llarp/ev/ev_kqueue.hpp +++ b/llarp/ev/ev_kqueue.hpp @@ -77,7 +77,7 @@ namespace llarp } // namespace llarp -struct llarp_kqueue_loop : public llarp_ev_loop +struct llarp_kqueue_loop final : public llarp_ev_loop { int kqueuefd; @@ -85,51 +85,51 @@ struct llarp_kqueue_loop : public llarp_ev_loop { } - llarp::ev_io* - bind_tcp(llarp_tcp_acceptor* tcp, const sockaddr* bindaddr); - - ~llarp_kqueue_loop() + virtual ~llarp_kqueue_loop() { } - llarp::ev_io* - create_tun(llarp_tun_io* tun); - bool - init(); + init() override; - bool - running() const; + int + run() override; bool - tcp_connect(llarp_tcp_connecter* tcp, const sockaddr* addr); + running() const override; - int - tick(int ms); + bool + tcp_connect(llarp_tcp_connecter* tcp, const sockaddr* addr) override; int - run(); + tick(int ms) override; int udp_bind(const sockaddr* addr); virtual bool - udp_listen(llarp_udp_io* l, const sockaddr* src); + udp_listen(llarp_udp_io* l, const sockaddr* src) override; bool - close_ev(llarp::ev_io* ev); + close_ev(llarp::ev_io* ev) override; + + llarp::ev_io* + create_tun(llarp_tun_io* tun) override; + + llarp::ev_io* + bind_tcp(llarp_tcp_acceptor* tcp, const sockaddr* bindaddr) override; llarp::ev_io* - create_udp(llarp_udp_io* l, const sockaddr* src); + create_udp(llarp_udp_io* l, const sockaddr* src) override; bool - add_ev(llarp::ev_io* ev, bool w); + add_ev(llarp::ev_io* ev, bool w) override; bool - udp_close(llarp_udp_io* l); + udp_close(llarp_udp_io* l) override; void - stop(); + stop() override; }; #endif