diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/netaddr.cpp | 17 | ||||
-rw-r--r-- | src/network.cpp | 28 | ||||
-rw-r--r-- | src/stream.cpp | 16 |
3 files changed, 46 insertions, 15 deletions
diff --git a/src/netaddr.cpp b/src/netaddr.cpp index cb8a3d2..736d606 100644 --- a/src/netaddr.cpp +++ b/src/netaddr.cpp @@ -2,22 +2,33 @@ #ifdef SALTICIDAE_CBINDINGS #include "salticidae/netaddr.h" +using namespace salticidae; + extern "C" { netaddr_t *netaddr_new() { return new netaddr_t(); } void netaddr_free(const netaddr_t *self) { delete self; } -netaddr_t *netaddr_new_from_ip_port(uint32_t ip, uint16_t port) { +netaddr_t *netaddr_new_from_ip_port(uint32_t ip, uint16_t port, SalticidaeCError *cerror) { + SALTICIDAE_CERROR_TRY(cerror) return new netaddr_t(ip, port); + SALTICIDAE_CERROR_CATCH(cerror) + return nullptr; } -netaddr_t *netaddr_new_from_sip_port(const char *ip, uint16_t port) { +netaddr_t *netaddr_new_from_sip_port(const char *ip, uint16_t port, SalticidaeCError *cerror) { + SALTICIDAE_CERROR_TRY(cerror) return new netaddr_t(ip, port); + SALTICIDAE_CERROR_CATCH(cerror) + return nullptr; } -netaddr_t *netaddr_new_from_sipport(const char *ip_port_addr) { +netaddr_t *netaddr_new_from_sipport(const char *ip_port_addr, SalticidaeCError *cerror) { + SALTICIDAE_CERROR_TRY(cerror) return new netaddr_t(ip_port_addr); + SALTICIDAE_CERROR_CATCH(cerror) + return nullptr; } netaddr_t *netaddr_copy(const netaddr_t *self) { diff --git a/src/network.cpp b/src/network.cpp index a02ead1..2dc7d1f 100644 --- a/src/network.cpp +++ b/src/network.cpp @@ -190,19 +190,23 @@ peernetwork_t *peernetwork_new(const eventcontext_t *ec, const peernetwork_confi void peernetwork_free(const peernetwork_t *self) { delete self; } -void peernetwork_add_peer(peernetwork_t *self, const netaddr_t *paddr) { - self->add_peer(*paddr); +void peernetwork_add_peer(peernetwork_t *self, const netaddr_t *addr) { + self->add_peer(*addr); } -bool peernetwork_has_peer(const peernetwork_t *self, const netaddr_t *paddr) { - return self->has_peer(*paddr); +void peernetwork_del_peer(peernetwork_t *self, const netaddr_t *addr) { + self->del_peer(*addr); +} + +bool peernetwork_has_peer(const peernetwork_t *self, const netaddr_t *addr) { + return self->has_peer(*addr); } const peernetwork_conn_t *peernetwork_get_peer_conn(const peernetwork_t *self, - const netaddr_t *paddr, + const netaddr_t *addr, SalticidaeCError *cerror) { SALTICIDAE_CERROR_TRY(cerror) - return new peernetwork_conn_t(self->get_peer_conn(*paddr)); + return new peernetwork_conn_t(self->get_peer_conn(*addr)); SALTICIDAE_CERROR_CATCH(cerror) return nullptr; } @@ -227,18 +231,18 @@ peernetwork_conn_t *peernetwork_conn_copy(const peernetwork_conn_t *self) { void peernetwork_conn_free(const peernetwork_conn_t *self) { delete self; } -void peernetwork_send_msg(peernetwork_t *self, const msg_t * msg, const netaddr_t *paddr) { - self->_send_msg(*msg, *paddr); +void peernetwork_send_msg(peernetwork_t *self, const msg_t * msg, const netaddr_t *addr) { + self->_send_msg(*msg, *addr); } void peernetwork_send_msg_deferred_by_move(peernetwork_t *self, - msg_t *_moved_msg, const netaddr_t *paddr) { - self->_send_msg_deferred(std::move(*_moved_msg), *paddr); + msg_t *_moved_msg, const netaddr_t *addr) { + self->_send_msg_deferred(std::move(*_moved_msg), *addr); } void peernetwork_multicast_msg_by_move(peernetwork_t *self, - msg_t *_moved_msg, const netaddr_array_t *paddrs) { - self->_multicast_msg(std::move(*_moved_msg), *paddrs); + msg_t *_moved_msg, const netaddr_array_t *addrs) { + self->_multicast_msg(std::move(*_moved_msg), *addrs); } void peernetwork_listen(peernetwork_t *self, const netaddr_t *listen_addr, SalticidaeCError *cerror) { diff --git a/src/stream.cpp b/src/stream.cpp index f5d4ac9..6b208aa 100644 --- a/src/stream.cpp +++ b/src/stream.cpp @@ -133,6 +133,14 @@ bytearray_t *bytearray_new_moved_from_datastream(datastream_t *_moved_src) { } } +bytearray_t *bytearray_new_copied_from_datastream(datastream_t *src) { + try { + return new bytearray_t(*src); + } catch (...) { + return nullptr; + } +} + bytearray_t *bytearray_new_from_hex(const char *hex_str) { try { return new bytearray_t(salticidae::from_hex(hex_str)); @@ -141,6 +149,14 @@ bytearray_t *bytearray_new_from_hex(const char *hex_str) { } } +bytearray_t *bytearray_new_from_bytes(const uint8_t *arr, size_t len) { + try { + return new bytearray_t(arr, arr + len); + } catch (...) { + return nullptr; + } +} + char *datastream_get_hex(datastream_t *self) { std::string tmp = self->get_hex(); auto res = (char *)malloc(tmp.length() + 1); |