(* COCANWIKI - a wiki written in Objective CAML.
* Written by Richard W.M. Jones <rich@merjis.com>.
* Copyright (C) 2004 Merjis Ltd.
- * $Id: cocanwiki_server_settings.ml,v 1.1 2004/09/23 15:16:21 rich Exp $
+ * $Id: cocanwiki_server_settings.ml,v 1.3 2004/10/09 15:01:58 rich Exp $
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* allowed to access the database. We thus read them at the earliest
* opportunity, in a request context, and cache the results.
*)
-let server_settings_version, server_settings_stats_page =
+let server_settings_version, server_settings_stats_page,
+ server_settings_crash_email =
+ let default = 1, None, None in
let settings = ref None in
let get_settings (dbh : Dbi.connection) =
- let sth = dbh#prepare "select version, stats_page from server_settings" in
+ let sth = dbh#prepare "select version, stats_page, crash_email
+ from server_settings" in
sth#execute [];
let s =
- match sth#fetch1 () with
- | [ `Int version; (`String _ | `Null) as stats_page ] ->
- let stats_page =
- match stats_page with `String s -> Some s | `Null -> None in
- version, stats_page
- | _ -> assert false in
+ try
+ (match sth#fetch1 () with
+ | [ `Int version; (`String _ | `Null) as stats_page;
+ (`String _ | `Null) as crash_email ] ->
+ let stats_page =
+ match stats_page with `String s -> Some s | `Null -> None in
+ let crash_email =
+ match crash_email with `String s -> Some s | `Null -> None in
+ version, stats_page, crash_email
+ | _ -> assert false)
+ with
+ Not_found -> default in
sth#finish ();
settings := Some s;
s
in
let server_settings_version dbh =
- let (version, _) =
+ let (version, _, _) =
match !settings with
None -> get_settings dbh
| Some settings -> settings in
in
let server_settings_stats_page dbh =
- let (_, stats_page) =
+ let (_, stats_page, _) =
match !settings with
None -> get_settings dbh
| Some settings -> settings in
stats_page
in
- server_settings_version, server_settings_stats_page
+ let server_settings_crash_email dbh =
+ let (_, _, crash_email) =
+ match !settings with
+ None -> get_settings dbh
+ | Some settings -> settings in
+ crash_email
+ in
+
+ server_settings_version, server_settings_stats_page,
+ server_settings_crash_email