mldonkey-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Mldonkey-commits] mldonkey distrib/ChangeLog src/utils/lib/syslog.ml


From: mldonkey-commits
Subject: [Mldonkey-commits] mldonkey distrib/ChangeLog src/utils/lib/syslog.ml
Date: Sun, 17 Jun 2007 01:24:28 +0000

CVSROOT:        /sources/mldonkey
Module name:    mldonkey
Changes by:     spiralvoice <spiralvoice>       07/06/17 01:24:28

Modified files:
        distrib        : ChangeLog 
        src/utils/lib  : syslog.ml 

Log message:
        patch #6010

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/mldonkey/distrib/ChangeLog?cvsroot=mldonkey&r1=1.1277&r2=1.1278
http://cvs.savannah.gnu.org/viewcvs/mldonkey/src/utils/lib/syslog.ml?cvsroot=mldonkey&r1=1.3&r2=1.4

Patches:
Index: distrib/ChangeLog
===================================================================
RCS file: /sources/mldonkey/mldonkey/distrib/ChangeLog,v
retrieving revision 1.1277
retrieving revision 1.1278
diff -u -b -r1.1277 -r1.1278
--- distrib/ChangeLog   17 Jun 2007 01:21:45 -0000      1.1277
+++ distrib/ChangeLog   17 Jun 2007 01:24:27 -0000      1.1278
@@ -15,6 +15,7 @@
 =========
 
 2007/06/17
+6010: Update syslog.ml to version 1.4
 5995: EDK: Better handle permission denied errors for shared/downloading files
 5992: BT/IP block: Fix country-based IP blocking
 -------------------------------------------------------------------------------

Index: src/utils/lib/syslog.ml
===================================================================
RCS file: /sources/mldonkey/mldonkey/src/utils/lib/syslog.ml,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -b -r1.3 -r1.4
--- src/utils/lib/syslog.ml     6 Feb 2007 22:26:59 -0000       1.3
+++ src/utils/lib/syslog.ml     17 Jun 2007 01:24:28 -0000      1.4
@@ -185,6 +185,22 @@
   in
     (Printf.sprintf "%s %02d %02d:%02d:%02d" asc_mon mday hour min sec)
 
+let protected_write loginfo str =
+  let fallback _ =
+    (try close loginfo.fd with _ -> ());
+    loginfo.connected <- false;
+    (try open_connection loginfo with _ -> ());
+    if List.mem `LOG_CONS loginfo.flags then log_console str
+  in
+  let prev = Sys.signal Sys.sigpipe (Sys.Signal_handle fallback) in
+  try
+    ignore (write loginfo.fd str 0 (String.length str));
+    Sys.set_signal Sys.sigpipe prev
+  with Unix_error (_, _, _) ->
+    (* on error, attempt to reconnect *)
+    fallback ();
+    Sys.set_signal Sys.sigpipe prev
+
 let syslog ?fac loginfo lev str =
   let msg = Buffer.create 64 in
   let realfac = match fac with 
@@ -209,17 +225,7 @@
          realmsg := String.sub !realmsg 0 1024;
          String.blit "<truncated>" 0 !realmsg 1012 11
        end;
-       begin try
-         ignore (Unix.write loginfo.fd !realmsg 0 (String.length !realmsg))
-       with 
-         | Unix.Unix_error(_,_,_) -> (* on error, attempt to reconnect *)
-             (try close loginfo.fd
-              with _ -> ());
-             loginfo.connected <- false;
-             (try open_connection loginfo with _ -> ());
-             if List.mem `LOG_CONS loginfo.flags then
-               log_console !realmsg
-       end;
+        protected_write loginfo !realmsg;
        if List.mem `LOG_PERROR loginfo.flags then begin
          try
            ignore (Unix.write Unix.stderr !realmsg 0 (String.length !realmsg));




reply via email to

[Prev in Thread] Current Thread [Next in Thread]