From 3d41a8a0c2c67267d1bb34f9b52180e6f3715b93 Mon Sep 17 00:00:00 2001 From: Cole Miller Date: Tue, 17 Oct 2023 01:00:21 -0400 Subject: [PATCH] Plumb the DB context down to the gateway Signed-off-by: Cole Miller --- src/conn.c | 5 +++-- src/conn.h | 3 ++- src/gateway.c | 4 +++- src/gateway.h | 4 +++- src/server.c | 2 +- 5 files changed, 12 insertions(+), 6 deletions(-) diff --git a/src/conn.c b/src/conn.c index 170cf2b78..33a59f2b4 100644 --- a/src/conn.c +++ b/src/conn.c @@ -296,7 +296,8 @@ int conn__start(struct conn *c, struct uv_stream_s *stream, struct raft_uv_transport *uv_transport, struct id_state seed, - conn_close_cb close_cb) + conn_close_cb close_cb, + struct db_context *db_ctx) { int rv; (void)loop; @@ -310,7 +311,7 @@ int conn__start(struct conn *c, c->transport.data = c; c->uv_transport = uv_transport; c->close_cb = close_cb; - gateway__init(&c->gateway, config, registry, raft, seed); + gateway__init(&c->gateway, config, registry, raft, seed, db_ctx); rv = buffer__init(&c->read); if (rv != 0) { goto err_after_transport_init; diff --git a/src/conn.h b/src/conn.h index 8e5ccbf28..5da7d0be0 100644 --- a/src/conn.h +++ b/src/conn.h @@ -53,7 +53,8 @@ int conn__start(struct conn *c, struct uv_stream_s *stream, struct raft_uv_transport *uv_transport, struct id_state seed, - conn_close_cb close_cb); + conn_close_cb close_cb, + struct db_context *db_ctx); /** * Force closing the connection. The close callback will be invoked when it's diff --git a/src/gateway.c b/src/gateway.c index 81dd54071..dfe2108e6 100644 --- a/src/gateway.c +++ b/src/gateway.c @@ -15,7 +15,8 @@ void gateway__init(struct gateway *g, struct config *config, struct registry *registry, struct raft *raft, - struct id_state seed) + struct id_state seed, + struct db_context *db_ctx) { tracef("gateway init"); g->config = config; @@ -31,6 +32,7 @@ void gateway__init(struct gateway *g, g->protocol = DQLITE_PROTOCOL_VERSION; g->client_id = 0; g->random_state = seed; + g->db_ctx = db_ctx; } void gateway__leader_close(struct gateway *g, int reason) diff --git a/src/gateway.h b/src/gateway.h index dd07fdd59..c6fcacc49 100644 --- a/src/gateway.h +++ b/src/gateway.h @@ -37,13 +37,15 @@ struct gateway uint64_t protocol; /* Protocol format version */ uint64_t client_id; struct id_state random_state; /* For generating IDs */ + struct db_context *db_ctx; }; void gateway__init(struct gateway *g, struct config *config, struct registry *registry, struct raft *raft, - struct id_state seed); + struct id_state seed, + struct db_context *db_ctx); void gateway__close(struct gateway *g); diff --git a/src/server.c b/src/server.c index 8bd6cf17a..760367d9e 100644 --- a/src/server.c +++ b/src/server.c @@ -629,7 +629,7 @@ static void listenCb(uv_stream_t *listener, int status) goto err; } rv = conn__start(conn, &t->config, &t->loop, &t->registry, &t->raft, - stream, &t->raft_transport, seed, destroy_conn); + stream, &t->raft_transport, seed, destroy_conn, t->db_ctx); if (rv != 0) { goto err_after_conn_alloc; }