kore

An easy to use, scalable and secure web application framework for writing web APIs in C.
Commits | Files | Refs | README | LICENSE | git clone https://git.kore.io/kore.git

commit 6cabe00740910c212a7bb4e996630b6717c0ef9c
parent 4b7a458de6f5932c16f6b3eda8337d631aa4924c
Author: Joris Vink <joris@coders.se>
Date:   Mon, 14 Apr 2014 08:41:41 +0200

Make the pgsql connstring programmatically configurable

Diffstat:
contrib/modules/pgsql_test/src/pgsql_test.c | 13+++++++++++++
contrib/postgres/kore_pgsql.c | 7+++++--
includes/contrib/postgres/kore_pgsql.h | 2++
3 files changed, 20 insertions(+), 2 deletions(-)

diff --git a/contrib/modules/pgsql_test/src/pgsql_test.c b/contrib/modules/pgsql_test/src/pgsql_test.c @@ -20,8 +20,21 @@ #include "static.h" +void pgsql_load(int); int serve_pgsql_test(struct http_request *); +void +pgsql_load(int state) +{ + switch (state) { + case KORE_MODULE_LOAD: + pgsql_conn_string = "Your connection string"; + break; + default: + break; + } +} + int serve_pgsql_test(struct http_request *req) { diff --git a/contrib/postgres/kore_pgsql.c b/contrib/postgres/kore_pgsql.c @@ -51,10 +51,14 @@ static void pgsql_read_result(struct http_request *, int, static TAILQ_HEAD(, pgsql_conn) pgsql_conn_free; static u_int16_t pgsql_conn_count; +char *pgsql_conn_string = NULL; void kore_pgsql_init(void) { + if (pgsql_conn_string == NULL) + fatal("No pgsql connection string set"); + pgsql_conn_count = 0; TAILQ_INIT(&pgsql_conn_free); } @@ -248,8 +252,7 @@ pgsql_conn_create(struct http_request *req, int idx) kore_debug("pgsql_conn_create(): %p", conn); memset(conn, 0, sizeof(*conn)); - /* XXX don't forget to make this configurable. */ - conn->db = PQconnectdb("host=/tmp/ user=joris"); + conn->db = PQconnectdb(pgsql_conn_string); if (conn->db == NULL || (PQstatus(conn->db) != CONNECTION_OK)) { req->pgsql[idx]->state = KORE_PGSQL_STATE_ERROR; req->pgsql[idx]->error = kore_strdup(PQerrorMessage(conn->db)); diff --git a/includes/contrib/postgres/kore_pgsql.h b/includes/contrib/postgres/kore_pgsql.h @@ -26,6 +26,8 @@ struct kore_pgsql { void *conn; }; +extern char *pgsql_conn_string; + void kore_pgsql_init(void); void kore_pgsql_handle(void *, int); void kore_pgsql_cleanup(struct http_request *);