[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Mldonkey-commits] mldonkey distrib/ChangeLog src/daemon/common/co...
From: |
mldonkey-commits |
Subject: |
[Mldonkey-commits] mldonkey distrib/ChangeLog src/daemon/common/co... |
Date: |
Mon, 31 Mar 2008 07:58:17 +0000 |
CVSROOT: /sources/mldonkey
Module name: mldonkey
Changes by: spiralvoice <spiralvoice> 08/03/31 07:58:17
Modified files:
distrib : ChangeLog
src/daemon/common: commonOptions.ml commonWeb.ml
src/daemon/driver: driverCommands.ml driverInteractive.ml
src/networks/donkey: donkeyProtoClient.ml donkeyProtoServer.ml
src/utils/cdk : filename2.ml filename2.mli
src/utils/lib : misc.ml misc2.mlcpp unix32.ml
Log message:
patch #6477
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/mldonkey/distrib/ChangeLog?cvsroot=mldonkey&r1=1.1370&r2=1.1371
http://cvs.savannah.gnu.org/viewcvs/mldonkey/src/daemon/common/commonOptions.ml?cvsroot=mldonkey&r1=1.222&r2=1.223
http://cvs.savannah.gnu.org/viewcvs/mldonkey/src/daemon/common/commonWeb.ml?cvsroot=mldonkey&r1=1.41&r2=1.42
http://cvs.savannah.gnu.org/viewcvs/mldonkey/src/daemon/driver/driverCommands.ml?cvsroot=mldonkey&r1=1.247&r2=1.248
http://cvs.savannah.gnu.org/viewcvs/mldonkey/src/daemon/driver/driverInteractive.ml?cvsroot=mldonkey&r1=1.136&r2=1.137
http://cvs.savannah.gnu.org/viewcvs/mldonkey/src/networks/donkey/donkeyProtoClient.ml?cvsroot=mldonkey&r1=1.47&r2=1.48
http://cvs.savannah.gnu.org/viewcvs/mldonkey/src/networks/donkey/donkeyProtoServer.ml?cvsroot=mldonkey&r1=1.27&r2=1.28
http://cvs.savannah.gnu.org/viewcvs/mldonkey/src/utils/cdk/filename2.ml?cvsroot=mldonkey&r1=1.8&r2=1.9
http://cvs.savannah.gnu.org/viewcvs/mldonkey/src/utils/cdk/filename2.mli?cvsroot=mldonkey&r1=1.6&r2=1.7
http://cvs.savannah.gnu.org/viewcvs/mldonkey/src/utils/lib/misc.ml?cvsroot=mldonkey&r1=1.8&r2=1.9
http://cvs.savannah.gnu.org/viewcvs/mldonkey/src/utils/lib/misc2.mlcpp?cvsroot=mldonkey&r1=1.2&r2=1.3
http://cvs.savannah.gnu.org/viewcvs/mldonkey/src/utils/lib/unix32.ml?cvsroot=mldonkey&r1=1.73&r2=1.74
Patches:
Index: distrib/ChangeLog
===================================================================
RCS file: /sources/mldonkey/mldonkey/distrib/ChangeLog,v
retrieving revision 1.1370
retrieving revision 1.1371
diff -u -b -r1.1370 -r1.1371
--- distrib/ChangeLog 31 Mar 2008 07:55:42 -0000 1.1370
+++ distrib/ChangeLog 31 Mar 2008 07:58:16 -0000 1.1371
@@ -15,6 +15,11 @@
=========
2008/03/31
+6477: Use $MLDONKEY_DIR/mlnet_tmp instead of /tmp
+- This patch fixes problems with hash checking of multifile BT
+ downloads when /tmp is too small.
+- To override $MLDONKEY_DIR/mlnet_tmp use variable $MLDONKEY_TEMP.
+ This patch has nothing to do with option temp_directory.
6472: Multiuser: Count only files in download queue for user/group statistics
6471: Clean logfile
6470: BT: Use default of max_upload_slots as minimum for BT-max_bt_uploaders
Index: src/daemon/common/commonOptions.ml
===================================================================
RCS file: /sources/mldonkey/mldonkey/src/daemon/common/commonOptions.ml,v
retrieving revision 1.222
retrieving revision 1.223
diff -u -b -r1.222 -r1.223
--- src/daemon/common/commonOptions.ml 18 Mar 2008 08:24:37 -0000 1.222
+++ src/daemon/common/commonOptions.ml 31 Mar 2008 07:58:16 -0000 1.223
@@ -211,7 +211,13 @@
let conv_filename = Charset.to_locale filename in
if filename <> conv_filename then Charset.conversion_enabled := false;
- Unix2.can_write_to_directory (Filename2.temp_directory ());
+ (try
+ ignore (Sys.getenv "MLDONKEY_TEMP")
+ with Not_found ->
+ Unix.putenv "MLDONKEY_TEMP" ((Filename.basename Sys.argv.(0)) ^ "_tmp")
+ );
+
+ Unix2.can_write_to_directory (Filename2.temp_dir_name ());
if (String2.starts_with (Filename.basename Sys.argv.(0)) "mlnet") then begin
if Sys.file_exists pid_filename then begin
Index: src/daemon/common/commonWeb.ml
===================================================================
RCS file: /sources/mldonkey/mldonkey/src/daemon/common/commonWeb.ml,v
retrieving revision 1.41
retrieving revision 1.42
diff -u -b -r1.41 -r1.42
--- src/daemon/common/commonWeb.ml 24 Jun 2007 18:38:28 -0000 1.41
+++ src/daemon/common/commonWeb.ml 31 Mar 2008 07:58:16 -0000 1.42
@@ -195,7 +195,7 @@
let mldonkey_wget_shell w f =
let command_urlencoded = Str.string_after w.url 8 in
let command = Url.decode command_urlencoded in
- let filename = Filename.temp_file "wget_" ".tmp" in
+ let filename = Filename2.temp_file "wget_" ".tmp" in
ignore (Sys.command (Printf.sprintf "%s > %s" command filename));
(f filename : unit)
Index: src/daemon/driver/driverCommands.ml
===================================================================
RCS file: /sources/mldonkey/mldonkey/src/daemon/driver/driverCommands.ml,v
retrieving revision 1.247
retrieving revision 1.248
diff -u -b -r1.247 -r1.248
--- src/daemon/driver/driverCommands.ml 14 Mar 2008 08:50:52 -0000 1.247
+++ src/daemon/driver/driverCommands.ml 31 Mar 2008 07:58:16 -0000 1.248
@@ -1396,7 +1396,7 @@
[arg] ->
(try
let cmd = List.assoc arg !!allowed_commands in
- let tmp = Filename.temp_file "com" ".out" in
+ let tmp = Filename2.temp_file "com" ".out" in
let ret = Sys.command (Printf.sprintf "%s > %s"
cmd tmp) in
let output = File.to_string tmp in
Index: src/daemon/driver/driverInteractive.ml
===================================================================
RCS file: /sources/mldonkey/mldonkey/src/daemon/driver/driverInteractive.ml,v
retrieving revision 1.136
retrieving revision 1.137
diff -u -b -r1.136 -r1.137
--- src/daemon/driver/driverInteractive.ml 6 Feb 2008 20:39:53 -0000
1.136
+++ src/daemon/driver/driverInteractive.ml 31 Mar 2008 07:58:16 -0000
1.137
@@ -2137,6 +2137,7 @@
let list = ref [] in
ignore (search_incoming_files ());
ignore (search_incoming_directories ());
+ list := (Filename2.temp_dir_name (), "$MLDONKEY_TEMP") :: !list;
List.iter (fun dir ->
list := (dir.shdir_dirname, (Printf.sprintf "shared (%s)"
dir.shdir_strategy))
:: !list) !!shared_directories;
Index: src/networks/donkey/donkeyProtoClient.ml
===================================================================
RCS file: /sources/mldonkey/mldonkey/src/networks/donkey/donkeyProtoClient.ml,v
retrieving revision 1.47
retrieving revision 1.48
diff -u -b -r1.47 -r1.48
--- src/networks/donkey/donkeyProtoClient.ml 17 Jun 2007 02:08:15 -0000
1.47
+++ src/networks/donkey/donkeyProtoClient.ml 31 Mar 2008 07:58:16 -0000
1.48
@@ -1455,7 +1455,7 @@
if !CommonOptions.verbose_unknown_messages then begin
lprintf_nl "Unknown message From client: %s (magic %d)"
(Printexc2.to_string e) magic;
- let tmp_file = Filename.temp_file "comp" "pak" in
+ let tmp_file = Filename2.temp_file "comp" "pak" in
File.from_string tmp_file s;
lprintf_nl "Saved unknown packet %s" tmp_file;
dump s;
@@ -1473,7 +1473,7 @@
if !CommonOptions.verbose_unknown_messages then begin
lprintf_nl "Unknown message From client: %s (magic %d)"
(Printexc2.to_string e) magic;
- let tmp_file = Filename.temp_file "comp" "pak" in
+ let tmp_file = Filename2.temp_file "comp" "pak" in
File.from_string tmp_file s;
lprintf_nl "Saved unknown packet %s" tmp_file;
Index: src/networks/donkey/donkeyProtoServer.ml
===================================================================
RCS file: /sources/mldonkey/mldonkey/src/networks/donkey/donkeyProtoServer.ml,v
retrieving revision 1.27
retrieving revision 1.28
diff -u -b -r1.27 -r1.28
--- src/networks/donkey/donkeyProtoServer.ml 17 Jun 2007 02:08:15 -0000
1.27
+++ src/networks/donkey/donkeyProtoServer.ml 31 Mar 2008 07:58:16 -0000
1.28
@@ -1135,7 +1135,7 @@
if !CommonOptions.verbose_unknown_messages then begin
lprintf_nl "Unknown message From server: %s (magic %d)"
(Printexc2.to_string e) magic;
- let tmp_file = Filename.temp_file "comp" "pak" in
+ let tmp_file = Filename2.temp_file "comp" "pak" in
File.from_string tmp_file s;
lprintf_nl "Saved unknown packet %s" tmp_file;
dump s;
Index: src/utils/cdk/filename2.ml
===================================================================
RCS file: /sources/mldonkey/mldonkey/src/utils/cdk/filename2.ml,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -b -r1.8 -r1.9
--- src/utils/cdk/filename2.ml 11 Mar 2008 11:01:01 -0000 1.8
+++ src/utils/cdk/filename2.ml 31 Mar 2008 07:58:16 -0000 1.9
@@ -237,13 +237,39 @@
in
length_checked_name
-let temp_directory () =
+let temp_dir_name () =
+ try
+ Sys.getenv "MLDONKEY_TEMP"
+ with Not_found ->
+(* kept for compatability with Filename.temp_dir_name, this code
+ is never reached because $MLDONKEY_TEMP is filled in commonOptions.ml *)
match Sys.os_type with
- "Unix" | "Cygwin" ->
+ | "Unix" | "Cygwin" ->
(try Sys.getenv "TMPDIR" with Not_found -> "/tmp")
- | "Win32" ->
+ | _ ->
(try Sys.getenv "TEMP" with Not_found -> ".")
- | _ -> "."
+
+(* this code is copied from Ocaml stdlib/filename.ml but
+ extended to respect runtime changes to $MLDONKEY_TEMP,
+ Ocaml uses variable $TMPDIR/$TEMP instead *)
+external open_desc: string -> open_flag list -> int -> int = "caml_sys_open"
+external close_desc: int -> unit = "caml_sys_close"
+
+let prng = Random.State.make_self_init ();;
+
+let temp_file_name prefix suffix =
+ let rnd = (Random.State.bits prng) land 0xFFFFFF in
+ Filename.concat (temp_dir_name ()) (Printf.sprintf "%s%06x%s" prefix rnd
suffix)
+
+let temp_file prefix suffix =
+ let rec try_name counter =
+ let name = temp_file_name prefix suffix in
+ try
+ close_desc (open_desc name [Open_wronly; Open_creat; Open_excl] 0o600);
+ name
+ with Sys_error _ as e ->
+ if counter >= 1000 then raise e else try_name (counter + 1)
+ in try_name 0
let _ = (* some assertions on these functions *)
assert (basename "c:\\Program Files\\Toto history.exe" = "Toto history.exe");
Index: src/utils/cdk/filename2.mli
===================================================================
RCS file: /sources/mldonkey/mldonkey/src/utils/cdk/filename2.mli,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -b -r1.6 -r1.7
--- src/utils/cdk/filename2.mli 19 Feb 2007 21:19:44 -0000 1.6
+++ src/utils/cdk/filename2.mli 31 Mar 2008 07:58:16 -0000 1.7
@@ -68,4 +68,19 @@
trim filename length to allowed limit on filesystem *)
val filesystem_compliant : string -> string -> int -> string
-val temp_directory : unit -> string
+(** [temp_file prefix suffix] returns the name of a
+ fresh temporary file in the temporary directory.
+ The base name of the temporary file is formed by concatenating
+ [prefix], then a suitably chosen integer number, then [suffix].
+ The temporary file is created empty, with permissions [0o600]
+ (readable and writable only by the file owner). The file is
+ guaranteed to be different from any other file that existed when
+ [temp_file] was called.
+*)
+val temp_file : string -> string -> string
+
+(** The name of the temporary directory:
+ The value of the [MLDONKEY_TEMP] environment variable is used,
+ or "mlnet_tmp" if the variable is not set.
+*)
+val temp_dir_name : unit -> string
Index: src/utils/lib/misc.ml
===================================================================
RCS file: /sources/mldonkey/mldonkey/src/utils/lib/misc.ml,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -b -r1.8 -r1.9
--- src/utils/lib/misc.ml 6 Feb 2007 22:26:59 -0000 1.8
+++ src/utils/lib/misc.ml 31 Mar 2008 07:58:17 -0000 1.9
@@ -93,7 +93,7 @@
let file = ref "" in
try
let buffer = String.create 4096 in
- let file_out = Filename.temp_file "arch_" ".tmp" in
+ let file_out = Filename2.temp_file "arch_" ".tmp" in
file := file_out;
Unix2.tryopen_read_gzip filename (fun ic ->
Unix2.tryopen_write_bin file_out (fun oc ->
Index: src/utils/lib/misc2.mlcpp
===================================================================
RCS file: /sources/mldonkey/mldonkey/src/utils/lib/misc2.mlcpp,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- src/utils/lib/misc2.mlcpp 6 Feb 2006 12:54:58 -0000 1.2
+++ src/utils/lib/misc2.mlcpp 31 Mar 2008 07:58:17 -0000 1.3
@@ -27,7 +27,7 @@
let file = ref "" in
try
let buffer = String.create 4096 in
- let file_out = Filename.temp_file "arch_" ".tmp" in
+ let file_out = Filename2.temp_file "arch_" ".tmp" in
file := file_out;
let ic = Bzip2.open_in filename
in
Index: src/utils/lib/unix32.ml
===================================================================
RCS file: /sources/mldonkey/mldonkey/src/utils/lib/unix32.ml,v
retrieving revision 1.73
retrieving revision 1.74
diff -u -b -r1.73 -r1.74
--- src/utils/lib/unix32.ml 3 Jul 2007 15:35:08 -0000 1.73
+++ src/utils/lib/unix32.ml 31 Mar 2008 07:58:17 -0000 1.74
@@ -539,7 +539,7 @@
let fd = FDCache.local_force_fd file.fd in
f fd (chunk_begin -- file_begin)
else
- let temp_file = Filename.temp_file "chunk" ".tmp" in
+ let temp_file = Filename2.temp_file "chunk" ".tmp" in
let file_out = FDCache.create temp_file true in
try
@@ -846,7 +846,7 @@
else
- let temp_file = Filename.temp_file "chunk" ".tmp" in
+ let temp_file = Filename2.temp_file "chunk" ".tmp" in
let file_out = FDCache.create temp_file t.writable in
let rec iter pos index chunk_begin chunk_len =
@@ -1587,7 +1587,7 @@
iter tail
and make_temp_file list =
- let temp_file = Filename.temp_file "chunk" ".tmp" in
+ let temp_file = Filename2.temp_file "chunk" ".tmp" in
let file_out = create_rw temp_file in
let rec fill pos chunk_begin chunk_len list =