mldonkey-commits
[Top][All Lists]
Advanced

[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: Fri, 03 Aug 2007 22:12:59 +0000

CVSROOT:        /sources/mldonkey
Module name:    mldonkey
Changes by:     spiralvoice <spiralvoice>       07/08/03 22:12:59

Modified files:
        distrib        : ChangeLog 
        src/daemon/common: commonComplexOptions.ml commonNetwork.ml 
                           commonNetwork.mli commonResult.ml 
                           commonTypes.ml 
        src/daemon/driver: driverCommands.ml driverInteractive.ml 
                           driverInterface.ml 
        src/networks/bittorrent: bTComplexOptions.ml bTGlobals.ml 
                                 bTInteractive.ml 
        src/networks/direct_connect: dcComplexOptions.ml dcMain.ml 
        src/networks/donkey: donkeyComplexOptions.ml donkeyGlobals.ml 
                             donkeyInteractive.ml donkeyShare.ml 
        src/networks/fasttrack: fasttrackGlobals.ml fasttrackServers.ml 
        src/networks/fileTP: fileTPComplexOptions.ml fileTPGlobals.ml 
                             fileTPInteractive.ml 
        src/networks/gnutella: gnutellaComplexOptions.ml 
                               gnutellaGlobals.ml gnutellaInteractive.ml 
                               gnutellaServers.ml 

Log message:
        patch #6130

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/mldonkey/distrib/ChangeLog?cvsroot=mldonkey&r1=1.1308&r2=1.1309
http://cvs.savannah.gnu.org/viewcvs/mldonkey/src/daemon/common/commonComplexOptions.ml?cvsroot=mldonkey&r1=1.79&r2=1.80
http://cvs.savannah.gnu.org/viewcvs/mldonkey/src/daemon/common/commonNetwork.ml?cvsroot=mldonkey&r1=1.34&r2=1.35
http://cvs.savannah.gnu.org/viewcvs/mldonkey/src/daemon/common/commonNetwork.mli?cvsroot=mldonkey&r1=1.20&r2=1.21
http://cvs.savannah.gnu.org/viewcvs/mldonkey/src/daemon/common/commonResult.ml?cvsroot=mldonkey&r1=1.11&r2=1.12
http://cvs.savannah.gnu.org/viewcvs/mldonkey/src/daemon/common/commonTypes.ml?cvsroot=mldonkey&r1=1.73&r2=1.74
http://cvs.savannah.gnu.org/viewcvs/mldonkey/src/daemon/driver/driverCommands.ml?cvsroot=mldonkey&r1=1.241&r2=1.242
http://cvs.savannah.gnu.org/viewcvs/mldonkey/src/daemon/driver/driverInteractive.ml?cvsroot=mldonkey&r1=1.132&r2=1.133
http://cvs.savannah.gnu.org/viewcvs/mldonkey/src/daemon/driver/driverInterface.ml?cvsroot=mldonkey&r1=1.66&r2=1.67
http://cvs.savannah.gnu.org/viewcvs/mldonkey/src/networks/bittorrent/bTComplexOptions.ml?cvsroot=mldonkey&r1=1.41&r2=1.42
http://cvs.savannah.gnu.org/viewcvs/mldonkey/src/networks/bittorrent/bTGlobals.ml?cvsroot=mldonkey&r1=1.81&r2=1.82
http://cvs.savannah.gnu.org/viewcvs/mldonkey/src/networks/bittorrent/bTInteractive.ml?cvsroot=mldonkey&r1=1.143&r2=1.144
http://cvs.savannah.gnu.org/viewcvs/mldonkey/src/networks/direct_connect/dcComplexOptions.ml?cvsroot=mldonkey&r1=1.7&r2=1.8
http://cvs.savannah.gnu.org/viewcvs/mldonkey/src/networks/direct_connect/dcMain.ml?cvsroot=mldonkey&r1=1.7&r2=1.8
http://cvs.savannah.gnu.org/viewcvs/mldonkey/src/networks/donkey/donkeyComplexOptions.ml?cvsroot=mldonkey&r1=1.66&r2=1.67
http://cvs.savannah.gnu.org/viewcvs/mldonkey/src/networks/donkey/donkeyGlobals.ml?cvsroot=mldonkey&r1=1.120&r2=1.121
http://cvs.savannah.gnu.org/viewcvs/mldonkey/src/networks/donkey/donkeyInteractive.ml?cvsroot=mldonkey&r1=1.161&r2=1.162
http://cvs.savannah.gnu.org/viewcvs/mldonkey/src/networks/donkey/donkeyShare.ml?cvsroot=mldonkey&r1=1.60&r2=1.61
http://cvs.savannah.gnu.org/viewcvs/mldonkey/src/networks/fasttrack/fasttrackGlobals.ml?cvsroot=mldonkey&r1=1.45&r2=1.46
http://cvs.savannah.gnu.org/viewcvs/mldonkey/src/networks/fasttrack/fasttrackServers.ml?cvsroot=mldonkey&r1=1.32&r2=1.33
http://cvs.savannah.gnu.org/viewcvs/mldonkey/src/networks/fileTP/fileTPComplexOptions.ml?cvsroot=mldonkey&r1=1.19&r2=1.20
http://cvs.savannah.gnu.org/viewcvs/mldonkey/src/networks/fileTP/fileTPGlobals.ml?cvsroot=mldonkey&r1=1.33&r2=1.34
http://cvs.savannah.gnu.org/viewcvs/mldonkey/src/networks/fileTP/fileTPInteractive.ml?cvsroot=mldonkey&r1=1.59&r2=1.60
http://cvs.savannah.gnu.org/viewcvs/mldonkey/src/networks/gnutella/gnutellaComplexOptions.ml?cvsroot=mldonkey&r1=1.31&r2=1.32
http://cvs.savannah.gnu.org/viewcvs/mldonkey/src/networks/gnutella/gnutellaGlobals.ml?cvsroot=mldonkey&r1=1.46&r2=1.47
http://cvs.savannah.gnu.org/viewcvs/mldonkey/src/networks/gnutella/gnutellaInteractive.ml?cvsroot=mldonkey&r1=1.73&r2=1.74
http://cvs.savannah.gnu.org/viewcvs/mldonkey/src/networks/gnutella/gnutellaServers.ml?cvsroot=mldonkey&r1=1.30&r2=1.31

Patches:
Index: distrib/ChangeLog
===================================================================
RCS file: /sources/mldonkey/mldonkey/distrib/ChangeLog,v
retrieving revision 1.1308
retrieving revision 1.1309
diff -u -b -r1.1308 -r1.1309
--- distrib/ChangeLog   3 Aug 2007 22:11:45 -0000       1.1308
+++ distrib/ChangeLog   3 Aug 2007 22:12:57 -0000       1.1309
@@ -15,6 +15,7 @@
 =========
 
 2007/08/04
+6130: Change API for network_parse_url, support user group
 6127: HTML: Display file_chunk_sizes/file_piece_size in vd <num>
 6135: BT: Fix high CPU load when share_scan_interval = 0
       due to buggy patch #6049 (thx to darkman)

Index: src/daemon/common/commonComplexOptions.ml
===================================================================
RCS file: /sources/mldonkey/mldonkey/src/daemon/common/commonComplexOptions.ml,v
retrieving revision 1.79
retrieving revision 1.80
diff -u -b -r1.79 -r1.80
--- src/daemon/common/commonComplexOptions.ml   25 Jul 2007 19:27:09 -0000      
1.79
+++ src/daemon/common/commonComplexOptions.ml   3 Aug 2007 22:12:57 -0000       
1.80
@@ -92,22 +92,6 @@
             with _ -> Int64.zero
           in
           
-          let file = network_file_of_option network file_size 
-              file_state assocs in
-          let priority = try get_value "file_priority" value_to_int 
-            with _ -> 0 in
-          
-          let impl = as_file_impl file in
-          (try
-              impl.impl_file_age <- 
-                normalize_time (get_value "file_age" value_to_int)
-            with _ -> ());
-
-          (try
-              impl.impl_file_release <- 
-                get_value "file_release" value_to_bool
-            with _ -> ());
-
          let file_user =
            try
              let u = get_value "file_owner" value_to_string in
@@ -124,7 +108,6 @@
                  filename (admin_user ()).user_name;
                admin_user ()
          in
-         set_file_owner file file_user;
 
          let file_group =
            let dgroup = user2_print_user_default_group file_user in
@@ -153,7 +136,20 @@
                  filename dgroup file_user.user_name;
                file_user.user_default_group
          in
-         set_file_group file file_group;
+
+          let file = network_file_of_option network file_size 
+              file_state file_user file_group assocs in
+          
+          let impl = as_file_impl file in
+          (try
+              impl.impl_file_age <- 
+                normalize_time (get_value "file_age" value_to_int)
+            with _ -> ());
+
+          (try
+              impl.impl_file_release <- 
+                get_value "file_release" value_to_bool
+            with _ -> ());
 
           set_file_state file file_state;       
 
@@ -166,6 +162,8 @@
              (get_value_nil "file_filenames" (value_to_list value_to_string))
             with _ -> ());
 
