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/driver/dr...


From: mldonkey-commits
Subject: [Mldonkey-commits] mldonkey distrib/ChangeLog src/daemon/driver/dr...
Date: Fri, 16 Dec 2005 20:57:57 +0000

CVSROOT:        /sources/mldonkey
Module name:    mldonkey
Branch:         
Changes by:     spiralvoice <address@hidden>    05/12/16 20:57:57

Modified files:
        distrib        : ChangeLog 
        src/daemon/driver: driverCommands.ml driverControlers.ml 

Log message:
        patch #4708

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/mldonkey/mldonkey/distrib/ChangeLog.diff?tr1=1.621&tr2=1.622&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/mldonkey/mldonkey/src/daemon/driver/driverCommands.ml.diff?tr1=1.105&tr2=1.106&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/mldonkey/mldonkey/src/daemon/driver/driverControlers.ml.diff?tr1=1.53&tr2=1.54&r1=text&r2=text

Patches:
Index: mldonkey/distrib/ChangeLog
diff -u mldonkey/distrib/ChangeLog:1.621 mldonkey/distrib/ChangeLog:1.622
--- mldonkey/distrib/ChangeLog:1.621    Fri Dec 16 20:56:31 2005
+++ mldonkey/distrib/ChangeLog  Fri Dec 16 20:57:57 2005
@@ -12,6 +12,7 @@
 http://mldonkey.berlios.de/modules.php?name=Wiki&pagename=Windows
 
 2005/12/16
+4708: HTML upstats: Enable preview for shared files
 4652: dllink: reject EDK files > 4GB, print access errors for .torrent files
 
 2005/12/15
Index: mldonkey/src/daemon/driver/driverCommands.ml
diff -u mldonkey/src/daemon/driver/driverCommands.ml:1.105 
mldonkey/src/daemon/driver/driverCommands.ml:1.106
--- mldonkey/src/daemon/driver/driverCommands.ml:1.105  Fri Dec 16 20:56:31 2005
+++ mldonkey/src/daemon/driver/driverCommands.ml        Fri Dec 16 20:57:57 2005
@@ -2203,6 +2203,7 @@
             ( "1", "srh", "Total file requests", "Reqs" ) ;
             ( "1", "srh", "Total bytes sent", "Total" ) ;
             ( "1", "srh", "Upload Ratio", "UPRatio" ) ;
+            ( "0", "srh", "Preview", "P" ) ;
             ( "0", "srh", "Filename", "Filename" );
             ( "0", "srh", "Statistic links", "Stats" ) ]
         else
