aboutsummaryrefslogtreecommitdiff
path: root/packages/bun-usockets/src/socket.c
diff options
context:
space:
mode:
authorGravatar Ai Hoshino <ambiguous404@gmail.com> 2023-10-18 04:18:14 +0800
committerGravatar GitHub <noreply@github.com> 2023-10-17 13:18:14 -0700
commite91436e5248d947b50f90b4a7402690be8a41f39 (patch)
tree535ebf46dfaf55ab0cd3d55def9943e2a8ab8403 /packages/bun-usockets/src/socket.c
parentbbc2e96090d3cdc4ccfd5e4456a8d2a236c84c44 (diff)
downloadbun-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.c12
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
+}