+          let priority = try get_value "file_priority" value_to_int 
+            with _ -> 0 in
           set_file_priority file priority;
 
           if !verbose && !CommonGlobals.is_startup_phase then

Index: src/daemon/common/commonNetwork.ml
===================================================================
RCS file: /sources/mldonkey/mldonkey/src/daemon/common/commonNetwork.ml,v
retrieving revision 1.34
retrieving revision 1.35
diff -u -b -r1.34 -r1.35
--- src/daemon/common/commonNetwork.ml  4 Mar 2007 21:26:35 -0000       1.34
+++ src/daemon/common/commonNetwork.ml  3 Aug 2007 22:12:57 -0000       1.35
@@ -126,10 +126,10 @@
 let network_share n s = n.op_network_share s
 let network_recover_temp n = n.op_network_recover_temp ()
 let network_search n s buf = n.op_network_search s buf
-let network_download n r user = n.op_network_download r user
+let network_download n r user group = n.op_network_download r user group
 let network_add_server n s = n.op_network_add_server s
 let network_server_of_option n s = n.op_network_server_of_option s
-let network_file_of_option n f = n.op_network_file_of_option f 
+let network_file_of_option n f user group = n.op_network_file_of_option f user 
group
 let network_client_of_option n f = n.op_network_client_of_option f
 (* is returning true (successful) when an exception is caught the
    right thing to do ? *)
@@ -273,7 +273,7 @@
       op_network_update_options = (fun _ -> ni_ok name "update_options");
       op_network_disable =  (fun _ -> ni_ok name "disable");
       op_network_server_of_option =  (fun _ -> fni name 
"op_network_server_of_option");
-      op_network_file_of_option =  (fun _ _ _ -> fni name 
"op_network_file_of_option");
+      op_network_file_of_option =  (fun _ _ _ _ _ -> fni name 
"op_network_file_of_option");
       op_network_client_of_option =  (fun _ -> fni name 
"op_network_client_of_option");
       op_network_recover_temp = (fun _ -> ni_ok name "recover_temp");
       op_network_search = (fun _ _ -> ni_ok name "search");
@@ -284,12 +284,12 @@
       op_network_close_search = (fun _ -> ni_ok name "close_search");
       op_network_extend_search = (fun _ _ -> ni_ok name "extend search");
       op_network_clean_servers = (fun _ -> ni_ok name "clean servers");
-      op_network_parse_url = (fun _ _ -> ni_ok name "parse_url"; "", false);
+      op_network_parse_url = (fun _ _ _ -> ni_ok name "parse_url"; "", false);
       op_network_info = (fun _ -> fni name "network_info");
       op_network_connected = (fun _ -> ni_ok name "connected"; false);
       op_network_add_server = (fun _ -> fni name "op_network_add_server");
       op_network_gui_message = (fun _ _ -> ni_ok name "gui_message");
-      op_network_download = (fun _ _ -> fni name "network_download");
+      op_network_download = (fun _ _ _ -> fni name "network_download");
       op_network_display_stats = (fun _ -> ni_ok name "display_stats");
       op_network_stat_info_list = (fun _ -> []);
       op_network_clean_exit = (fun _ -> true);

Index: src/daemon/common/commonNetwork.mli
===================================================================
RCS file: /sources/mldonkey/mldonkey/src/daemon/common/commonNetwork.mli,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -b -r1.20 -r1.21
--- src/daemon/common/commonNetwork.mli 4 Mar 2007 21:26:35 -0000       1.20
+++ src/daemon/common/commonNetwork.mli 3 Aug 2007 22:12:57 -0000       1.21
@@ -129,8 +129,8 @@
     @return the created file *)
 val network_file_of_option :
   CommonTypes.network ->
-  int64 -> CommonTypes.file_state -> (string * Options.option_value) list -> 
-  CommonTypes.file
+  int64 -> CommonTypes.file_state -> CommonTypes.userdb -> CommonTypes.groupdb 
option ->
+  (string * Options.option_value) list -> CommonTypes.file
 
 (** call the op_network_client_of_option method of a network.
     @param network instance
@@ -197,7 +197,7 @@
     @return status message
     @return true if successful *)
 val network_parse_url : 
-  CommonTypes.network -> string -> CommonTypes.userdb -> string * bool
+  CommonTypes.network -> string -> CommonTypes.userdb -> CommonTypes.groupdb 
option -> string * bool
 
 (** call the op_network_download method of a network.
     Start a download from the result of a search.
@@ -206,7 +206,7 @@
     @param user to start the download for
     @return the newly started download *)
 val network_download :
