diff options
author | Adam Chlipala <adamc@hcoop.net> | 2010-01-03 17:13:45 -0500 |
---|---|---|
committer | Adam Chlipala <adamc@hcoop.net> | 2010-01-03 17:13:45 -0500 |
commit | 85bd2c1f3750a8a918b93815e3550b462b113de5 (patch) | |
tree | c64216bacfaaad2793c146651100f3c289e5daf9 /src/c | |
parent | 86bf1a00aacd96b4d32a1e1e88822a2201594926 (diff) |
Database quotas
Diffstat (limited to 'src/c')
-rw-r--r-- | src/c/request.c | 3 | ||||
-rw-r--r-- | src/c/urweb.c | 9 |
2 files changed, 9 insertions, 3 deletions
diff --git a/src/c/request.c b/src/c/request.c index f190ec98..1a2c0a93 100644 --- a/src/c/request.c +++ b/src/c/request.c @@ -23,9 +23,10 @@ static int try_rollback(uw_context ctx, void *logger_data, uw_logger log_error) if (r) { log_error(logger_data, "Error running SQL ROLLBACK\n"); uw_reset(ctx); - uw_write(ctx, "HTTP/1.1 500 Internal Server Error\n\r"); + uw_write(ctx, "HTTP/1.1 500 Internal Server Error\r\n"); uw_write(ctx, "Content-type: text/plain\r\n\r\n"); uw_write(ctx, "Error running SQL ROLLBACK\n"); + uw_set_error_message(ctx, "Database error; you are probably out of storage space."); } return r; diff --git a/src/c/urweb.c b/src/c/urweb.c index 27831011..79207abc 100644 --- a/src/c/urweb.c +++ b/src/c/urweb.c @@ -470,8 +470,6 @@ uw_context uw_init() { ctx->needs_push = 0; ctx->needs_sig = 0; - ctx->error_message[0] = 0; - ctx->source_count = 0; ctx->n_deltas = ctx->used_deltas = 0; @@ -702,6 +700,11 @@ char *uw_error_message(uw_context ctx) { return ctx->error_message; } +void uw_set_error_message(uw_context ctx, const char *msg) { + strncpy(ctx->error_message, msg, sizeof(ctx->error_message)); + ctx->error_message[sizeof(ctx->error_message)-1] = 0; +} + static input *INP(uw_context ctx) { if (ctx->cur_container == NULL) return ctx->inputs; @@ -3359,3 +3362,5 @@ void uw_check_deadline(uw_context ctx) { if (uw_time > ctx->deadline) uw_error(ctx, FATAL, "Maximum running time exceeded"); } + +size_t uw_database_max = SIZE_MAX; |