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: Mon, 17 Dec 2007 11:32:27 +0000

CVSROOT:        /sources/mldonkey
Module name:    mldonkey
Changes by:     spiralvoice <spiralvoice>       07/12/17 11:32:27

Modified files:
        distrib        : ChangeLog 
        src/daemon/common: commonInteractive.ml commonOptions.ml 

Log message:
        patch #6346

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/mldonkey/distrib/ChangeLog?cvsroot=mldonkey&r1=1.1335&r2=1.1336
http://cvs.savannah.gnu.org/viewcvs/mldonkey/src/daemon/common/commonInteractive.ml?cvsroot=mldonkey&r1=1.101&r2=1.102
http://cvs.savannah.gnu.org/viewcvs/mldonkey/src/daemon/common/commonOptions.ml?cvsroot=mldonkey&r1=1.217&r2=1.218

Patches:
Index: distrib/ChangeLog
===================================================================
RCS file: /sources/mldonkey/mldonkey/distrib/ChangeLog,v
retrieving revision 1.1335
retrieving revision 1.1336
diff -u -b -r1.1335 -r1.1336
--- distrib/ChangeLog   13 Dec 2007 18:06:56 -0000      1.1335
+++ distrib/ChangeLog   17 Dec 2007 11:32:27 -0000      1.1336
@@ -14,6 +14,9 @@
 ChangeLog
 =========
 
+2007/12/17
+6346: Environment variables for file_started_cmd (see option help text)
+
 2007/12/13
 6343: gcc-4.3 compile fix for CryptoPP (brian m. carlson)
 

Index: src/daemon/common/commonInteractive.ml
===================================================================
RCS file: /sources/mldonkey/mldonkey/src/daemon/common/commonInteractive.ml,v
retrieving revision 1.101
retrieving revision 1.102
diff -u -b -r1.101 -r1.102
--- src/daemon/common/commonInteractive.ml      10 Oct 2007 21:50:32 -0000      
1.101
+++ src/daemon/common/commonInteractive.ml      17 Dec 2007 11:32:27 -0000      
1.102
@@ -525,12 +525,53 @@
 let start_download file =
   if !!pause_new_downloads then file_pause file (admin_user ());
   if !!file_started_cmd <> "" then
+    begin
+      let info = file_info file in
+      let temp_name = file_disk_name file in
+      let file_id = Filename.basename temp_name in
+      let size = Int64.to_string (file_size file) in
+      let network = network_find_by_num info.G.file_network in
+      let filename = file_best_name file in
+      let file_group_info =
+        match file_group file with
+        | None -> 0, []
+        | Some _ ->
+          let users = ref [] in
+          let counter = ref 0 in
+          user2_users_iter (fun u ->
+            if file_owner file <> u &&
+              user2_can_view_file u (file_owner file) (file_group file) then
+                begin
+                  incr counter;
+                  users :=  (Printf.sprintf "FILE_GROUP_USER_%d" !counter, 
u.user_name) ::
+                            (Printf.sprintf "FILE_GROUP_DIR_%d" !counter, 
u.user_commit_dir) :: !users
+                end);
+          !counter, !users
+      in
       MlUnix.fork_and_exec  !!file_started_cmd
       [|
       !!file_started_cmd;
         "-file";
         string_of_int (CommonFile.file_num file);
       |]
+     ~vars:([("TEMPNAME",  temp_name);
+           ("FILEID",    file_id);
+           ("FILESIZE",  size);
+           ("FILENAME",  filename);
+           ("FILEHASH",  string_of_uids info.G.file_uids);
+           ("DLFILES",   string_of_int (List.length !!files)); 
+           ("NETWORK",   network.network_name);
+           ("ED2K_HASH", (file_print_ed2k_link filename (file_size file) 
info.G.file_md4));
+           ("FILE_OWNER",(file_owner file).user_name);
+           ("FILE_GROUP",user2_print_group (file_group file));
+           ("USER_MAIL", ( if (file_owner file).user_mail <> "" then
+                              (file_owner file).user_mail
+                            else
+                              if !!mail <> "" then !!mail else ""));
+           ("FILE_GROUP_CNT", string_of_int (fst (file_group_info)));
+           ]
+            @ snd (file_group_info))
+    end
 
 let download_file o arg =
   let user = o.conn_user in

Index: src/daemon/common/commonOptions.ml
===================================================================
RCS file: /sources/mldonkey/mldonkey/src/daemon/common/commonOptions.ml,v
retrieving revision 1.217
retrieving revision 1.218
diff -u -b -r1.217 -r1.218
--- src/daemon/common/commonOptions.ml  20 Oct 2007 20:02:13 -0000      1.217
+++ src/daemon/common/commonOptions.ml  17 Dec 2007 11:32:27 -0000      1.218
@@ -1215,12 +1215,27 @@
     $INCOMING  - directory used for commit
     $NETWORK   - network used for downloading
     $ED2K_HASH - ed2k hash if MD4 is known
+    $FILE_OWNER - user who started the download
+    $FILE_GROUP - group the file belongs to
+    $USER_MAIL - mail address of file_owner
   "
     string_option ""
 
 let file_started_cmd = define_option current_section ["file_started_cmd"]
   "The command which is called when a download is started. Arguments
-  are '-file <num>'"
+  are '-file <num>'
+  Also these environment variables can be used (prefered way):
+    $TEMPNAME  - temp file name, including path
+    $FILEID    - same as $1
+    $FILESIZE  - same as $2
+    $FILENAME  - same as $3
+    $FILEHASH  - internal hash
+    $NETWORK   - network used for downloading
+    $ED2K_HASH - ed2k hash if MD4 is known
+    $FILE_OWNER - user who started the download
+    $FILE_GROUP - group the file belongs to
+    $USER_MAIL - mail address of file_owner
+  "
     string_option ""
 
 




reply via email to

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