comparison src/c/urweb.c @ 1334:a1aa62b472cf

Change Basis.debug to use the protocol's debug function
author Adam Chlipala <adam@chlipala.net>
date Sun, 12 Dec 2010 10:35:04 -0500
parents 4dd5d23bace2
children b106ca8200b1
comparison
equal deleted inserted replaced
1333:dab85a49e0ab 1334:a1aa62b472cf
440 440
441 int deadline; 441 int deadline;
442 442
443 void *client_data; 443 void *client_data;
444 444
445 void *logger_data;
446 uw_logger log_debug;
447
445 char error_message[ERROR_BUF_LEN]; 448 char error_message[ERROR_BUF_LEN];
446 }; 449 };
447 450
448 size_t uw_headers_max = SIZE_MAX; 451 size_t uw_headers_max = SIZE_MAX;
449 size_t uw_page_max = SIZE_MAX; 452 size_t uw_page_max = SIZE_MAX;
450 size_t uw_heap_max = SIZE_MAX; 453 size_t uw_heap_max = SIZE_MAX;
451 size_t uw_script_max = SIZE_MAX; 454 size_t uw_script_max = SIZE_MAX;
452 455
453 uw_context uw_init() { 456 uw_context uw_init(void *logger_data, uw_logger log_debug) {
454 uw_context ctx = malloc(sizeof(struct uw_context)); 457 uw_context ctx = malloc(sizeof(struct uw_context));
455 458
456 ctx->app = NULL; 459 ctx->app = NULL;
457 460
458 ctx->get_header = NULL; 461 ctx->get_header = NULL;
498 ctx->current_url = ""; 501 ctx->current_url = "";
499 502
500 ctx->deadline = INT_MAX; 503 ctx->deadline = INT_MAX;
501 504
502 ctx->client_data = uw_init_client_data(); 505 ctx->client_data = uw_init_client_data();
506
507 ctx->logger_data = logger_data;
508 ctx->log_debug = log_debug;
503 509
504 return ctx; 510 return ctx;
505 } 511 }
506 512
507 size_t uw_inputs_max = SIZE_MAX; 513 size_t uw_inputs_max = SIZE_MAX;
3439 } 3445 }
3440 3446
3441 size_t uw_database_max = SIZE_MAX; 3447 size_t uw_database_max = SIZE_MAX;
3442 3448
3443 uw_Basis_unit uw_Basis_debug(uw_context ctx, uw_Basis_string s) { 3449 uw_Basis_unit uw_Basis_debug(uw_context ctx, uw_Basis_string s) {
3444 fprintf(stderr, "%s\n", s); 3450 if (ctx->log_debug)
3445 3451 ctx->log_debug(ctx->logger_data, "%s\n", s);
3452 else
3453 fprintf(stderr, "%s\n", s);
3446 return uw_unit_v; 3454 return uw_unit_v;
3447 } 3455 }
3448 3456
3449 uw_Basis_int uw_Basis_rand(uw_context ctx) { 3457 uw_Basis_int uw_Basis_rand(uw_context ctx) {
3450 uw_Basis_int n = abs(rand()); 3458 uw_Basis_int n = abs(rand());