[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: |
Mon, 06 Feb 2006 21:47:02 +0000 |
CVSROOT: /sources/mldonkey
Module name: mldonkey
Branch:
Changes by: spiralvoice <address@hidden> 06/02/06 21:47:02
Modified files:
distrib : ChangeLog
src/daemon/driver: driverCommands.ml
src/networks/donkey: donkeyClient.mli donkeyInteractive.ml
Log message:
patch #4879
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/mldonkey/mldonkey/distrib/ChangeLog.diff?tr1=1.722&tr2=1.723&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/mldonkey/mldonkey/src/daemon/driver/driverCommands.ml.diff?tr1=1.124&tr2=1.125&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/mldonkey/mldonkey/src/networks/donkey/donkeyClient.mli.diff?tr1=1.4&tr2=1.5&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/mldonkey/mldonkey/src/networks/donkey/donkeyInteractive.ml.diff?tr1=1.90&tr2=1.91&r1=text&r2=text
Patches:
Index: mldonkey/distrib/ChangeLog
diff -u mldonkey/distrib/ChangeLog:1.722 mldonkey/distrib/ChangeLog:1.723
--- mldonkey/distrib/ChangeLog:1.722 Mon Feb 6 21:45:03 2006
+++ mldonkey/distrib/ChangeLog Mon Feb 6 21:47:02 2006
@@ -15,6 +15,9 @@
=========
2006/02/06
+4879: EDK: Support for sources in ed2k:// links
+- example:
+ed2k://|file|a.txt|1|AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA|/|sources,1.0.0.0:4662|/
4849: EDK: Fix hashing of newly shared files
- avoid hashing shared files twice
- avoid problems while hashing big files
Index: mldonkey/src/daemon/driver/driverCommands.ml
diff -u mldonkey/src/daemon/driver/driverCommands.ml:1.124
mldonkey/src/daemon/driver/driverCommands.ml:1.125
--- mldonkey/src/daemon/driver/driverCommands.ml:1.124 Sun Feb 5 13:25:22 2006
+++ mldonkey/src/daemon/driver/driverCommands.ml Mon Feb 6 21:47:02 2006
@@ -2685,6 +2685,16 @@
"dllink", Arg_multiple (fun args o ->
let query_networks url =
+ let print_result buf o result =
+ List.iter (fun s ->
+ if o.conn_output = HTML then
+ begin
+ Printf.bprintf buf "\\</tr\\>\\<tr class=\\\"dl-1\\\"\\>";
+ html_mods_td buf [ ("", "sr", s); ]
+ end
+ else
+ Printf.bprintf buf "%s\n" s) (List.rev result);
+ in
let result = ref [] in
if not (networks_iter_until_true (fun n ->
try
@@ -2713,14 +2723,7 @@
end
else
Printf.bprintf buf "Unable to match URL : %s\n" url;
- List.iter (fun s ->
- if o.conn_output = HTML then
- begin
- Printf.bprintf buf "\\</tr\\>\\<tr
class=\\\"dl-1\\\"\\>";
- html_mods_td buf [ ("", "sr", s); ]
- end
- else
- Printf.bprintf buf "%s\n" s) (List.rev !result);
+ print_result buf o !result;
if o.conn_output = HTML then
Printf.bprintf buf
"\\</tr\\>\\</table\\>\\</div\\>\\</div\\>";
Buffer.contents buf) in
@@ -2734,6 +2737,7 @@
html_mods_td buf [ ("", "srh", "Added link"); ];
Printf.bprintf buf "\\</tr\\>\\<tr class=\\\"dl-1\\\"\\>";
html_mods_td buf [ ("", "sr", url); ];
+ print_result buf o !result;
Printf.bprintf buf "\\</tr\\>\\</table\\>\\</div\\>\\</div\\>";
Buffer.contents buf
end
Index: mldonkey/src/networks/donkey/donkeyClient.mli
diff -u mldonkey/src/networks/donkey/donkeyClient.mli:1.4
mldonkey/src/networks/donkey/donkeyClient.mli:1.5
--- mldonkey/src/networks/donkey/donkeyClient.mli:1.4 Thu Aug 5 15:52:12 2004
+++ mldonkey/src/networks/donkey/donkeyClient.mli Mon Feb 6 21:47:02 2006
@@ -43,3 +43,5 @@
val clean_requests : unit -> unit
val disconnect_client : DonkeyTypes.client -> BasicSocket.close_reason -> unit
+
+val add_source : DonkeyTypes.file -> Ip.t -> int -> Ip.t -> int -> unit
Index: mldonkey/src/networks/donkey/donkeyInteractive.ml
diff -u mldonkey/src/networks/donkey/donkeyInteractive.ml:1.90
mldonkey/src/networks/donkey/donkeyInteractive.ml:1.91
--- mldonkey/src/networks/donkey/donkeyInteractive.ml:1.90 Sun Feb 5
13:19:14 2006
+++ mldonkey/src/networks/donkey/donkeyInteractive.ml Mon Feb 6 21:47:02 2006
@@ -531,8 +531,47 @@
let parse_donkey_url url =
- match String2.split ((*String.escaped*) url) '|' with
+ let url = Str.global_replace (Str.regexp "|sources,") "|sources|" url in
+ match String2.split (String.escaped url) '|' with
(* TODO RESULT *)
+ | "ed2k://" :: "file" :: name :: size :: md4 :: "/" :: "sources" :: sources
:: _
+ | "file" :: name :: size :: md4 :: "/" :: "sources" :: sources :: _ ->
+(*
ed2k://|file|Wikipedia_3.3_noimages.iso|2666311680|747735CD46B61DA92973E9A8840A9C99|/|sources,62.143.4.124:4662|/
*)
+ if Int64.of_string size >= 4294967295L then
+ "Files > 4GB are not allowed", false
+ else
+ begin
+ let md4 = if String.length md4 > 32 then
+ String.sub md4 0 32 else md4 in
+ let new_sources = ref [] in
+ let s = String2.split sources ',' in
+ List.iter (fun s ->
+ begin try
+ match String2.split s ':' with
+ [ip;port] ->
+ let source_ip = Ip.of_string ip in
+ let source_port = int_of_string port in
+ new_sources := (source_ip, source_port) :: !new_sources
+ | _ -> ()
+ with _ -> ()
+ end) s;
+ begin
+ try
+ let file = query_download [name] (Int64.of_string size)
+ (Md4.of_string md4) None None None false in
+ let new_file = find_file (Md4.of_string md4) in
+ CommonInteractive.start_download file;
+ if !new_sources <> [] then
+ begin
+ List.iter (fun (source_ip, source_port) ->
+ add_source new_file source_ip source_port Ip.null 0
+ ) !new_sources;
+ (Printf.sprintf "added %d sources to new download"
(List.length !new_sources)), true
+ end
+ else "", true
+ with e -> (Printexc2.to_string e), false
+ end
+ end
| "ed2k://" :: "file" :: name :: size :: md4 :: _
| "file" :: name :: size :: md4 :: _ ->
if Int64.of_string size >= 4294967295L then
- [Mldonkey-commits] mldonkey distrib/ChangeLog src/daemon/driver/dr..., mldonkey-commits, 2006/02/01
- [Mldonkey-commits] mldonkey distrib/ChangeLog src/daemon/driver/dr..., mldonkey-commits, 2006/02/02
- [Mldonkey-commits] mldonkey distrib/ChangeLog src/daemon/driver/dr..., mldonkey-commits, 2006/02/02
- [Mldonkey-commits] mldonkey distrib/ChangeLog src/daemon/driver/dr..., mldonkey-commits, 2006/02/03
- [Mldonkey-commits] mldonkey distrib/ChangeLog src/daemon/driver/dr..., mldonkey-commits, 2006/02/05
- [Mldonkey-commits] mldonkey distrib/ChangeLog src/daemon/driver/dr...,
mldonkey-commits <=
- [Mldonkey-commits] mldonkey distrib/ChangeLog src/daemon/driver/dr..., mldonkey-commits, 2006/02/21