diff options
author | Adam Chlipala <adamc@hcoop.net> | 2008-09-02 11:57:25 -0400 |
---|---|---|
committer | Adam Chlipala <adamc@hcoop.net> | 2008-09-02 11:57:25 -0400 |
commit | 48a39b87c0f2b01c85e1bb78072387e30ab0f235 (patch) | |
tree | ce3a9139ccc98bb2c4d7034e44138b10c2221545 /src/c/urweb.c | |
parent | b4398c433195b75d5e03d0774b1128fae14e9f41 (diff) |
Initializing database connection
Diffstat (limited to 'src/c/urweb.c')
-rw-r--r-- | src/c/urweb.c | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/src/c/urweb.c b/src/c/urweb.c index 3d79e1a3..cc6e4f0b 100644 --- a/src/c/urweb.c +++ b/src/c/urweb.c @@ -16,6 +16,8 @@ struct lw_context { char *heap, *heap_front, *heap_back; char **inputs; + void *db; + jmp_buf jmp_buf; char error_message[ERROR_BUF_LEN]; @@ -34,11 +36,21 @@ lw_context lw_init(size_t page_len, size_t heap_len) { ctx->inputs = calloc(lw_inputs_len, sizeof(char *)); + ctx->db = NULL; + ctx->error_message[0] = 0; return ctx; } +void lw_set_db(lw_context ctx, void *db) { + ctx->db = db; +} + +void *lw_get_db(lw_context ctx) { + return ctx->db; +} + void lw_free(lw_context ctx) { free(ctx->page); free(ctx->heap); @@ -63,8 +75,18 @@ void lw_reset(lw_context ctx) { memset(ctx->inputs, 0, lw_inputs_len * sizeof(char *)); } +void lw_db_init(lw_context); void lw_handle(lw_context, char *); +failure_kind lw_begin_init(lw_context ctx) { + int r = setjmp(ctx->jmp_buf); + + if (r == 0) + lw_db_init(ctx); + + return r; +} + failure_kind lw_begin(lw_context ctx, char *path) { int r = setjmp(ctx->jmp_buf); |