diff --git a/src/node_sockaddr-inl.h b/src/node_sockaddr-inl.h index e5d8985771ebf2..b5ae5acb5fd7fd 100644 --- a/src/node_sockaddr-inl.h +++ b/src/node_sockaddr-inl.h @@ -152,6 +152,11 @@ void SocketAddress::Update(uint8_t* data, size_t len) { memcpy(&address_, data, len); } +void SocketAddress::Update(const sockaddr* data, size_t len) { + CHECK_LE(len, sizeof(address_)); + memcpy(&address_, data, len); +} + v8::Local SocketAddress::ToJS( Environment* env, v8::Local info) const { diff --git a/src/node_sockaddr.h b/src/node_sockaddr.h index 69a370afa32e81..f05b58d3551f00 100644 --- a/src/node_sockaddr.h +++ b/src/node_sockaddr.h @@ -123,6 +123,7 @@ class SocketAddress : public MemoryRetainer { inline void set_flow_label(uint32_t label = 0); inline void Update(uint8_t* data, size_t len); + inline void Update(const sockaddr* data, size_t len); static SocketAddress FromSockName(const uv_udp_t& handle); static SocketAddress FromSockName(const uv_tcp_t& handle);