[Top][All Lists]
[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) ->
- [Mldonkey-commits] mldonkey distrib/ChangeLog src/daemon/driver/dr...,
mldonkey-commits <=