(* COCANWIKI - a wiki written in Objective CAML.
* Written by Richard W.M. Jones <rich@merjis.com>.
* Copyright (C) 2004 Merjis Ltd.
- * $Id: crash.ml,v 1.5 2006/03/27 18:09:46 rich Exp $
+ * $Id: crash.ml,v 1.7 2006/12/06 09:46:56 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
let run r (q : cgi) dbh hostid
{ canonical_hostname = canonical_hostname } _ =
- let template = get_template dbh hostid "crash.html" in
+ let template = get_template r dbh hostid "crash.html" in
let crash_email = server_settings_crash_email dbh in
(* Get the current time and write it into the logs. *)
- let time = Unix.gmtime (Unix.time ()) in
- let time =
- sprintf "%04d/%02d/%02d %02d:%02d:%02d"
- (time.Unix.tm_year + 1900) (time.Unix.tm_mon + 1) time.Unix.tm_mday
- time.Unix.tm_hour time.Unix.tm_min time.Unix.tm_sec in
-
+ let time = Calendar.now () in
+ let time = Printer.CalendarPrinter.to_string time in
prerr_endline ("crash: " ^ time);
(* Send a feedback email to the designated address if
*)
let mail_sent =
match crash_email with
- None -> false
- | Some email ->
- let subject =
- "Crash notify: There was a 500 internal server error" in
- let body = "Crash at " ^ time ^ "\n" ^
- "Hostname is " ^ canonical_hostname ^ "\n" ^
- "Please see the error log for details." in
- Sendmail.send_mail ~subject ~to_addr:[email] body;
+ | None -> false
+ | Some email ->
+ let subject =
+ "Crash notify: There was a 500 internal server error" in
+ let body = "Crash at " ^ time ^ "\n" ^
+ "Hostname is " ^ canonical_hostname ^ "\n" ^
+ "Please see the error log for details." in
+
+ let to_addrs = ["", email] in
+ let content_type =
+ "text/plain", ["charset", Mimestring.mk_param "UTF-8"] in
+
+ let msg =
+ Netsendmail.compose ~subject ~to_addrs ~content_type body in
+ Netsendmail.sendmail msg;
- true in
+ true in
template#conditional "mail_sent" mail_sent;