int log_main(LogWriter* logWriter, const char* ipcPath) { ExceptionScope exScope; int volatile ret = 0; int ex; exception_begin_try(B(logWriter), &exScope); switch ((ex = exception_try(B(logWriter)))) { case Try: log_writer_init(logWriter, ipcPath); log_writer_main_loop(logWriter); break; case Finally: log_writer_deinit(logWriter); break; default: printf("[log_main] Unhandled exception (%i): %s\n", ex, string_data(exception_get_message(B(logWriter)))); exception_handled(B(logWriter)); ret = ex; break; } exception_end_try_with_finally(B(logWriter)); return ret; }
static config_log_state *open_config_log(server_rec *s, apr_pool_t *p, config_log_state *cls, apr_array_header_t *default_format) { if (cls->log_writer != NULL) { return cls; /* virtual config shared w/main server */ } if (cls->fname == NULL) { return cls; /* Leave it NULL to decline. */ } cls->log_writer = log_writer_init(p, s, cls->fname); if (cls->log_writer == NULL) return NULL; return cls; }