[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Mldonkey-commits] mldonkey distrib/ChangeLog src/networks/bittorr...
From: |
mldonkey-commits |
Subject: |
[Mldonkey-commits] mldonkey distrib/ChangeLog src/networks/bittorr... |
Date: |
Sun, 07 Nov 2010 15:02:57 +0000 |
CVSROOT: /sources/mldonkey
Module name: mldonkey
Changes by: spiralvoice <spiralvoice> 10/11/07 15:02:57
Modified files:
distrib : ChangeLog
src/networks/bittorrent: bTTorrent.ml bencode.ml
Log message:
patch #7374
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/mldonkey/distrib/ChangeLog?cvsroot=mldonkey&r1=1.1499&r2=1.1500
http://cvs.savannah.gnu.org/viewcvs/mldonkey/src/networks/bittorrent/bTTorrent.ml?cvsroot=mldonkey&r1=1.23&r2=1.24
http://cvs.savannah.gnu.org/viewcvs/mldonkey/src/networks/bittorrent/bencode.ml?cvsroot=mldonkey&r1=1.6&r2=1.7
Patches:
Index: distrib/ChangeLog
===================================================================
RCS file: /sources/mldonkey/mldonkey/distrib/ChangeLog,v
retrieving revision 1.1499
retrieving revision 1.1500
diff -u -b -r1.1499 -r1.1500
--- distrib/ChangeLog 7 Nov 2010 15:01:40 -0000 1.1499
+++ distrib/ChangeLog 7 Nov 2010 15:02:55 -0000 1.1500
@@ -15,6 +15,7 @@
=========
2010/11/07
+7374: BT: calculate compatible hash for wrong torrents (ygrek)
6012: http_client: Support gzip accept-encoding + content-encoding (ygrek)
2010/11/03
Index: src/networks/bittorrent/bTTorrent.ml
===================================================================
RCS file: /sources/mldonkey/mldonkey/src/networks/bittorrent/bTTorrent.ml,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -b -r1.23 -r1.24
--- src/networks/bittorrent/bTTorrent.ml 29 Aug 2010 20:17:56 -0000
1.23
+++ src/networks/bittorrent/bTTorrent.ml 7 Nov 2010 15:02:57 -0000
1.24
@@ -280,9 +280,9 @@
assert (real_file_name <> "");
assert (!file_piece_size <> zero);
assert (!file_pieces <> "");
- assert (!file_info = Bencode.decode (Bencode.encode !file_info));
+ assert (!file_info = Bencode.decode (Bencode.encode ~strict:false
!file_info));
- let file_id = Sha1.string (Bencode.encode !file_info) in
+ let file_id = Sha1.string (Bencode.encode ~strict:false !file_info) in
let npieces = 1 + Int64.to_int ((!length -- one) // !file_piece_size) in
let pieces = Array.init npieces (fun i ->
let s = String.sub !file_pieces (i*20) 20 in
Index: src/networks/bittorrent/bencode.ml
===================================================================
RCS file: /sources/mldonkey/mldonkey/src/networks/bittorrent/bencode.ml,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -b -r1.6 -r1.7
--- src/networks/bittorrent/bencode.ml 4 Apr 2010 09:16:28 -0000 1.6
+++ src/networks/bittorrent/bencode.ml 7 Nov 2010 15:02:57 -0000 1.7
@@ -121,7 +121,7 @@
let (v,pos) = decode s 0 len in
v
-let encode v =
+let encode ?(strict=true) v =
let buf = Buffer.create 100 in
let encode_string s = Printf.bprintf buf "%d:%s" (String.length s) s in
let rec encode v =
@@ -134,7 +134,11 @@
Buffer.add_char buf 'e'
| Dictionary list ->
Buffer.add_char buf 'd';
- List.iter (fun (key,v) -> encode_string key; encode v) (List.sort (fun
(s1, _) (s2, _) -> compare s1 s2) list);
+ (* When calculating hash for the torrent file we leave the dictionary
+ "as is" in order to get the same hash as the client that created
+ this torrent even when the keys are not sorted (as required by BEP-3) *)
+ let list = if strict then List.sort (fun (s1, _) (s2, _) -> compare s1
s2) list else list in
+ List.iter (fun (key,v) -> encode_string key; encode v) list;
Buffer.add_char buf 'e'
in
encode v;
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Mldonkey-commits] mldonkey distrib/ChangeLog src/networks/bittorr...,
mldonkey-commits <=