Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 0 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -180,8 +180,6 @@ scratch

*.bun-build

Comment thread
claude[bot] marked this conversation as resolved.
Resolved
scripts/lldb-inline

test/integration/bun-types/fixture/bun.lock
.claude/scheduled_tasks.lock
.claude/worktrees
Expand Down
11 changes: 0 additions & 11 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

20 changes: 0 additions & 20 deletions packages/bun-usockets/src/context.c
Original file line number Diff line number Diff line change
Expand Up @@ -167,10 +167,6 @@ void us_socket_group_close_all(struct us_socket_group_t *group) {
us_socket_group_close_all_ex(group, 1);
}

unsigned short us_socket_group_timestamp(struct us_socket_group_t *group) {
return group->timestamp;
}

__attribute__((always_inline)) struct us_loop_t *us_socket_group_loop(struct us_socket_group_t *group) {
return group->loop;
}
Expand All @@ -179,10 +175,6 @@ __attribute__((always_inline)) void *us_socket_group_ext(struct us_socket_group_
return group->ext;
}

struct us_socket_group_t *us_socket_group_next(struct us_socket_group_t *group) {
return group->next;
}

/* ── Link / unlink ──────────────────────────────────────────────────────── */

static inline int us_internal_group_is_empty(struct us_socket_group_t *group) {
Expand Down Expand Up @@ -501,10 +493,6 @@ void us_listen_socket_close(struct us_listen_socket_t *ls) {
/* We cannot immediately free a listen socket as we can be inside an accept loop */
}

__attribute__((always_inline)) void *us_listen_socket_ext(struct us_listen_socket_t *ls) {
return ls + 1;
}

struct us_listen_socket_t *us_socket_group_head_listen_socket(struct us_socket_group_t *group) {
return group->head_listen_sockets;
}
Expand All @@ -513,14 +501,6 @@ struct us_listen_socket_t *us_listen_socket_next(struct us_listen_socket_t *ls)
return ls->next;
}

LIBUS_SOCKET_DESCRIPTOR us_listen_socket_get_fd(struct us_listen_socket_t *ls) {
return us_poll_fd(&ls->s.p);
}

int us_listen_socket_port(struct us_listen_socket_t *ls) {
return us_socket_local_port(&ls->s);
}

