mldonkey-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Mldonkey-commits] Changes to mldonkey/src/networks/donkey/donkeyComplex


From: mldonkey-commits
Subject: [Mldonkey-commits] Changes to mldonkey/src/networks/donkey/donkeyComplexOptions.ml
Date: Thu, 01 Sep 2005 12:37:52 -0400

Index: mldonkey/src/networks/donkey/donkeyComplexOptions.ml
diff -u mldonkey/src/networks/donkey/donkeyComplexOptions.ml:1.33 
mldonkey/src/networks/donkey/donkeyComplexOptions.ml:1.34
--- mldonkey/src/networks/donkey/donkeyComplexOptions.ml:1.33   Fri Jul 22 
14:32:12 2005
+++ mldonkey/src/networks/donkey/donkeyComplexOptions.ml        Thu Sep  1 
16:37:51 2005
@@ -31,6 +31,7 @@
 open CommonTypes
 open CommonOptions
 open CommonGlobals
+open CommonResult
   
 open DonkeyTypes
 open DonkeyOptions
@@ -732,6 +733,45 @@
       ) !!brotherhood
     with _ -> ())
 
+let check_result r tags =
+  if r.result_names = [] || r.result_size = Int64.zero then begin
+      if !verbose then begin
+          lprintf_n () "BAD RESULT:";
+          List.iter (fun tag ->
+              lprintf "[%s] = [%s]" (string_of_field tag.tag_name)
+                (string_of_tag_value tag.tag_value);
+              lprint_newline ();
+          ) tags;
+        end;
+      false
+    end
+  else true
+
+(* Inserted in complexOptions to be able to access old_files (ugly) *)
+let result_of_file md4 tags =
+  let rec r = {  dummy_result with
+      result_uids = [Uid.create (Ed2k md4)];
+      result_done = (List.mem md4 !!old_files) || (Hashtbl.mem files_by_md4 
md4); 
+    } in
+  List.iter (fun tag ->
+      match tag with
+        { tag_name = Field_Filename; tag_value = String s } ->
+          r.result_names <- s :: r.result_names
+      | { tag_name = Field_Size; tag_value = Uint64 v } ->
+          r.result_size <- v;
+      | { tag_name = Field_Format; tag_value = String s } ->
+          r.result_tags <- tag :: r.result_tags;
+          r.result_format <- s
+      | { tag_name = Field_Type; tag_value = String s } ->
+          r.result_tags <- tag :: r.result_tags;
+          r.result_type <- s
+      | _ ->
+          r.result_tags <- tag :: r.result_tags
+  ) tags;
+  if check_result r tags then
+    let rs = update_result_num r in
+    Some rs
+  else None
     
   
 let _ =




reply via email to

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