@@ -2239,6 +2240,8 @@
                   ("", "sr ar", Printf.sprintf "%d" impl.impl_shared_requests);
                   ("", "sr ar", size_of_int64 impl.impl_shared_uploaded);
                   ("", "sr ar", Printf.sprintf "%5.1f" ( if size < 1.0 then 
0.0 else (uploaded *. 100.) /. size));
+                  ("", "sr", Printf.sprintf "\\<a 
href=\\\"preview_upload?q=%d\\\"\\>P\\</a\\>"
+                       impl.impl_shared_num);
                   ("", "sr", (if impl.impl_shared_id = Md4.null then
                     (Filename.basename impl.impl_shared_codedname)
                   else
Index: mldonkey/src/daemon/driver/driverControlers.ml
diff -u mldonkey/src/daemon/driver/driverControlers.ml:1.53 
mldonkey/src/daemon/driver/driverControlers.ml:1.54
--- mldonkey/src/daemon/driver/driverControlers.ml:1.53 Wed Dec 14 21:17:46 2005
+++ mldonkey/src/daemon/driver/driverControlers.ml      Fri Dec 16 20:57:57 2005
@@ -26,6 +26,7 @@
 open CommonTypes
 open CommonGlobals
 open CommonGraphics
+open CommonShared
 open GuiTypes
 open CommonComplexOptions
 open CommonFile
@@ -42,7 +43,7 @@
 
 (* prints a new logline with date, module and does not start newline *)
 let lprintf_n () =
-  lprintf "%s[EDK] "
+  lprintf "%s[dCon] "
     (log_time ()); lprintf
 
 let rec dollar_escape o with_frames s =
@@ -960,6 +961,55 @@
   Buffer.reset buf;
   http_file_type := UNK
 
+let send_preview r file fd size filename exten =
+  let (begin_pos, end_pos) =
+    try
+      let (begin_pos, end_pos) = request_range r in
+      let end_pos = match end_pos with
+          None -> size
+        | Some end_pos -> end_pos in
+      let range_size = end_pos -- begin_pos in
+      add_reply_header r "Content-Length"
+        (Int64.to_string range_size);
+      add_reply_header r "Content-Range"
+        (Printf.sprintf "bytes %Ld-%Ld/%Ld"
+          begin_pos (end_pos -- one)
+        size);
+      r.reply_head <- "206 Partial Content";
+      begin_pos, end_pos
+    with _ ->
+        add_reply_header r "Content-Length"
+          (Int64.to_string size);
+        zero, size
+  in
+  let len = String.length exten in
+  let exten = if len = 0 then exten
+      else String.lowercase (String.sub exten 1 (len - 1)) in
+  http_add_bin_stream_header r (extension_to_file_ext exten);
+
+  let s = String.create 200000 in
+  set_max_output_buffer r.sock (String.length s);
+  set_rtimeout r.sock 10000.;
+  let rec stream_file file pos sock =
+    let max = (max_refill sock) - 1 in
+    if max > 0 && !pos < end_pos then
+      let max64 = min (end_pos -- !pos) (Int64.of_int max) in
+      let max = Int64.to_int max64 in
+      Unix32.read fd !pos s 0 max;
+      pos := !pos ++ max64;
+      set_lifetime sock 60.;
+(*                      lprintf "HTTPSEND: refill %d %Ld\n" max !pos;*)
+(*                    lprintf "HTTPSEND: [%s]\n" (String.escaped
+                        (String.sub s 0 max)); *)
+      write sock s 0 max;
+      if output_buffered sock = 0 then begin
+(*                          lprintf "Recursing STREAM\n"; *)
+          stream_file file pos sock
+        end
+  in
+  r.reply_stream <- Some (stream_file file (ref begin_pos))
+
+
 let http_handler o t r =
   CommonInteractive.display_vd := false;
   CommonInteractive.display_bw_stats := false;
@@ -1389,56 +1439,36 @@
                   let file = file_find file_num in
                   let fd = file_fd file in
                   let size = file_size file in
-
-                  let (begin_pos, end_pos) =
-                    try
-                      let (begin_pos, end_pos) = request_range r in
-                      let end_pos = match end_pos with
-                          None -> size
-                        | Some end_pos -> end_pos in
-                      let range_size = end_pos -- begin_pos in
-                      add_reply_header r "Content-Length"
-                        (Int64.to_string range_size);
-                      add_reply_header r "Content-Range"
-                        (Printf.sprintf "bytes %Ld-%Ld/%Ld"
-                          begin_pos (end_pos -- one)
-                        size);
-                      r.reply_head <- "206 Partial Content";
-                      begin_pos, end_pos
-                    with _ ->
-                        add_reply_header r "Content-Length"
-                          (Int64.to_string size);
-                        zero, size
-                  in
-                   
                  let filename = file_best_name file in
                  let exten = Filename2.last_extension filename in
-                 let len = String.length exten in
-                 let exten = if len = 0 then exten
-                     else String.lowercase (String.sub exten 1 (len - 1)) in
-                 http_add_bin_stream_header r (extension_to_file_ext exten);
-
-                  let s = String.create 200000 in
-                  set_max_output_buffer r.sock (String.length s);
-                  set_rtimeout r.sock 10000.;
-                  let rec stream_file file pos sock =
-                    let max = (max_refill sock) - 1 in
-                    if max > 0 && !pos < end_pos then
-                      let max64 = min (end_pos -- !pos) (Int64.of_int max) in
-                      let max = Int64.to_int max64 in
-                      Unix32.read fd !pos s 0 max;
-                      pos := !pos ++ max64;
-                      set_lifetime sock 60.;
-(*                      lprintf "HTTPSEND: refill %d %Ld\n" max !pos;*)
-(*                    lprintf "HTTPSEND: [%s]\n" (String.escaped
-                        (String.sub s 0 max)); *)
-                      write sock s 0 max;
-                      if output_buffered sock = 0 then begin
-(*                          lprintf "Recursing STREAM\n"; *)
-                          stream_file file pos sock
-                        end
-                  in
-                  r.reply_stream <- Some (stream_file file (ref begin_pos))
+                   send_preview r file fd size filename exten
+
+              | args ->
+                  List.iter (fun (s,v) ->
+                      lprintf_nl () "[%s]=[%s]" (String.escaped s) 
(String.escaped v))
+                  args;
+                  raise Not_found
+            end
+
+        | "preview_upload" ->
+            begin
+              clear_page buf;
+              match r.get_url.Url.args with
+                ["q", file_num] ->
+                  let file_num = int_of_string file_num in
+                 let file = shared_find file_num in
+                 let impl = as_shared_impl file in
+                 let info = shared_info file in
+                 let filename = impl.impl_shared_fullname in
+                 let exten = Filename2.last_extension 
impl.impl_shared_codedname in
+                 if not (Sys.file_exists filename) then
+                   begin
+                     lprintf_nl () "file %s not found" filename;
+                     raise Not_found
+                   end;
+                 let fd = Unix32.create_ro filename in
+                 let size = info.shared_size in
+                   send_preview r file fd size filename exten
 
               | args ->
                   List.iter (fun (s,v) ->




reply via email to

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