-  CommonTypes.network -> CommonTypes.result_info -> CommonTypes.userdb -> 
+  CommonTypes.network -> CommonTypes.result_info -> CommonTypes.userdb -> 
CommonTypes.groupdb option -> 
   CommonTypes.file
 
 (** call the op_network_display_stats method of a network.

Index: src/daemon/common/commonResult.ml
===================================================================
RCS file: /sources/mldonkey/mldonkey/src/daemon/common/commonResult.ml,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -b -r1.11 -r1.12
--- src/daemon/common/commonResult.ml   26 Nov 2006 13:54:09 -0000      1.11
+++ src/daemon/common/commonResult.ml   3 Aug 2007 22:12:57 -0000       1.12
@@ -148,7 +148,7 @@
   CommonNetwork.networks_iter (fun n ->
       (* Temporarily download results only from the network that returned the 
result *)
       if (n.network_num = r.result_source_network) then
-      files := (CommonNetwork.network_download n r user) :: !files
+      files := (CommonNetwork.network_download n r user 
user.user_default_group) :: !files
   );
   !files  
     

Index: src/daemon/common/commonTypes.ml
===================================================================
RCS file: /sources/mldonkey/mldonkey/src/daemon/common/commonTypes.ml,v
retrieving revision 1.73
retrieving revision 1.74
diff -u -b -r1.73 -r1.74
--- src/daemon/common/commonTypes.ml    1 Jul 2007 12:57:03 -0000       1.73
+++ src/daemon/common/commonTypes.ml    3 Aug 2007 22:12:57 -0000       1.74
@@ -522,14 +522,14 @@
     mutable op_network_add_server : 
       (Ip.addr -> int -> server);
     mutable op_network_file_of_option : 
-      int64 -> file_state -> ((string * Options.option_value) list -> file);
+      int64 -> file_state -> userdb -> groupdb option -> ((string * 
Options.option_value) list -> file);
     mutable op_network_client_of_option : 
       bool -> ((string * Options.option_value) list -> client);
     mutable op_network_recover_temp : (unit -> unit);
     mutable op_network_share : (
       string -> string -> int64 -> unit);
     mutable op_network_private_message : (string -> string -> unit);
-    mutable op_network_parse_url : (string -> userdb -> string * bool);
+    mutable op_network_parse_url : (string -> userdb -> groupdb option -> 
string * bool);
     mutable op_network_connect_servers : (unit -> unit);
     
     mutable op_network_search : (search -> Buffer.t -> unit);
@@ -543,7 +543,7 @@
     mutable op_network_connected : (unit -> bool);
     mutable op_network_gui_message : (string -> userdb -> unit);
     
-    mutable op_network_download : (result_info -> userdb -> file);
+    mutable op_network_download : (result_info -> userdb -> groupdb option -> 
file);
     mutable op_network_display_stats : (ui_conn -> unit);
     mutable op_network_stat_info_list : unit -> (string * int * 
(network_stat_info list)) list;
     mutable op_network_clean_exit : (unit -> bool);

Index: src/daemon/driver/driverCommands.ml
===================================================================
RCS file: /sources/mldonkey/mldonkey/src/daemon/driver/driverCommands.ml,v
retrieving revision 1.241
retrieving revision 1.242
diff -u -b -r1.241 -r1.242
--- src/daemon/driver/driverCommands.ml 3 Jul 2007 14:13:44 -0000       1.241
+++ src/daemon/driver/driverCommands.ml 3 Aug 2007 22:12:57 -0000       1.242
@@ -1682,7 +1682,7 @@
          begin
            let r = List.hd !forceable_download in
              CommonNetwork.networks_iter (fun n ->
-               ignore (network_download n r o.conn_user.ui_user));
+               ignore (network_download n r o.conn_user.ui_user 
o.conn_user.ui_user.user_default_group));
 
             let output = (if o.conn_output = HTML then begin
                 let buf = Buffer.create 100 in

Index: src/daemon/driver/driverInteractive.ml
===================================================================
RCS file: /sources/mldonkey/mldonkey/src/daemon/driver/driverInteractive.ml,v
retrieving revision 1.132
retrieving revision 1.133
diff -u -b -r1.132 -r1.133
--- src/daemon/driver/driverInteractive.ml      24 Jun 2007 18:37:04 -0000      
1.132
+++ src/daemon/driver/driverInteractive.ml      3 Aug 2007 22:12:57 -0000       
1.133
@@ -2231,11 +2231,11 @@
   if html then Printf.bprintf buf "\\</tr\\>\\</table\\>\\</div\\>\\</div\\>";
   Buffer.contents buf
 
-let dllink_query_networks html url user =
+let dllink_query_networks html url user group =
   let result = ref [] in
   if not (networks_iter_until_true (fun n ->
     try
-      let s,r = network_parse_url n url user in
+      let s,r = network_parse_url n url user group in
         if s = "" then
           r
         else
@@ -2287,14 +2287,14 @@
       let concat_headers =
         (List.fold_right (fun (n, c) t -> n ^ ": " ^ c ^ "\n" ^ t) headers "")
       in
-      ignore (dllink_query_networks html concat_headers user)
+      ignore (dllink_query_networks html concat_headers user 
user.user_default_group)
     );
     dllink_print_result html url "Parsing HTTP url" [])
   else
     if (String2.starts_with url "ftp") then
-      dllink_query_networks html (Printf.sprintf "Location: %s" url) user
+      dllink_query_networks html (Printf.sprintf "Location: %s" url) user 
user.user_default_group
     else
-      dllink_query_networks html url user
+      dllink_query_networks html url user user.user_default_group
 
 module UnionFind = struct
   type t = int array

Index: src/daemon/driver/driverInterface.ml
===================================================================
RCS file: /sources/mldonkey/mldonkey/src/daemon/driver/driverInterface.ml,v
retrieving revision 1.66
retrieving revision 1.67
diff -u -b -r1.66 -r1.67
--- src/daemon/driver/driverInterface.ml        1 Jul 2007 21:58:08 -0000       
1.66
+++ src/daemon/driver/driverInterface.ml        3 Aug 2007 22:12:57 -0000       
1.67
@@ -743,7 +743,11 @@
                 if not (networks_iter_until_true
                     (fun n ->
                        try
-                         let s,r = network_parse_url n url 
gui.gui_conn.conn_user.ui_user in r
+                         let s,r =
+                            network_parse_url n url
+                              gui.gui_conn.conn_user.ui_user
+                              gui.gui_conn.conn_user.ui_user.user_default_group
+                         in r
                        with e ->
                          lprintf "Exception %s for network %s\n"
                            (Printexc2.to_string e) (n.network_name);

Index: src/networks/bittorrent/bTComplexOptions.ml
===================================================================
RCS file: 
/sources/mldonkey/mldonkey/src/networks/bittorrent/bTComplexOptions.ml,v
retrieving revision 1.41
retrieving revision 1.42
diff -u -b -r1.41 -r1.42
--- src/networks/bittorrent/bTComplexOptions.ml 25 Jul 2007 19:25:48 -0000      
1.41
+++ src/networks/bittorrent/bTComplexOptions.ml 3 Aug 2007 22:12:58 -0000       
1.42
@@ -94,7 +94,7 @@
 
   end
 
-let value_to_file file_size file_state assocs =
+let value_to_file file_size file_state user group assocs =
   let get_value name conv = conv (List.assoc name assocs) in
   let file_trackers =
     try
@@ -183,7 +183,7 @@
         file_temp
   in
   let file = new_file file_id torrent torrent_diskname
-              file_temp file_state (CommonUserDb.admin_user ()) in
+              file_temp file_state user group in
     
   let file_uploaded = try
       value_to_int64 (List.assoc "file_uploaded" assocs)

Index: src/networks/bittorrent/bTGlobals.ml
===================================================================
RCS file: /sources/mldonkey/mldonkey/src/networks/bittorrent/bTGlobals.ml,v
retrieving revision 1.81
retrieving revision 1.82
diff -u -b -r1.81 -r1.82
--- src/networks/bittorrent/bTGlobals.ml        25 Jul 2007 19:25:48 -0000      
1.81
+++ src/networks/bittorrent/bTGlobals.ml        3 Aug 2007 22:12:58 -0000       
1.82
@@ -260,7 +260,7 @@
          file.file_trackers <-  t :: file.file_trackers;
        set_trackers file q
 
-let new_file file_id t torrent_diskname file_temp file_state user =
+let new_file file_id t torrent_diskname file_temp file_state user group =
   try
     Hashtbl.find files_by_uid file_id
   with Not_found ->
@@ -290,7 +290,7 @@
         } and file_impl =  {
           dummy_file_impl with
           impl_file_owner = user;
-          impl_file_group = user.user_default_group;
+          impl_file_group = group;
           impl_file_fd = Some file_fd;
           impl_file_size = t.torrent_length;
           impl_file_downloaded = Int64.zero;

Index: src/networks/bittorrent/bTInteractive.ml
===================================================================
RCS file: /sources/mldonkey/mldonkey/src/networks/bittorrent/bTInteractive.ml,v
retrieving revision 1.143
retrieving revision 1.144
diff -u -b -r1.143 -r1.144
--- src/networks/bittorrent/bTInteractive.ml    3 Aug 2007 22:11:46 -0000       
1.143
+++ src/networks/bittorrent/bTInteractive.ml    3 Aug 2007 22:12:58 -0000       
1.144
@@ -639,7 +639,7 @@
 
 
 
-let load_torrent_string s user =
+let load_torrent_string s user group =
   if !verbose then lprintf_nl "load_torrent_string";
   let file_id, torrent = BTTorrent.decode_torrent s in
 
@@ -672,12 +672,12 @@
   if !verbose then
     lprintf_nl "Starting torrent download with diskname: %s"
         torrent_diskname;
-  let file = new_download file_id torrent torrent_diskname user in
+  let file = new_download file_id torrent torrent_diskname user group in
   BTClients.get_sources_from_tracker file;
   CommonInteractive.start_download (file_find (file_num file));
   file
 
-let load_torrent_file filename user =
+let load_torrent_file filename user group =
   if !verbose then
     lprintf_nl "load_torrent_file %s" filename;
   let s = File.to_string filename in
@@ -686,7 +686,7 @@
   if Sys.file_exists filename
       && (Filename.dirname filename) = downloads_directory then
     Sys.remove filename;
-  ignore (load_torrent_string s user)
+  ignore (load_torrent_string s user group)
 
 let parse_tracker_reply file t filename =
 (*This is the function which will be called by the http client
@@ -751,8 +751,9 @@
       iter (shared_directories_including_user_commit ())
     in
 
+    let user = CommonUserDb.admin_user () in
     let file = new_file file_id torrent torrent_diskname
-        filename FileShared (CommonUserDb.admin_user ()) in
+        filename FileShared user user.user_default_group in
     if !verbose_share then lprintf_file_nl (as_file file) "Sharing file %s" 
filename;
     BTClients.connect_trackers file "started"
       (parse_tracker_reply file)
@@ -802,8 +803,13 @@
     let file_basename = Filename.basename file in
     if not (Unix2.is_directory file) then
     try
-      let user = fst (Unix32.owner file) in
-      load_torrent_file file (try CommonUserDb.user2_user_find user with 
Not_found -> CommonUserDb.admin_user ());
+      let file_owner = fst (Unix32.owner file) in
+      let user =
+        try
+          CommonUserDb.user2_user_find file_owner
+        with Not_found -> CommonUserDb.admin_user ()
+      in
+      load_torrent_file file user user.user_default_group;
       (try Sys.remove file with _ -> ())
     with 
       Torrent_can_not_be_used _ ->
@@ -821,11 +827,11 @@
           lprintf_nl "ft_retry: exception %s" (Printexc2.to_string e)
   ) ft_by_num
 
-let load_torrent_from_web r user ft =
+let load_torrent_from_web r user group ft =
   let module H = Http_client in
   H.wget r (fun filename ->
       if ft_state ft = FileDownloading then begin
-          load_torrent_file filename user;
+          load_torrent_file filename user group;
           file_cancel (as_ft ft) (CommonUserDb.admin_user ())
         end)
 
@@ -839,7 +845,7 @@
   let b = Str.group_end 1 in
   String.sub text a (b - a)
 
-let op_network_parse_url url user =
+let op_network_parse_url url user group =
   let location_regexp = "Location: \\(.*\\)" in
   try
     let real_url = get_regexp_string url (Str.regexp location_regexp) in
@@ -875,8 +881,8 @@
 
         let file_diskname = Filename.basename u.Url.short_file in
         let ft = new_ft file_diskname user in
-        ft.ft_retry <- (load_torrent_from_web r user);
-        load_torrent_from_web r user ft;
+        ft.ft_retry <- (load_torrent_from_web r user group);
+        load_torrent_from_web r user group ft;
         "started download", true
       )
     else
@@ -887,7 +893,7 @@
         try
           if !verbose then lprintf_nl "Not_found and trying to load %s" url;
           try
-            load_torrent_file url user;
+            load_torrent_file url user group;
             "", true
           with
            Torrent_already_exists _ -> "A torrent with this name is already in 
the download queue", false
@@ -1130,13 +1136,13 @@
       let buf = o.conn_buf in
       if Sys.file_exists url then
         begin
-         load_torrent_file url o.conn_user.ui_user;
+         load_torrent_file url o.conn_user.ui_user 
o.conn_user.ui_user.user_default_group;
           Printf.bprintf buf "loaded file %s\n" url
        end
       else
         begin
           let url = "Location: " ^ url ^ "\nContent-Type: 
application/x-bittorrent" in
-         let result = fst (op_network_parse_url url o.conn_user.ui_user) in
+         let result = fst (op_network_parse_url url o.conn_user.ui_user 
o.conn_user.ui_user.user_default_group) in
           Printf.bprintf buf "%s\n" result
        end;
       _s ""
@@ -1217,7 +1223,7 @@
       let text = String.sub s 2 (String.length s - 2) in
       if !verbose then lprintf_nl "received torrent from gui...";
       (try
-        let file = load_torrent_string text user in
+        let file = load_torrent_string text user user.user_default_group in
         raise (Torrent_started file.file_name)
       with e -> (match e with
        | Torrent_can_not_be_used s -> lprintf_nl "Loading torrent from GUI: 
torrent %s can not be used" s
@@ -1274,7 +1280,7 @@
   network.op_network_forget_search <- (fun s -> ());
   network.op_network_connect_servers <- (fun s -> ());
   network.op_network_search <- (fun ss buf -> ());
-  network.op_network_download <- (fun r user -> dummy_file);
+  network.op_network_download <- (fun r user group -> dummy_file);
   network.op_network_recover_temp <- (fun s -> ());
   let clean_exit_started = ref false in
   network.op_network_clean_exit <- (fun s ->

Index: src/networks/direct_connect/dcComplexOptions.ml
===================================================================
RCS file: 
/sources/mldonkey/mldonkey/src/networks/direct_connect/dcComplexOptions.ml,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -b -r1.7 -r1.8
--- src/networks/direct_connect/dcComplexOptions.ml     1 Jun 2007 19:31:09 
-0000       1.7
+++ src/networks/direct_connect/dcComplexOptions.ml     3 Aug 2007 22:12:58 
-0000       1.8
@@ -153,7 +153,7 @@
   
 
 (* parse options for files *)
-let value_to_file file_size file_state assocs =
+let value_to_file file_size file_state user group assocs =
   let get_value name conv = conv (List.assoc name assocs) in
 (*  let get_value_nil name conv = 
     try conv (List.assoc name assocs) with _ -> []

Index: src/networks/direct_connect/dcMain.ml
===================================================================
RCS file: /sources/mldonkey/mldonkey/src/networks/direct_connect/dcMain.ml,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -b -r1.7 -r1.8
--- src/networks/direct_connect/dcMain.ml       1 Jun 2007 19:31:09 -0000       
1.7
+++ src/networks/direct_connect/dcMain.ml       3 Aug 2007 22:12:58 -0000       
1.8
@@ -215,8 +215,8 @@
   network.op_network_connected <- (fun _ ->
     !connected_servers <> []
   );
-  network.op_network_parse_url <- (fun _ _ -> empty_string, false );
-  network.op_network_download <- (fun r _ -> 
DcInteractive.start_result_download r );
+  network.op_network_parse_url <- (fun _ _ _ -> empty_string, false);
+  network.op_network_download <- (fun r _ _ -> 
DcInteractive.start_result_download r);
   network.op_network_ports <- (fun _ ->
     [
     !!dc_port, "client_port TCP+UDP";

Index: src/networks/donkey/donkeyComplexOptions.ml
===================================================================
RCS file: 
/sources/mldonkey/mldonkey/src/networks/donkey/donkeyComplexOptions.ml,v
retrieving revision 1.66
retrieving revision 1.67
diff -u -b -r1.66 -r1.67
--- src/networks/donkey/donkeyComplexOptions.ml 17 Jun 2007 01:28:25 -0000      
1.66
+++ src/networks/donkey/donkeyComplexOptions.ml 3 Aug 2007 22:12:58 -0000       
1.67
@@ -226,7 +226,7 @@
   | _ -> 
       failwith "Options: Not an int32 pair"
 
-let value_to_file file_size file_state assocs =
+let value_to_file file_size file_state user group assocs =
   let get_value name conv = conv (List.assoc name assocs) in
 
   let file_md4 = 
@@ -272,7 +272,7 @@
   in
 
   let file = DonkeyGlobals.new_file file_diskname file_state
-    (Md4.of_string file_md4) file_size "" true (CommonUserDb.admin_user ()) in
+    (Md4.of_string file_md4) file_size "" true user group in
 
   (try
       set_file_best_name (as_file file)

Index: src/networks/donkey/donkeyGlobals.ml
===================================================================
RCS file: /sources/mldonkey/mldonkey/src/networks/donkey/donkeyGlobals.ml,v
retrieving revision 1.120
retrieving revision 1.121
diff -u -b -r1.120 -r1.121
--- src/networks/donkey/donkeyGlobals.ml        17 Jun 2007 01:21:45 -0000      
1.120
+++ src/networks/donkey/donkeyGlobals.ml        3 Aug 2007 22:12:58 -0000       
1.121
@@ -327,8 +327,7 @@
           set_file_best_name file best_name "" 0
     with Not_found -> ()
 
-let new_file file_diskname file_state md4 file_size filename writable user =
-
+let new_file file_diskname file_state md4 file_size filename writable user 
group =
   try
       let file = find_file md4 in
       if file.file_diskname <> file_diskname then
@@ -423,7 +422,7 @@
       and file_impl = {
           dummy_file_impl with
           impl_file_owner = user;
-          impl_file_group = user.user_default_group;
+          impl_file_group = group;
           impl_file_val = file;
           impl_file_ops = file_ops;
           impl_file_age = last_time ();

Index: src/networks/donkey/donkeyInteractive.ml
===================================================================
RCS file: /sources/mldonkey/mldonkey/src/networks/donkey/donkeyInteractive.ml,v
retrieving revision 1.161
retrieving revision 1.162
diff -u -b -r1.161 -r1.162
--- src/networks/donkey/donkeyInteractive.ml    3 Aug 2007 22:11:46 -0000       
1.161
+++ src/networks/donkey/donkeyInteractive.ml    3 Aug 2007 22:12:58 -0000       
1.162
@@ -229,7 +229,7 @@
 exception Already_downloading of string
 exception Already_shared of string
 
-let really_query_download filename size md4 location old_file absents user =
+let really_query_download filename size md4 location old_file absents user 
group =
 
   begin
     try
@@ -267,7 +267,7 @@
   end;
 
 (* TODO RESULT  let other_names = DonkeyIndexer.find_names md4 in *)
-  let file = new_file file_diskname FileDownloading md4 size filename true 
user in
+  let file = new_file file_diskname FileDownloading md4 size filename true 
user group in
   begin
     match absents with
       None -> ()
@@ -337,7 +337,7 @@
   );
   as_file file
 
-let query_download filename size md4 location old_file absents force user =
+let query_download filename size md4 location old_file absents force user 
group =
   if force then
     if !forceable_download = [] then
       raise no_download_to_force
@@ -345,7 +345,7 @@
       begin
         let f = List.hd !forceable_download in
          forceable_download := [];
-         really_query_download (List.hd f.result_names) f.result_size md4 None 
None None user
+         really_query_download (List.hd f.result_names) f.result_size md4 None 
None None user group
       end
   else
     begin
@@ -381,19 +381,19 @@
         else
           begin
             forceable_download := [];
-            really_query_download filename size md4 location old_file absents 
user
+            really_query_download filename size md4 location old_file absents 
user group
           end
         end
     end
 
-let result_download r filenames force user =
+let result_download r filenames force user group =
   let rec iter uids =
     match uids with
       [] -> raise IgnoreNetwork
     | uid :: tail ->
         match Uid.to_uid uid with
           Ed2k md4 ->
-            query_download (List.hd filenames) r.result_size md4 None None 
None force user
+            query_download (List.hd filenames) r.result_size md4 None None 
None force user group
         | _  -> iter tail
   in
   iter r.result_uids
@@ -412,6 +412,7 @@
 let import_temp temp_dir =
   let list = Unix2.list_directory temp_dir in
   let module P = DonkeyImport.Part in
+  let user = CommonUserDb.admin_user () in
   List.iter (fun filename ->
       try
         if Filename2.last_extension filename = ".part" then
@@ -438,7 +439,7 @@
                (match !filename_met with
                   None -> filename
                | Some s -> s) !size f.P.md4 None
-              (Some filename) (Some (List.rev f.P.absents)) 
(CommonUserDb.admin_user ()));
+              (Some filename) (Some (List.rev f.P.absents)) user 
user.user_default_group);
       with _ -> ()
   ) list
 
@@ -555,7 +556,7 @@
 
 
 
-let parse_donkey_url url user =
+let parse_donkey_url url user group =
   let url = Str.global_replace (Str.regexp "|sources,") "|sources|" url in
   match String2.split url '|' with
 (* TODO RESULT *)
@@ -584,7 +585,7 @@
           begin
            try
               let file = query_download name (Int64.of_string size)
-                (Md4.of_string md4) None None None false user in
+                (Md4.of_string md4) None None None false user group in
              let new_file = find_file (Md4.of_string md4) in
              CommonInteractive.start_download file;
              if !new_sources <> [] then
@@ -618,7 +619,7 @@
        in
           begin try
             let file = query_download name (Int64.of_string size)
-              (Md4.of_string md4) None None None false user;
+              (Md4.of_string md4) None None None false user group;
             in
             CommonInteractive.start_download file;
             "", true
@@ -976,7 +977,7 @@
 (* TODO RESULT *)
     "dd", Arg_two(fun size md4 o ->
         let file = query_download md4 (Int64.of_string size)
-          (Md4.of_string md4) None None None false o.conn_user.ui_user in
+          (Md4.of_string md4) None None None false o.conn_user.ui_user 
o.conn_user.ui_user.user_default_group in
         CommonInteractive.start_download file;
         "download started"
     ), "<size> <md4> :\t\t\tdownload from size and md4";
@@ -1076,8 +1077,8 @@
       with
         Not_found -> ()
   );
-  network.op_network_download <- (fun r user ->
-      result_download r r.result_names r.result_force user
+  network.op_network_download <- (fun r user group ->
+      result_download r r.result_names r.result_force user group
   )
 
 module P = GuiTypes
@@ -1591,11 +1592,12 @@
   try
     ignore (Hashtbl.find files_by_md4 md4)
   with Not_found ->
+      let user = CommonUserDb.admin_user () in
       let file_diskname = Filename.concat !!temp_directory filename in
       let size = Unix32.getsize file_diskname in
       if size <> zero then
        begin
-         ignore (really_query_download (Md4.to_string md4) size md4 None (Some 
file_diskname) None (CommonUserDb.admin_user ()));
+         ignore (really_query_download (Md4.to_string md4) size md4 None (Some 
file_diskname) None user user.user_default_group);
          recover_md4s md4
        end
 

Index: src/networks/donkey/donkeyShare.ml
===================================================================
RCS file: /sources/mldonkey/mldonkey/src/networks/donkey/donkeyShare.ml,v
retrieving revision 1.60
retrieving revision 1.61
diff -u -b -r1.60 -r1.61
--- src/networks/donkey/donkeyShare.ml  17 Jun 2007 01:28:25 -0000      1.60
+++ src/networks/donkey/donkeyShare.ml  3 Aug 2007 22:12:58 -0000       1.61
@@ -80,8 +80,9 @@
     if !verbose_share then
       lprintf_nl "Sharing file with MD4: %s" (Md4.to_string md4);
 
+    let user = CommonUserDb.admin_user () in
     let file = new_file sh.sh_name FileShared md4 sh.sh_size
-        "" false (CommonUserDb.admin_user ()) in
+        "" false user user.user_default_group in
     must_share_file file codedname old_impl;
     file.file_computed_md4s <- md4s;
     add_file_filenames (as_file file) (Filename.basename sh.sh_name);

Index: src/networks/fasttrack/fasttrackGlobals.ml
===================================================================
RCS file: 
/sources/mldonkey/mldonkey/src/networks/fasttrack/fasttrackGlobals.ml,v
retrieving revision 1.45
retrieving revision 1.46
diff -u -b -r1.45 -r1.46
--- src/networks/fasttrack/fasttrackGlobals.ml  31 May 2007 19:24:58 -0000      
1.45
+++ src/networks/fasttrack/fasttrackGlobals.ml  3 Aug 2007 22:12:58 -0000       
1.46
@@ -276,7 +276,7 @@
 
 let min_range_size = megabyte
 
-let new_file file_temporary file_name file_size file_hash user =
+let new_file file_temporary file_name file_size file_hash user group =
   let file_temp = Filename.concat !!temp_directory file_temporary in
 (*      (Printf.sprintf "FT-%s" (Md4.to_string file_id)) in *)
   let t = Unix32.create_rw file_temp in
@@ -303,7 +303,7 @@
       impl_file_size = file_size;
       impl_file_downloaded = Int64.zero;
       impl_file_owner = user;
-      impl_file_group = user.user_default_group;
+      impl_file_group = group;
       impl_file_val = file;
       impl_file_ops = file_ops;
       impl_file_age = last_time ();
@@ -346,7 +346,7 @@
 
 exception FileFound of file
 
-let new_file file_id file_name file_size file_uids user =
+let new_file file_id file_name file_size file_uids user group =
   let file = ref None in
   List.iter (fun uid ->
       match Uid.to_uid uid with
@@ -354,7 +354,7 @@
           file := Some (try
               Hashtbl.find files_by_uid file_hash
             with _ ->
-                let file = new_file file_id file_name file_size file_hash user 
in
+                let file = new_file file_id file_name file_size file_hash user 
group in
                 Hashtbl.add files_by_uid file_hash file;
                 file)
       | _ -> ()

Index: src/networks/fasttrack/fasttrackServers.ml
===================================================================
RCS file: 
/sources/mldonkey/mldonkey/src/networks/fasttrack/fasttrackServers.ml,v
retrieving revision 1.32
retrieving revision 1.33
diff -u -b -r1.32 -r1.33
--- src/networks/fasttrack/fasttrackServers.ml  24 Jun 2007 18:38:29 -0000      
1.32
+++ src/networks/fasttrack/fasttrackServers.ml  3 Aug 2007 22:12:58 -0000       
1.33
@@ -320,7 +320,7 @@
       )  file.file_searches
   ) !connected_servers
 
-let really_download_file (r : CommonTypes.result_info) user =
+let really_download_file (r : CommonTypes.result_info) user group =
   let rec iter uids =
     match uids with
       uid :: tail ->
@@ -332,7 +332,7 @@
   let hash,file_temp = iter r.result_uids in
 
   let file = new_file file_temp (List.hd r.result_names)
-    r.result_size [Uid.create (Md5Ext hash)] user in
+    r.result_size [Uid.create (Md5Ext hash)] user group in
   if !verbose then
     lprintf "DOWNLOAD FILE %s\n" file.file_name;
   if not (List.memq file !current_files) then begin

Index: src/networks/fileTP/fileTPComplexOptions.ml
===================================================================
RCS file: 
/sources/mldonkey/mldonkey/src/networks/fileTP/fileTPComplexOptions.ml,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -b -r1.19 -r1.20
--- src/networks/fileTP/fileTPComplexOptions.ml 17 Jun 2007 01:28:25 -0000      
1.19
+++ src/networks/fileTP/fileTPComplexOptions.ml 3 Aug 2007 22:12:58 -0000       
1.20
@@ -69,7 +69,7 @@
   | _ ->
       failwith "Options: Not an int32 pair"
 
-let value_to_file file_size file_state assocs =
+let value_to_file file_size file_state user group assocs =
   let get_value name conv = conv (List.assoc name assocs) in
 
   let file_name = get_value "file_filename" value_to_string in
@@ -78,7 +78,7 @@
       Md4.of_string (get_value "file_id" value_to_string)
     with _ -> failwith "Bad file_id"
   in
-  let file = new_file file_id file_name file_size (CommonUserDb.admin_user ()) 
in
+  let file = new_file file_id file_name file_size user group in
 
   (match file.file_swarmer with
       None -> ()

Index: src/networks/fileTP/fileTPGlobals.ml
===================================================================
RCS file: /sources/mldonkey/mldonkey/src/networks/fileTP/fileTPGlobals.ml,v
retrieving revision 1.33
retrieving revision 1.34
diff -u -b -r1.33 -r1.34
--- src/networks/fileTP/fileTPGlobals.ml        31 May 2007 19:24:58 -0000      
1.33
+++ src/networks/fileTP/fileTPGlobals.ml        3 Aug 2007 22:12:59 -0000       
1.34
@@ -138,7 +138,7 @@
       file_must_update (as_file file);
     end
 
-let new_file file_id file_name file_size user =
+let new_file file_id file_name file_size user group =
   let file_temp = Filename.concat !!temp_directory
       (Printf.sprintf "FileTP-%s" (Md4.to_string file_id)) in
   let t = Unix32.create_rw file_temp in
@@ -153,7 +153,7 @@
     } and file_impl =  {
       dummy_file_impl with
       impl_file_owner = user;
-      impl_file_group = user.user_default_group;
+      impl_file_group = group;
       impl_file_fd = Some t;
       impl_file_size = zero;
       impl_file_downloaded = zero;
@@ -170,11 +170,11 @@
 (*      lprintf "ADD FILE TO DOWNLOAD LIST\n"; *)
   file
 
-let new_file file_id file_name file_size users =
+let new_file file_id file_name file_size user group =
   try
     Hashtbl.find files_by_uid file_id
   with _ ->
-      let file = new_file file_id file_name file_size users in
+      let file = new_file file_id file_name file_size user group in
       Hashtbl.add files_by_uid file_id file;
       file
 

Index: src/networks/fileTP/fileTPInteractive.ml
===================================================================
RCS file: /sources/mldonkey/mldonkey/src/networks/fileTP/fileTPInteractive.ml,v
retrieving revision 1.59
retrieving revision 1.60
diff -u -b -r1.59 -r1.60
--- src/networks/fileTP/fileTPInteractive.ml    3 Aug 2007 22:11:46 -0000       
1.59
+++ src/networks/fileTP/fileTPInteractive.ml    3 Aug 2007 22:12:59 -0000       
1.60
@@ -245,7 +245,7 @@
 
 let previous_url = ref ""  
   
-let download_file url referer user =
+let download_file url referer user group =
   let u = Url.of_string url in
 
   if List.mem u !!old_files && !previous_url <> url then begin
@@ -253,7 +253,7 @@
       failwith "URL already downloaded: repeat command again to force";
     end;
 
-  let file = new_file (Md4.random ()) u.Url.full_file zero user in
+  let file = new_file (Md4.random ()) u.Url.full_file zero user group in
   
   if !verbose then
     lprintf_nl "Started new download: %s from %s" (file_best_name file) url; 
@@ -288,7 +288,7 @@
    It returns true if this file can be handled by fileTP,
    and false otherwise.
  *)
-let op_network_parse_url url user =
+let op_network_parse_url url user group =
   let location_regexp = "Location: \\(.*\\)" in
   let real_url = get_regexp_string url (Str.regexp location_regexp) in
   if (is_http_torrent url real_url) && !!enable_bittorrent then
@@ -298,7 +298,7 @@
       let length_regexp = "Content-Length: \\(.*\\)" in
        try let length = get_regexp_int url (Str.regexp length_regexp) in
          if (length > 0) then begin
-           download_file real_url "" user; "started FileTP download", true
+           download_file real_url "" user group; "started FileTP download", 
true
          end
          else "can not parse Content-Length", false
        with Not_found -> 
@@ -307,7 +307,7 @@
     else 
       if (String2.check_prefix real_url "ftp://";) ||
          (String2.check_prefix real_url "ssh://") then (
-      download_file url "" user;
+      download_file url "" user group;
       "started FileTP download", true)
     else
       "invalid URL", false
@@ -322,8 +322,8 @@
     "http", "Network/FileTP", Arg_multiple (fun args o ->
         try
         (match args with
-          url :: [referer] -> download_file url referer o.conn_user.ui_user
-        | [url] -> download_file url "" o.conn_user.ui_user
+          url :: [referer] -> download_file url referer o.conn_user.ui_user 
o.conn_user.ui_user.user_default_group
+        | [url] -> download_file url "" o.conn_user.ui_user 
o.conn_user.ui_user.user_default_group
         | _ -> raise Not_found);
         let buf = o.conn_buf in
         if o.conn_output = HTML then
@@ -417,7 +417,7 @@
   CommonNetwork.register_commands commands;
   network.op_network_share <- (fun fullname codedname size -> ());
   network.op_network_search <- (fun ss buf -> ());
-  network.op_network_download <- (fun r user -> dummy_file);
+  network.op_network_download <- (fun r user group -> dummy_file);
   file_ops.op_file_commit <- (fun file new_name -> clean_stop file);
   file_ops.op_file_pause <- (fun file -> 
     List.iter (fun c ->

Index: src/networks/gnutella/gnutellaComplexOptions.ml
===================================================================
RCS file: 
/sources/mldonkey/mldonkey/src/networks/gnutella/gnutellaComplexOptions.ml,v
retrieving revision 1.31
retrieving revision 1.32
diff -u -b -r1.31 -r1.32
--- src/networks/gnutella/gnutellaComplexOptions.ml     17 Jun 2007 01:28:26 
-0000      1.31
+++ src/networks/gnutella/gnutellaComplexOptions.ml     3 Aug 2007 22:12:59 
-0000       1.32
@@ -102,7 +102,7 @@
   | _ -> 
       failwith "Options: Not an int32 pair"
 
-let value_to_file file_size file_state assocs =
+let value_to_file file_size file_state user group assocs =
   let get_value name conv = conv (List.assoc name assocs) in
   let file_name = get_value "file_name" value_to_string in
   let file_temp = 
@@ -130,7 +130,7 @@
       file_uids := hash :: !file_uids;
     with _ -> ());
   
-  let file = new_file file_temp file_name file_size !file_uids 
(CommonUserDb.admin_user ()) in
+  let file = new_file file_temp file_name file_size !file_uids user group in
   
   (try
       file.file_ttr <- Some (get_value "file_ttr" (value_to_array 

Index: src/networks/gnutella/gnutellaGlobals.ml
===================================================================
RCS file: /sources/mldonkey/mldonkey/src/networks/gnutella/gnutellaGlobals.ml,v
retrieving revision 1.46
retrieving revision 1.47
diff -u -b -r1.46 -r1.47
--- src/networks/gnutella/gnutellaGlobals.ml    31 May 2007 19:24:59 -0000      
1.46
+++ src/networks/gnutella/gnutellaGlobals.ml    3 Aug 2007 22:12:59 -0000       
1.47
@@ -320,7 +320,7 @@
 let megabyte = Int64.of_int (1024 * 1024)
 let megabytes10 = Int64.of_int (10 * 1024 * 1024)
       
-let new_file file_temporary file_name file_size file_uids user =
+let new_file file_temporary file_name file_size file_uids user group =
   let file_temp = Filename.concat !!temp_directory file_temporary in
   let t = Unix32.create_rw file_temp in
   let rec file = {
@@ -340,7 +340,7 @@
       impl_file_size = file_size;
       impl_file_downloaded = Int64.zero;
       impl_file_owner = user;
-      impl_file_group = user.user_default_group;
+      impl_file_group = group;
       impl_file_val = file;
       impl_file_ops = file_ops;
       impl_file_age = last_time ();          
@@ -349,7 +349,7 @@
     } 
   in
   if !verbose then
-    lprintf_nl "SET SIZE : %Ld\n" file_size;
+    lprintf_nl "SET SIZE : %Ld" file_size;
   let kernel = CommonSwarming.create_swarmer file_temp file_size in
   let swarmer = CommonSwarming.create kernel (as_file file) megabyte in
   CommonSwarming.set_verifier swarmer ForceVerification;
@@ -369,7 +369,7 @@
 
 exception FileFound of file
   
-let new_file file_id file_name file_size file_uids user =
+let new_file file_id file_name file_size file_uids user group =
 (*  if file_uids = [] then 
     try Hashtbl.find files_by_key (file_name, file_size) with
       _ -> 
@@ -382,7 +382,7 @@
         try  raise (FileFound (Hashtbl.find files_by_uid uid))
         with Not_found -> ()
     ) file_uids;
-    let file = new_file file_id file_name file_size file_uids user in
+    let file = new_file file_id file_name file_size file_uids user group in
     List.iter (fun uid -> 
         if !verbose then
           lprintf "Adding file %s\n" (Uid.to_string uid);

Index: src/networks/gnutella/gnutellaInteractive.ml
===================================================================
RCS file: 
/sources/mldonkey/mldonkey/src/networks/gnutella/gnutellaInteractive.ml,v
retrieving revision 1.73
retrieving revision 1.74
diff -u -b -r1.73 -r1.74
--- src/networks/gnutella/gnutellaInteractive.ml        3 Aug 2007 22:11:46 
-0000       1.73
+++ src/networks/gnutella/gnutellaInteractive.ml        3 Aug 2007 22:12:59 
-0000       1.74
@@ -77,8 +77,8 @@
       if file_state file = FileDownloading then
         GnutellaServers.really_recover_file file        
 
-let download_file r user =
-  let file = GnutellaServers.really_download_file r user in
+let download_file r user group =
+  let file = GnutellaServers.really_download_file r user group in
   recover_file file;
   as_file file
 
@@ -387,7 +387,7 @@
       List2.tail_map (fun s -> as_server s.server_server)
       !connected_servers
   );
-  network.op_network_parse_url <- (fun url user ->
+  network.op_network_parse_url <- (fun url user group ->
       match String2.split (String.escaped url) '|' with
       | "gnut://" :: "server" :: ip :: port :: _ ->  
           let ip = Ip.addr_of_string ip in
@@ -419,7 +419,7 @@
               (* Start a download for this file *)
               let rs = new_result name size [] uids [] in
               let r = IndexedResults.get_result rs in
-              let file = download_file r user in
+              let file = download_file r user group in
               CommonInteractive.start_download file;
               "started Gnutella download", true
             end

Index: src/networks/gnutella/gnutellaServers.ml
===================================================================
RCS file: /sources/mldonkey/mldonkey/src/networks/gnutella/gnutellaServers.ml,v
retrieving revision 1.30
retrieving revision 1.31
diff -u -b -r1.30 -r1.31
--- src/networks/gnutella/gnutellaServers.ml    18 Feb 2007 00:13:09 -0000      
1.30
+++ src/networks/gnutella/gnutellaServers.ml    3 Aug 2007 22:12:59 -0000       
1.31
@@ -678,14 +678,14 @@
 (*                                                                       *)
 (*************************************************************************)
     
-let really_download_file (r : result_info) user =
+let really_download_file (r : result_info) user group =
   if !verbose then
     lprintf "download_file\n";
   let file_temp = match r.result_uids with
       [] -> assert false
     | uid :: _ -> Uid.to_file_string uid in
   let file = new_file file_temp
-    (List.hd r.result_names) r.result_size r.result_uids user in
+    (List.hd r.result_names) r.result_size r.result_uids user group in
   if !verbose then
     lprintf "DOWNLOAD FILE %s\n" file.file_name; 
   if not (List.memq file !current_files) then begin




reply via email to

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