diff options
author | 2023-10-18 04:18:14 +0800 | |
---|---|---|
committer | 2023-10-17 13:18:14 -0700 | |
commit | e91436e5248d947b50f90b4a7402690be8a41f39 (patch) | |
tree | 535ebf46dfaf55ab0cd3d55def9943e2a8ab8403 /packages/bun-usockets/src/socket.c | |
parent | bbc2e96090d3cdc4ccfd5e4456a8d2a236c84c44 (diff) | |
download | bun-e91436e5248d947b50f90b4a7402690be8a41f39.tar.gz bun-e91436e5248d947b50f90b4a7402690be8a41f39.tar.zst bun-e91436e5248d947b50f90b4a7402690be8a41f39.zip |
fix(node:http): fix `server.address()` (#6442)
Closes #6413, #5850
Diffstat (limited to 'packages/bun-usockets/src/socket.c')
-rw-r--r-- | packages/bun-usockets/src/socket.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/packages/bun-usockets/src/socket.c b/packages/bun-usockets/src/socket.c index 6edefe0f5..d8371c2ff 100644 --- a/packages/bun-usockets/src/socket.c +++ b/packages/bun-usockets/src/socket.c @@ -48,6 +48,16 @@ void us_socket_remote_address(int ssl, struct us_socket_t *s, char *buf, int *le } } +void us_socket_local_address(int ssl, struct us_socket_t *s, char *buf, int *length) { + struct bsd_addr_t addr; + if (bsd_local_addr(us_poll_fd(&s->p), &addr) || *length < bsd_addr_get_ip_length(&addr)) { + *length = 0; + } else { + *length = bsd_addr_get_ip_length(&addr); + memcpy(buf, bsd_addr_get_ip(&addr), *length); + } +} + struct us_socket_context_t *us_socket_context(int ssl, struct us_socket_t *s) { return s->context; } @@ -301,4 +311,4 @@ unsigned int us_get_remote_address_info(char *buf, struct us_socket_t *s, const *port = bsd_addr_get_port(&addr); return length; -}
\ No newline at end of file +} |