struct us_socket_group_t *us_listen_socket_group(struct us_listen_socket_t *ls) {
return ls->accept_group;
}
Expand Down
11 changes: 1 addition & 10 deletions packages/bun-usockets/src/crypto/openssl.c
Original file line number Diff line number Diff line change
Expand Up @@ -128,7 +128,6 @@ enum {
/* SNI tree leaf — stored as the void* user in sni_tree.cpp. */
struct sni_node_t {
SSL_CTX *ctx;
void *user;
};

static _Atomic long ssl_ctx_live = 0;
Expand Down Expand Up @@ -2981,9 +2980,8 @@ int us_listen_socket_add_server_name(struct us_listen_socket_t *ls,

struct sni_node_t *node = us_malloc(sizeof(struct sni_node_t));
node->ctx = ctx;
node->user = user;
SSL_CTX_up_ref(ctx);
/* Stash userdata on the SSL_CTX too so per-socket lookup via
/* Stash userdata on the SSL_CTX so per-socket lookup via
* SSL_get_SSL_CTX works regardless of which ctx the SNI cb selected. */
us_ex_idx_ensure();
SSL_CTX_set_ex_data(ctx, us_sni_ex_idx, user);
Expand All @@ -3004,13 +3002,6 @@ void us_listen_socket_remove_server_name(struct us_listen_socket_t *ls,
sni_node_destructor(node);
}

void *us_listen_socket_find_server_name_userdata(struct us_listen_socket_t *ls,
const char *hostname_pattern) {
if (!ls->sni) return NULL;
struct sni_node_t *node = (struct sni_node_t *)sni_find(ls->sni, hostname_pattern);
return node ? node->user : NULL;
}

/* Returns the SSL_CTX registered for `hostname_pattern` via
* us_listen_socket_add_server_name, or NULL. Owned - the caller must release
* the reference. The on_server_name resolvers return owned references (the
Expand Down
8 changes: 0 additions & 8 deletions packages/bun-usockets/src/libusockets.h
Original file line number Diff line number Diff line change
Expand Up @@ -355,10 +355,8 @@ void us_socket_group_close_all_ex(us_socket_group_r group, int also_listeners) n
* (see close_all_ex). */
int us_loop_close_all_groups(us_loop_r loop) nonnull_fn_decl;

unsigned short us_socket_group_timestamp(us_socket_group_r group) nonnull_fn_decl;
struct us_loop_t *us_socket_group_loop(us_socket_group_r group) nonnull_fn_decl __attribute((returns_nonnull));
void *us_socket_group_ext(us_socket_group_r group) nonnull_fn_decl;
struct us_socket_group_t *us_socket_group_next(us_socket_group_r group) nonnull_fn_decl;

/* Move an open socket between groups / kinds, optionally resizing its ext.
* Replaces us_socket_context_adopt_socket + us_create_child_socket_context.
Expand Down Expand Up @@ -406,8 +404,6 @@ int us_listen_socket_add_server_name(struct us_listen_socket_t *ls,
__attribute__((nonnull(1, 2, 3)));
void us_listen_socket_remove_server_name(struct us_listen_socket_t *ls,
const char *hostname_pattern) nonnull_fn_decl;
void *us_listen_socket_find_server_name_userdata(struct us_listen_socket_t *ls,
const char *hostname_pattern) nonnull_fn_decl;
/* Returns an owned reference; the caller must release it. */
struct ssl_ctx_st *us_listen_socket_find_server_name_ctx(struct us_listen_socket_t *ls,
const char *hostname_pattern) nonnull_fn_decl;
Expand Down Expand Up @@ -690,9 +686,6 @@ void us_socket_local_address(us_socket_r s, char *nonnull_arg buf, int *nonnull_
struct us_socket_t *us_socket_detach(us_socket_r s) nonnull_fn_decl;
int us_socket_ipc_write_fd(us_socket_r s, const char *data, int length, int fd) nonnull_fn_decl;
void us_socket_sendfile_needs_more(us_socket_r s) nonnull_fn_decl;
void *us_listen_socket_ext(struct us_listen_socket_t *ls) nonnull_fn_decl;
LIBUS_SOCKET_DESCRIPTOR us_listen_socket_get_fd(struct us_listen_socket_t *ls) nonnull_fn_decl;
int us_listen_socket_port(struct us_listen_socket_t *ls) nonnull_fn_decl;
struct us_socket_group_t *us_listen_socket_group(struct us_listen_socket_t *ls) nonnull_fn_decl;
/* Walk a group's live listeners. The list is the source of truth — anything
* that caches us_listen_socket_t* across event-loop ticks (e.g. a std::vector
Expand All @@ -705,7 +698,6 @@ LIBUS_SOCKET_DESCRIPTOR us_socket_get_fd(us_socket_r s) nonnull_fn_decl;
struct us_socket_t *us_socket_pair(us_socket_group_r group, unsigned char kind, int socket_ext_size, LIBUS_SOCKET_DESCRIPTOR *fds) nonnull_fn_decl;
struct us_socket_t *us_socket_from_fd(us_socket_group_r group, unsigned char kind, struct ssl_ctx_st *ssl_ctx, int socket_ext_size, LIBUS_SOCKET_DESCRIPTOR fd, int options, int ipc)
__attribute__((nonnull(1))); /* ssl_ctx nullable */
struct us_socket_t *us_socket_open(struct us_socket_t *s, int is_client, char *ip, int ip_length);
int us_raw_root_certs(struct us_cert_string_t **out);
unsigned int us_get_remote_address_info(char *buf, us_socket_r s, const char **dest, int *port, int *is_ipv6);
unsigned int us_get_local_address_info(char *buf, us_socket_r s, const char **dest, int *port, int *is_ipv6);
Expand Down
1 change: 0 additions & 1 deletion packages/bun-usockets/src/node_quic_shim.c
Original file line number Diff line number Diff line change
Expand Up @@ -526,7 +526,6 @@ lsquic_engine_t *us_nq_engine_new(int is_server, int is_http,

const struct sockaddr *us_nq_spec_dest(const struct lsquic_out_spec *s) { return s->dest_sa; }
const struct sockaddr *us_nq_spec_local(const struct lsquic_out_spec *s) { return s->local_sa; }
Comment thread
claude[bot] marked this conversation as resolved.
Resolved
void *us_nq_spec_peer_ctx(const struct lsquic_out_spec *s) { return s->peer_ctx; }
const struct iovec *us_nq_spec_iov(const struct lsquic_out_spec *s, size_t *n) {
*n = s->iovlen;
return s->iov;
Expand Down
27 changes: 1 addition & 26 deletions packages/bun-usockets/src/quic.c
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,6 @@ struct us_quic_socket_context_s {
* the peer until idle timeout). */
struct us_quic_socket_s *conns;

void (*on_open)(us_quic_socket_t *);
void (*on_hsk_done)(us_quic_socket_t *, int);
void (*on_goaway)(us_quic_socket_t *);
void (*on_close)(us_quic_socket_t *);
Expand Down Expand Up @@ -558,7 +557,6 @@ static lsquic_conn_ctx_t *us_quic_on_new_conn(void *if_ctx, lsquic_conn_t *conn)
us_internal_enable_sweep_timer(ctx->loop);
qs->next = ctx->conns;
ctx->conns = qs;
if (ctx->on_open) ctx->on_open(qs);
return (lsquic_conn_ctx_t *) qs;
}

Expand Down Expand Up @@ -961,7 +959,6 @@ int us_quic_listen_socket_local_address(us_quic_listen_socket_t *ls, char *buf,

#define DEF_CB(name, sig) \
void us_quic_socket_context_##name(us_quic_socket_context_t *ctx, sig) { ctx->name = cb; }
DEF_CB(on_open, void (*cb)(us_quic_socket_t *))
DEF_CB(on_hsk_done, void (*cb)(us_quic_socket_t *, int))
DEF_CB(on_goaway, void (*cb)(us_quic_socket_t *))
DEF_CB(on_close, void (*cb)(us_quic_socket_t *))
Expand Down Expand Up @@ -1061,15 +1058,6 @@ void us_quic_stream_shutdown(us_quic_stream_t *s) {
if (s->stream) lsquic_stream_shutdown(s->stream, 1);
}

/* lsquic_stream_write buffers until a full packet or shutdown; force the
* partial buffer into a packet so the peer sees streamed bytes promptly. */
void us_quic_stream_flush(us_quic_stream_t *s) {
if (s->stream) {
lsquic_stream_flush(s->stream);
s->ctx->pending_write_bytes++;
}
}

void us_quic_stream_shutdown_read(us_quic_stream_t *s) {
if (s->stream) lsquic_stream_shutdown(s->stream, 0);
}
Expand All @@ -1092,10 +1080,6 @@ void us_quic_stream_reset(us_quic_stream_t *s) {
if (s->stream) lsquic_stream_maybe_reset(s->stream, 0x10C, 1);
}

int us_quic_stream_has_unacked(us_quic_stream_t *s) {
return s->stream ? lsquic_stream_has_unacked_data(s->stream) : 0;
}

void *us_quic_stream_ext(us_quic_stream_t *s) { return s + 1; }

us_quic_socket_t *us_quic_stream_socket(us_quic_stream_t *s) {
Expand All @@ -1115,7 +1099,6 @@ const struct us_quic_header_t *us_quic_stream_header(us_quic_stream_t *s, unsign
}

void *us_quic_socket_ext(us_quic_socket_t *s) { return s + 1; }
us_quic_socket_context_t *us_quic_socket_context(us_quic_socket_t *s) { return s->ctx; }

void us_quic_socket_remote_address(us_quic_socket_t *s, char *buf, int *len, int *port, int *is_ipv6) {
const struct sockaddr *local, *peer;
Expand All @@ -1136,8 +1119,6 @@ void us_quic_socket_remote_address(us_quic_socket_t *s, char *buf, int *len, int
}
}

void us_quic_socket_close(us_quic_socket_t *s) { if (s->conn) lsquic_conn_close(s->conn); }

/* ───── client ─────
*
* lsquic only installs its own SSL_CTX_set_custom_verify when ea_get_ssl_ctx
Expand Down Expand Up @@ -1371,13 +1352,12 @@ struct us_quic_pending_connect_s {
int port;
int reject_unauthorized;
struct addrinfo_request *ai_req;
void *user;
};

int us_quic_socket_context_connect(
us_quic_socket_context_t *ctx, const char *host, int port, const char *sni,
int reject_unauthorized, us_quic_socket_t **out_qs,
struct us_quic_pending_connect_s **out_pending, void *user)
struct us_quic_pending_connect_s **out_pending)
{
*out_qs = NULL;
*out_pending = NULL;
Expand Down Expand Up @@ -1414,15 +1394,10 @@ int us_quic_socket_context_connect(
pc->port = port;
pc->reject_unauthorized = reject_unauthorized;
pc->ai_req = ai_req;
pc->user = user;
*out_pending = pc;
return 0;
}

void *us_quic_pending_connect_user(struct us_quic_pending_connect_s *pc) {
return pc->user;
}

struct addrinfo_request *us_quic_pending_connect_addrinfo(
struct us_quic_pending_connect_s *pc) { return pc->ai_req; }

Expand Down
9 changes: 1 addition & 8 deletions packages/bun-usockets/src/quic.h
Original file line number Diff line number Diff line change
Expand Up @@ -88,9 +88,8 @@ struct addrinfo_request;
int us_quic_socket_context_connect(
us_quic_socket_context_t *ctx, const char *host, int port, const char *sni,
int reject_unauthorized, us_quic_socket_t **out_qs,
struct us_quic_pending_connect_s **out_pending, void *user);
struct us_quic_pending_connect_s **out_pending);

void *us_quic_pending_connect_user(struct us_quic_pending_connect_s *pc);
struct addrinfo_request *us_quic_pending_connect_addrinfo(
struct us_quic_pending_connect_s *pc);
us_quic_socket_t *us_quic_pending_connect_resolved(
Expand All @@ -105,8 +104,6 @@ unsigned us_quic_socket_streams_avail(us_quic_socket_t *s);
int us_quic_socket_status(us_quic_socket_t *s, char *buf, unsigned int len);

/* Connection-level callbacks */
void us_quic_socket_context_on_open(us_quic_socket_context_t *ctx,
void (*on_open)(us_quic_socket_t *));
/* Fires once the TLS handshake completes (client only). ok=0 means the
* handshake failed; on_close follows shortly. */
void us_quic_socket_context_on_hsk_done(us_quic_socket_context_t *ctx,
Expand Down Expand Up @@ -140,11 +137,9 @@ int us_quic_stream_send_headers(us_quic_stream_t *s,
* header block follows separately. */
int us_quic_stream_send_informational(us_quic_stream_t *s, const char *status3);
void us_quic_stream_shutdown(us_quic_stream_t *s);
void us_quic_stream_flush(us_quic_stream_t *s);
void us_quic_stream_shutdown_read(us_quic_stream_t *s);
void us_quic_stream_close(us_quic_stream_t *s);
void us_quic_stream_reset(us_quic_stream_t *s);
int us_quic_stream_has_unacked(us_quic_stream_t *s);

void *us_quic_stream_ext(us_quic_stream_t *s);
us_quic_socket_t *us_quic_stream_socket(us_quic_stream_t *s);
Expand All @@ -163,9 +158,7 @@ const struct us_quic_header_t *us_quic_stream_header(us_quic_stream_t *s, unsign

/* Connection accessors */
void *us_quic_socket_ext(us_quic_socket_t *s);
us_quic_socket_context_t *us_quic_socket_context(us_quic_socket_t *s);
void us_quic_socket_remote_address(us_quic_socket_t *s, char *buf, int *len, int *port, int *is_ipv6);
void us_quic_socket_close(us_quic_socket_t *s);

#ifdef __cplusplus
}
Expand Down
7 changes: 0 additions & 7 deletions packages/bun-usockets/src/socket.c
Original file line number Diff line number Diff line change
Expand Up @@ -743,13 +743,6 @@ int us_connecting_socket_get_dns_error(struct us_connecting_socket_t *c) {
return c->error_is_dns ? c->error : 0;
}

struct us_socket_t *us_socket_open(struct us_socket_t *s, int is_client, char *ip, int ip_length) {
if (s->ssl) {
return us_internal_ssl_on_open(s, is_client, ip, ip_length);
}
return us_dispatch_open(s, is_client, ip, ip_length);
}

unsigned int us_get_remote_address_info(char *buf, struct us_socket_t *s, const char **dest, int *port, int *is_ipv6)
{
// This function is manual inlining + modification of
Expand Down
Loading
Loading