[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Mldonkey-commits] mldonkey distrib/ChangeLog src/utils/lib/md4.ml...
From: |
mldonkey-commits |
Subject: |
[Mldonkey-commits] mldonkey distrib/ChangeLog src/utils/lib/md4.ml... |
Date: |
Thu, 02 Feb 2006 00:33:28 +0000 |
CVSROOT: /sources/mldonkey
Module name: mldonkey
Branch:
Changes by: spiralvoice <address@hidden> 06/02/02 00:33:28
Modified files:
distrib : ChangeLog
src/utils/lib : md4.ml stubs_c.c tiger.c tiger.h
tools : mld_hash.ml
Log message:
patch #4850
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/mldonkey/mldonkey/distrib/ChangeLog.diff?tr1=1.695&tr2=1.696&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/mldonkey/mldonkey/src/utils/lib/md4.ml.diff?tr1=1.16&tr2=1.17&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/mldonkey/mldonkey/src/utils/lib/stubs_c.c.diff?tr1=1.32&tr2=1.33&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/mldonkey/mldonkey/src/utils/lib/tiger.c.diff?tr1=1.9&tr2=1.10&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/mldonkey/mldonkey/src/utils/lib/tiger.h.diff?tr1=1.3&tr2=1.4&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/mldonkey/mldonkey/tools/mld_hash.ml.diff?tr1=1.6&tr2=1.7&r1=text&r2=text
Patches:
Index: mldonkey/distrib/ChangeLog
diff -u mldonkey/distrib/ChangeLog:1.695 mldonkey/distrib/ChangeLog:1.696
--- mldonkey/distrib/ChangeLog:1.695 Sun Jan 29 19:50:33 2006
+++ mldonkey/distrib/ChangeLog Thu Feb 2 00:33:28 2006
@@ -14,6 +14,10 @@
ChangeLog
=========
+2006/02/02
+4850: Fixed bitprint hashing for files > 4GB
+ mld_hash: implement SIGINT and SIGTERM signals
+
2006/01/29
4844: Fix Solaris compile broken since DonkeySUI patch
4830: Update Wiki links
Index: mldonkey/src/utils/lib/md4.ml
diff -u mldonkey/src/utils/lib/md4.ml:1.16 mldonkey/src/utils/lib/md4.ml:1.17
--- mldonkey/src/utils/lib/md4.ml:1.16 Mon Jan 9 00:25:59 2006
+++ mldonkey/src/utils/lib/md4.ml Thu Feb 2 00:33:28 2006
@@ -469,12 +469,10 @@
"tiger_unsafe_string"
let unsafe_file digest filename =
- Printf2.lprintf "Tiger.unsafe_file not implemented\n";
- exit 70
+ failwith "Tiger.unsafe_file not implemented"
- let digest_subfile digest fd pos len =
- Printf2.lprintf "Tiger.digest_subfile not implemented\n";
- exit 70
+ let digest_subfile _ _ _ _ =
+ failwith "Tiger.digest_subfile not implemented"
module Base = Base32
Index: mldonkey/src/utils/lib/stubs_c.c
diff -u mldonkey/src/utils/lib/stubs_c.c:1.32
mldonkey/src/utils/lib/stubs_c.c:1.33
--- mldonkey/src/utils/lib/stubs_c.c:1.32 Thu Jan 26 00:25:25 2006
+++ mldonkey/src/utils/lib/stubs_c.c Thu Feb 2 00:33:28 2006
@@ -587,11 +587,11 @@
*******************************************************************/
#include "tiger.h"
-static void tiger_tree_fd(OS_FD fd, size_t len, size_t pos, size_t block_size,
char *digest)
+static void tiger_tree_fd(OS_FD fd, OFF_T len, OFF_T pos, OFF_T block_size,
char *digest)
{
static char tiger_buffer[BLOCK_SIZE+1];
if(block_size == BLOCK_SIZE){
- size_t length = (len - pos > BLOCK_SIZE) ? BLOCK_SIZE : len - pos;
+ OFF_T length = (len - pos > BLOCK_SIZE) ? BLOCK_SIZE : len - pos;
char *s = tiger_buffer+1;
size_t toread = length;
char *curs = s;
Index: mldonkey/src/utils/lib/tiger.c
diff -u mldonkey/src/utils/lib/tiger.c:1.9 mldonkey/src/utils/lib/tiger.c:1.10
--- mldonkey/src/utils/lib/tiger.c:1.9 Wed Nov 30 23:46:25 2005
+++ mldonkey/src/utils/lib/tiger.c Thu Feb 2 00:33:28 2006
@@ -17,6 +17,7 @@
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
+#include "../../utils/lib/os_stubs.h"
#include "tiger.h"
#include <caml/config.h>
@@ -775,7 +776,7 @@
#define MAX_TIGER_CHUNK_SIZE 1024
static word64 tiger_buffer[MAX_TIGER_CHUNK_SIZE];
-void tiger_hash(char prefix, char *s, long len, unsigned char *digest)
+void tiger_hash(char prefix, char *s, OFF_T len, unsigned char *digest)
{
char *buffer = (char*) tiger_buffer;
word64 ndigest[3];
@@ -818,14 +819,13 @@
#include "tiger.h"
#include "md4.h"
-
#include "caml/mlvalues.h"
#include "caml/fail.h"
#include "caml/alloc.h"
-unsigned long tiger_block_size(unsigned long len)
+OFF_T tiger_block_size(OFF_T len)
{
- unsigned long block_size = BLOCK_SIZE;
+ OFF_T block_size = BLOCK_SIZE;
while(block_size < len) block_size *= 2;
return block_size;
}
Index: mldonkey/src/utils/lib/tiger.h
diff -u mldonkey/src/utils/lib/tiger.h:1.3 mldonkey/src/utils/lib/tiger.h:1.4
--- mldonkey/src/utils/lib/tiger.h:1.3 Tue Oct 25 09:46:50 2005
+++ mldonkey/src/utils/lib/tiger.h Thu Feb 2 00:33:28 2006
@@ -17,6 +17,7 @@
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
+#include "../../utils/lib/os_stubs.h"
#ifndef _TIGER_H
#define _TIGER_H
@@ -30,6 +31,6 @@
#define TREE_DEPTH 10
-void tiger_hash(char prefix, char *s, long len, unsigned char *digest);
-unsigned long tiger_block_size(unsigned long len);
+void tiger_hash(char prefix, char *s, OFF_T len, unsigned char *digest);
+OFF_T tiger_block_size(OFF_T len);
#endif
Index: mldonkey/tools/mld_hash.ml
diff -u mldonkey/tools/mld_hash.ml:1.6 mldonkey/tools/mld_hash.ml:1.7
--- mldonkey/tools/mld_hash.ml:1.6 Mon Jan 9 00:25:59 2006
+++ mldonkey/tools/mld_hash.ml Thu Feb 2 00:33:28 2006
@@ -87,7 +87,9 @@
(*************************************************************************)
let bitprint_file fd file_size partial =
+ lprintf "Calculating SHA1\n";
let sha1 = Sha1.digest_subfile fd zero file_size in
+ lprintf "Calculating TigerTree\n";
let tiger = TigerTree.digest_subfile fd zero file_size in
lprintf "urn:bitprint:%s.%s\n" (Sha1.to_string sha1) (TigerTree.to_string
tiger);
let file_size = Unix32.getsize64 fd in
@@ -100,7 +102,7 @@
let end_pos = min end_pos file_size in
let len = end_pos -- begin_pos in
let tiger = TigerTree.digest_subfile fd begin_pos len in
- if !partial then lprintf " Partial %3d : %s\n" i (TigerTree.to_string
tiger);
+ if !partial then lprintf " Partial %4d/%4d : %s\n" i nchunks
(TigerTree.to_string tiger);
chunks.(i) <- tiger
done;
chunks
@@ -140,7 +142,7 @@
let end_pos = min end_pos file_size in
let len = end_pos -- begin_pos in
let md4 = Md4.digest_subfile fd begin_pos len in
- if !partial then lprintf " Partial %3d : %s\n" i (Md4.to_string md4);
+ if !partial then lprintf " Partial %4d/%4d : %s\n" i nchunks
(Md4.to_string md4);
let md4 = Md4.direct_to_string md4 in
String.blit md4 0 chunks (i*16) 16;
done;
@@ -164,7 +166,7 @@
let end_pos = min end_pos file_size in
let len = end_pos -- begin_pos in
let md4 = Sha1.digest_subfile fd begin_pos len in
- lprintf " Partial %3d (%Ld-%Ld) : %s\n" i begin_pos end_pos
+ lprintf " Partial %4d/%4d (%Ld-%Ld) : %s\n" i nchunks begin_pos end_pos
(Sha1.to_string md4);
done
@@ -175,6 +177,7 @@
(*************************************************************************)
let ed2k_hash_filename filename partial =
+ lprintf "Calculating ed2k of %s\n" filename;
let fd = Unix32.create_ro filename in
let file_size = Unix32.getsize64 fd in
let md4 = ed2k_hash_file fd file_size partial in
@@ -190,6 +193,7 @@
(*************************************************************************)
let sig2dat_hash_filename filename partial =
+ lprintf "Calculating sig2dat of %s\n" filename;
let fd = Unix32.create_ro filename in
let file_size = Unix32.getsize64 fd in
let len64 = min 307200L file_size in
@@ -198,7 +202,7 @@
Unix32.read fd zero s 0 len;
let md5ext = Md5Ext.string s in
lprintf "sig2dat://|File: %s|Length: %Ld Bytes|UUHash: %s|/\n"
- filename file_size (Md5Ext.to_string md5ext);
+ (Url.encode (Filename.basename filename)) file_size (Md5Ext.to_string
md5ext);
lprintf " Hash: %s\n" (Md5Ext.to_hexa_case false md5ext);
()
@@ -210,14 +214,6 @@
let check_external_functions size =
let partial = ref true in
- let nchunks = 1024 in
-(*
- let chunk_sizes = [
- 10 (* 10 KB *); 1000 (* ~ 1 MB *) ;
-(* 50000 (* ~ 50 MB *) ; *)
-(* 100000 (* ~ 100 MB *); 3000000 (* ~ 3 GB *) *)
- ]
- in *)
let test_string_len = 43676 in
let dummy_string = "bonjourhello1" in
@@ -283,11 +279,6 @@
waves
in
let waves = iter zero [] in
-
- lprintf "Waves: \n";
- List.iter (fun (pos,len) ->
- lprintf " %Ld[%d]," pos len;
- ) waves;
lprintf "\n";
List.iter (fun (name,f,f') ->
let filename = Printf.sprintf "test.%s.%d" name size in
@@ -313,26 +304,26 @@
lprintf "Computing ed2k hash\n";
let md4 = ed2k_hash_file file file_size partial in
lprintf "ed2k://|file|%s|%Ld|%s|\n"
- (Url.encode filename)
- file_size
- (Md4.to_string md4);
+ (Url.encode filename) file_size (Md4.to_string md4);
lprintf "Computing bitprint hash\n";
let (sha1, tiger2) = bitprint_file file file_size partial in
lprintf "urn:bitprint:%s.%s\n" (Sha1.to_string sha1)
(TigerTree.to_string tiger2);
+ Unix32.close file;
lprintf (_b "Renaming...\n");
- Unix32.rename file (filename ^ ".final");
-
+ Unix32.rename file (filename ^ ".final");
+
lprintf (_b "Removing %s\n") filename;
Unix32.remove file;
-
let file = f' (filename ^ ".final") file_size in
+ Unix32.close file;
Unix32.remove file;
+ (try Sys.remove "zero_chunk" with _ -> ());
lprintf "done\n"
with e ->
- lprintf (_b " ********** Exception %s in
check_external_functions %s.%d KB\n")
+ lprintf (_b "Exception %s in check_external_functions %s.%d KB\n")
(Printexc2.to_string e) name size)
file_types
@@ -410,11 +401,19 @@
let _ =
(* set_strings_file "mlnet_strings"; *)
+ MlUnix.set_signal Sys.sigint
+ (Sys.Signal_handle (fun _ -> lprintf_nl "Received SIGINT, stopping
mld_hash...";
+ exit 0));
+
+ MlUnix.set_signal Sys.sigterm
+ (Sys.Signal_handle (fun _ -> lprintf_nl "Received SIGTERM, stopping
mld_hash...";
+ exit 0));
+
let partial = ref false in
Arg2.parse2 [
"-diff_chunk", Arg2.Array (4, diff_chunk),
"<filename1> <filename2> <begin_pos> <end_pos> : compute diff between the
two files";
- "-hash", Arg2.String ( (:=) hash), _s " <hash> : Set hash type you want to
compute (ed2k, sig2dat,bp)";
+ "-hash", Arg2.String ( (:=) hash), _s " <hash> : Set hash type you want to
compute (ed2k, sig2dat, bp)";
"-sha1", Arg2.String (fun size ->
hash := "sha1";
chunk_size := Int64.of_string size;
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Mldonkey-commits] mldonkey distrib/ChangeLog src/utils/lib/md4.ml...,
mldonkey-commits <=