[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: |
Sun, 29 Oct 2006 18:58:59 +0000 |
CVSROOT: /sources/mldonkey
Module name: mldonkey
Changes by: spiralvoice <spiralvoice> 06/10/29 18:58:59
Modified files:
distrib : ChangeLog
src/daemon/common: commonComplexOptions.ml
commonComplexOptions.mli commonInteractive.ml
commonShared.ml
Log message:
patch #5475
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/mldonkey/distrib/ChangeLog?cvsroot=mldonkey&r1=1.1070&r2=1.1071
http://cvs.savannah.gnu.org/viewcvs/mldonkey/src/daemon/common/commonComplexOptions.ml?cvsroot=mldonkey&r1=1.63&r2=1.64
http://cvs.savannah.gnu.org/viewcvs/mldonkey/src/daemon/common/commonComplexOptions.mli?cvsroot=mldonkey&r1=1.18&r2=1.19
http://cvs.savannah.gnu.org/viewcvs/mldonkey/src/daemon/common/commonInteractive.ml?cvsroot=mldonkey&r1=1.82&r2=1.83
http://cvs.savannah.gnu.org/viewcvs/mldonkey/src/daemon/common/commonShared.ml?cvsroot=mldonkey&r1=1.36&r2=1.37
Patches:
Index: distrib/ChangeLog
===================================================================
RCS file: /sources/mldonkey/mldonkey/distrib/ChangeLog,v
retrieving revision 1.1070
retrieving revision 1.1071
diff -u -b -r1.1070 -r1.1071
--- distrib/ChangeLog 27 Oct 2006 08:33:40 -0000 1.1070
+++ distrib/ChangeLog 29 Oct 2006 18:58:59 -0000 1.1071
@@ -14,6 +14,12 @@
ChangeLog
=========
+2006/10/29
+5475: Multiuser: Implement user_commit_dir
+- directories with strategy incoming_files are shared recursively now
+- support several directories with incoming_* strategies, use the
+ first one with enough space to commit the finished file
+
2006/10/27
5499: Configure: find camlp4 in local, fix patch 5479 (dunk)
Index: src/daemon/common/commonComplexOptions.ml
===================================================================
RCS file: /sources/mldonkey/mldonkey/src/daemon/common/commonComplexOptions.ml,v
retrieving revision 1.63
retrieving revision 1.64
diff -u -b -r1.63 -r1.64
--- src/daemon/common/commonComplexOptions.ml 25 Oct 2006 11:14:02 -0000
1.63
+++ src/daemon/common/commonComplexOptions.ml 29 Oct 2006 18:58:59 -0000
1.64
@@ -729,7 +729,7 @@
sharing_incoming = true;
sharing_directories = false;
sharing_extensions = [];
- sharing_recursive = false;
+ sharing_recursive = true;
sharing_minsize = zero;
sharing_maxsize = Int64.max_int;
}
@@ -928,7 +928,7 @@
let search_incoming_files () =
try
- List.find (fun s -> s.shdir_strategy = "incoming_files")
+ List.find_all (fun s -> s.shdir_strategy = "incoming_files")
!!shared_directories
with Not_found ->
let dirname = Filename.concat "incoming" "files" in
@@ -940,17 +940,11 @@
}
in
shared_directories =:= s :: !!shared_directories;
- s
-
-let incoming_files () =
- let dir = search_incoming_files () in
- Unix2.safe_mkdir dir.shdir_dirname;
- Unix2.can_write_to_directory dir.shdir_dirname;
- dir
+ [s]
let search_incoming_directories () =
try
- List.find (fun s -> s.shdir_strategy = "incoming_directories")
+ List.find_all (fun s -> s.shdir_strategy = "incoming_directories")
!!shared_directories
with Not_found ->
let dirname = Filename.concat "incoming" "directories" in
@@ -962,13 +956,71 @@
}
in
shared_directories =:= s :: !!shared_directories;
- s
+ [s]
+
+exception Incoming_full
+
+let incoming_dir usedir ?user ?needed_space ?network () =
+
+ let directories =
+ if usedir then
+ search_incoming_directories ()
+ else
+ search_incoming_files ()
+ in
+
+ let dirname_user =
+ match user with
+ | None -> ""
+ | Some user -> (user2_user_find user).user_commit_dir
+ in
+
+(*
+ let dirname_network =
+ match network with
+ | None -> ""
+ | Some network -> network
+ in
+*)
+(* todo: make the dir naming order user configurable *)
+ let compute_dir_name dir =
+ let dirname = Filename.concat dir dirname_user in
+(* let dirname = Filename.concat dirname dirname_network in *)
+ dirname
+ in
+
+ let checkdir =
+ try
+ List.find (fun d ->
+ let dirname = compute_dir_name d.shdir_dirname in
+(* check if temp_directory and incoming are on different partitions *)
+ try
+ if (Unix.stat dirname).Unix.st_dev <> (Unix.stat
!!temp_directory).Unix.st_dev then
+ begin
+ match needed_space with
+ | None -> true
+ | Some needed_space ->
+ match Unix32.diskfree dirname with
+ Some v -> v >= needed_space
+ | _ -> true
+ end
+ else true
+ with _ -> true
+ ) directories
+ with Not_found -> raise Incoming_full;
+ in
+
+ let newdir = {
+ shdir_dirname = (compute_dir_name checkdir.shdir_dirname);
+ shdir_priority = checkdir.shdir_priority;
+ shdir_networks = checkdir.shdir_networks;
+ shdir_strategy = checkdir.shdir_strategy;
+ }
+ in
+ Unix2.safe_mkdir newdir.shdir_dirname;
+ Unix2.can_write_to_directory newdir.shdir_dirname;
+ newdir
-let incoming_directories () =
- let dir = search_incoming_directories () in
- Unix2.safe_mkdir dir.shdir_dirname;
- Unix2.can_write_to_directory dir.shdir_dirname;
- dir
let _ =
(* Check the definition of the incoming_files and incoming_directories in
@@ -977,8 +1029,8 @@
option_hook shared_directories (fun _ ->
if not !verification then begin
verification := true;
- ignore (incoming_files ());
- ignore (incoming_directories ());
+ ignore (incoming_dir false ());
+ ignore (incoming_dir true ());
verification := false
end
)
Index: src/daemon/common/commonComplexOptions.mli
===================================================================
RCS file:
/sources/mldonkey/mldonkey/src/daemon/common/commonComplexOptions.mli,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -b -r1.18 -r1.19
--- src/daemon/common/commonComplexOptions.mli 25 Oct 2006 11:14:02 -0000
1.18
+++ src/daemon/common/commonComplexOptions.mli 29 Oct 2006 18:58:59 -0000
1.19
@@ -40,10 +40,9 @@
val shared_directories :
CommonTypes.shared_directory list Options.option_record
-val incoming_files : unit -> CommonTypes.shared_directory
-val incoming_directories : unit -> CommonTypes.shared_directory
-val search_incoming_files : unit -> CommonTypes.shared_directory
-val search_incoming_directories : unit -> CommonTypes.shared_directory
+val incoming_dir : bool -> ?user:string -> ?needed_space:int64 ->
?network:string -> unit -> CommonTypes.shared_directory
+val search_incoming_files : unit -> CommonTypes.shared_directory list
+val search_incoming_directories : unit -> CommonTypes.shared_directory list
val sharing_only_directory : CommonTypes.sharing_strategy
Index: src/daemon/common/commonInteractive.ml
===================================================================
RCS file: /sources/mldonkey/mldonkey/src/daemon/common/commonInteractive.ml,v
retrieving revision 1.82
retrieving revision 1.83
diff -u -b -r1.82 -r1.83
--- src/daemon/common/commonInteractive.ml 23 Sep 2006 20:29:46 -0000
1.82
+++ src/daemon/common/commonInteractive.ml 29 Oct 2006 18:58:59 -0000
1.83
@@ -212,26 +212,13 @@
(try
let file_name = file_disk_name file in
let incoming =
- if Unix2.is_directory file_name then
- incoming_directories ()
- else
- incoming_files ()
+ incoming_dir
+ (Unix2.is_directory file_name)
+ ~needed_space:(file_size file)
+ ~user:(file_owner file)
+ ()
in
-(* check if temp_directory and incoming are on different partitions *)
- if (Unix.stat incoming.shdir_dirname).Unix.st_dev <>
- (Unix.stat !!temp_directory).Unix.st_dev
- then
- begin
- match Unix32.diskfree incoming.shdir_dirname with
- Some v -> if v < (file_size file) then begin
- send_dirfull_warning incoming.shdir_dirname true
- (Printf.sprintf "can not commit %s" (file_best_name
file));
- raise Incoming_full
- end
- | _ -> ()
- end;
-
let new_name = file_commited_name incoming.shdir_dirname file in
if Unix2.is_directory file_name then begin
Unix2.safe_mkdir new_name;
@@ -280,8 +267,11 @@
with e ->
lprintf_nl "Exception %s in file_commit secondaries"
(Printexc2.to_string e);
) secondary_files
- with e ->
- lprintf_nl "Exception in file_commit: %s" (Printexc2.to_string
e))
+ with
+ Incoming_full ->
+ send_dirfull_warning "" true
+ (Printf.sprintf "all incoming dirs are full, can not commit %s"
(file_best_name file))
+ | e -> lprintf_nl "Exception in file_commit: %s" (Printexc2.to_string
e))
| _ -> assert false
let file_cancel file user =
@@ -337,12 +327,8 @@
Printf.sprintf "address@hidden, file received" (Unix.gethostname ())
in
- let incoming =
- if Unix2.is_directory (file_disk_name file) then
- incoming_directories ()
- else
- incoming_files ()
- in
+(* TODO: This information can be wrong *)
+ let incoming = incoming_dir (Unix2.is_directory (file_disk_name file)) ()
in
let line4 = if !!url_in_mail = "" then "" else
Printf.sprintf "\r\n<%s/%s/%s>\r\n" !!url_in_mail incoming.shdir_dirname
(Url.encode (file_best_name file))
Index: src/daemon/common/commonShared.ml
===================================================================
RCS file: /sources/mldonkey/mldonkey/src/daemon/common/commonShared.ml,v
retrieving revision 1.36
retrieving revision 1.37
diff -u -b -r1.36 -r1.37
--- src/daemon/common/commonShared.ml 25 Oct 2006 11:14:02 -0000 1.36
+++ src/daemon/common/commonShared.ml 29 Oct 2006 18:58:59 -0000 1.37
@@ -237,10 +237,10 @@
let shared_scan_directory shared_dir local_dir =
let incoming_files_inode =
- ((Unix.stat ((CommonComplexOptions.incoming_files
()).shdir_dirname)).Unix.st_ino)
+ ((Unix.stat ((CommonComplexOptions.incoming_dir false
()).shdir_dirname)).Unix.st_ino)
in
let incoming_directories_inode =
- ((Unix.stat ((CommonComplexOptions.incoming_directories
()).shdir_dirname)).Unix.st_ino)
+ ((Unix.stat ((CommonComplexOptions.incoming_dir true
()).shdir_dirname)).Unix.st_ino)
in
let temp_directory_inode =
((Unix.stat !!temp_directory).Unix.st_ino)
- [Mldonkey-commits] mldonkey distrib/ChangeLog src/daemon/common/co..., (continued)
- [Mldonkey-commits] mldonkey distrib/ChangeLog src/daemon/common/co..., mldonkey-commits, 2006/10/01
- [Mldonkey-commits] mldonkey distrib/ChangeLog src/daemon/common/co..., mldonkey-commits, 2006/10/02
- [Mldonkey-commits] mldonkey distrib/ChangeLog src/daemon/common/co..., mldonkey-commits, 2006/10/08
- [Mldonkey-commits] mldonkey distrib/ChangeLog src/daemon/common/co..., mldonkey-commits, 2006/10/08
- [Mldonkey-commits] mldonkey distrib/ChangeLog src/daemon/common/co..., mldonkey-commits, 2006/10/09
- [Mldonkey-commits] mldonkey distrib/ChangeLog src/daemon/common/co..., mldonkey-commits, 2006/10/21
- [Mldonkey-commits] mldonkey distrib/ChangeLog src/daemon/common/co..., mldonkey-commits, 2006/10/23
- [Mldonkey-commits] mldonkey distrib/ChangeLog src/daemon/common/co..., mldonkey-commits, 2006/10/25
- [Mldonkey-commits] mldonkey distrib/ChangeLog src/daemon/common/co..., mldonkey-commits, 2006/10/25
- [Mldonkey-commits] mldonkey distrib/ChangeLog src/daemon/common/co..., mldonkey-commits, 2006/10/25
- [Mldonkey-commits] mldonkey distrib/ChangeLog src/daemon/common/co...,
mldonkey-commits <=