[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Mldonkey-commits] mldonkey distrib/ChangeLog src/daemon/common/co...
From: |
mldonkey-commits |
Subject: |
[Mldonkey-commits] mldonkey distrib/ChangeLog src/daemon/common/co... |
Date: |
Sun, 03 Dec 2006 20:49:43 +0000 |
CVSROOT: /sources/mldonkey
Module name: mldonkey
Changes by: spiralvoice <spiralvoice> 06/12/03 20:49:43
Modified files:
distrib : ChangeLog
src/daemon/common: commonGlobals.ml commonInteractive.ml
commonSearch.ml commonTypes.ml
src/daemon/driver: driverInteractive.ml
src/gtk/newgui : gui_results.ml
src/gtk2/gui : guiMisc.ml
src/networks/direct_connect: dcInteractive.ml
src/networks/donkey: donkeyClient.ml donkeyImport.ml
donkeyInteractive.ml donkeyMain.ml
donkeyMftp.ml donkeyMftp.mli
donkeyPandora.ml donkeyProtoClient.ml
donkeyProtoKademlia.ml
donkeyProtoOvernet.ml donkeyProtoServer.ml
donkeyProtoUdp.ml donkeyServers.ml
donkeyUdp.ml
src/networks/fasttrack: fasttrackNetwork.ml fasttrackProto.ml
src/networks/opennap: opennapInteractive.ml
src/utils/cdk : string2.ml string2.mli
Log message:
patch #5609
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/mldonkey/distrib/ChangeLog?cvsroot=mldonkey&r1=1.1127&r2=1.1128
http://cvs.savannah.gnu.org/viewcvs/mldonkey/src/daemon/common/commonGlobals.ml?cvsroot=mldonkey&r1=1.77&r2=1.78
http://cvs.savannah.gnu.org/viewcvs/mldonkey/src/daemon/common/commonInteractive.ml?cvsroot=mldonkey&r1=1.86&r2=1.87
http://cvs.savannah.gnu.org/viewcvs/mldonkey/src/daemon/common/commonSearch.ml?cvsroot=mldonkey&r1=1.19&r2=1.20
http://cvs.savannah.gnu.org/viewcvs/mldonkey/src/daemon/common/commonTypes.ml?cvsroot=mldonkey&r1=1.64&r2=1.65
http://cvs.savannah.gnu.org/viewcvs/mldonkey/src/daemon/driver/driverInteractive.ml?cvsroot=mldonkey&r1=1.120&r2=1.121
http://cvs.savannah.gnu.org/viewcvs/mldonkey/src/gtk/newgui/gui_results.ml?cvsroot=mldonkey&r1=1.10&r2=1.11
http://cvs.savannah.gnu.org/viewcvs/mldonkey/src/gtk2/gui/guiMisc.ml?cvsroot=mldonkey&r1=1.21&r2=1.22
http://cvs.savannah.gnu.org/viewcvs/mldonkey/src/networks/direct_connect/dcInteractive.ml?cvsroot=mldonkey&r1=1.28&r2=1.29
http://cvs.savannah.gnu.org/viewcvs/mldonkey/src/networks/donkey/donkeyClient.ml?cvsroot=mldonkey&r1=1.113&r2=1.114
http://cvs.savannah.gnu.org/viewcvs/mldonkey/src/networks/donkey/donkeyImport.ml?cvsroot=mldonkey&r1=1.10&r2=1.11
http://cvs.savannah.gnu.org/viewcvs/mldonkey/src/networks/donkey/donkeyInteractive.ml?cvsroot=mldonkey&r1=1.142&r2=1.143
http://cvs.savannah.gnu.org/viewcvs/mldonkey/src/networks/donkey/donkeyMain.ml?cvsroot=mldonkey&r1=1.63&r2=1.64
http://cvs.savannah.gnu.org/viewcvs/mldonkey/src/networks/donkey/donkeyMftp.ml?cvsroot=mldonkey&r1=1.13&r2=1.14
http://cvs.savannah.gnu.org/viewcvs/mldonkey/src/networks/donkey/donkeyMftp.mli?cvsroot=mldonkey&r1=1.6&r2=1.7
http://cvs.savannah.gnu.org/viewcvs/mldonkey/src/networks/donkey/donkeyPandora.ml?cvsroot=mldonkey&r1=1.7&r2=1.8
http://cvs.savannah.gnu.org/viewcvs/mldonkey/src/networks/donkey/donkeyProtoClient.ml?cvsroot=mldonkey&r1=1.41&r2=1.42
http://cvs.savannah.gnu.org/viewcvs/mldonkey/src/networks/donkey/donkeyProtoKademlia.ml?cvsroot=mldonkey&r1=1.21&r2=1.22
http://cvs.savannah.gnu.org/viewcvs/mldonkey/src/networks/donkey/donkeyProtoOvernet.ml?cvsroot=mldonkey&r1=1.31&r2=1.32
http://cvs.savannah.gnu.org/viewcvs/mldonkey/src/networks/donkey/donkeyProtoServer.ml?cvsroot=mldonkey&r1=1.24&r2=1.25
http://cvs.savannah.gnu.org/viewcvs/mldonkey/src/networks/donkey/donkeyProtoUdp.ml?cvsroot=mldonkey&r1=1.16&r2=1.17
http://cvs.savannah.gnu.org/viewcvs/mldonkey/src/networks/donkey/donkeyServers.ml?cvsroot=mldonkey&r1=1.68&r2=1.69
http://cvs.savannah.gnu.org/viewcvs/mldonkey/src/networks/donkey/donkeyUdp.ml?cvsroot=mldonkey&r1=1.26&r2=1.27
http://cvs.savannah.gnu.org/viewcvs/mldonkey/src/networks/fasttrack/fasttrackNetwork.ml?cvsroot=mldonkey&r1=1.2&r2=1.3
http://cvs.savannah.gnu.org/viewcvs/mldonkey/src/networks/fasttrack/fasttrackProto.ml?cvsroot=mldonkey&r1=1.17&r2=1.18
http://cvs.savannah.gnu.org/viewcvs/mldonkey/src/networks/opennap/opennapInteractive.ml?cvsroot=mldonkey&r1=1.26&r2=1.27
http://cvs.savannah.gnu.org/viewcvs/mldonkey/src/utils/cdk/string2.ml?cvsroot=mldonkey&r1=1.9&r2=1.10
http://cvs.savannah.gnu.org/viewcvs/mldonkey/src/utils/cdk/string2.mli?cvsroot=mldonkey&r1=1.10&r2=1.11
Patches:
Index: distrib/ChangeLog
===================================================================
RCS file: /sources/mldonkey/mldonkey/distrib/ChangeLog,v
retrieving revision 1.1127
retrieving revision 1.1128
diff -u -b -r1.1127 -r1.1128
--- distrib/ChangeLog 3 Dec 2006 20:47:11 -0000 1.1127
+++ distrib/ChangeLog 3 Dec 2006 20:49:42 -0000 1.1128
@@ -15,6 +15,7 @@
=========
2006/12/03
+5609: New field type Field_KNOWN, EDK: recognize more HELLO/EmuleInfo tags
5610: CommonSources: Cleanups and reformatting the code (pango)
2006/12/02
Index: src/daemon/common/commonGlobals.ml
===================================================================
RCS file: /sources/mldonkey/mldonkey/src/daemon/common/commonGlobals.ml,v
retrieving revision 1.77
retrieving revision 1.78
diff -u -b -r1.77 -r1.78
--- src/daemon/common/commonGlobals.ml 28 Nov 2006 23:15:21 -0000 1.77
+++ src/daemon/common/commonGlobals.ml 3 Dec 2006 20:49:42 -0000 1.78
@@ -405,6 +405,7 @@
| Field_Lastseencomplete -> "lastcompl"
| Field_Medialength -> "mlen"
| Field_Mediacodec -> "mediacodec"
+ | Field_KNOWN s -> s
| Field_UNKNOWN s -> s
let field_of_string t =
@@ -426,10 +427,11 @@
| "lastcompl" -> Field_Lastseencomplete
| "mlen" -> Field_Medialength
| "mediacodec" -> Field_Mediacodec
- | _ -> Field_UNKNOWN t
+ | _ -> Field_KNOWN t
let escaped_string_of_field tag =
match tag.tag_name with
+ | Field_KNOWN s -> String.escaped s
| Field_UNKNOWN s -> String.escaped s
| t -> string_of_field t
@@ -438,6 +440,10 @@
Printf.sprintf " \"%s\" = %s" (escaped_string_of_field tag)
(string_of_tag_value tag.tag_value)
+let hexstring_of_tag tag =
+ Printf.sprintf " \"%s\" = %s" (String2.hex_string_of_string
(escaped_string_of_field tag))
+ (string_of_tag_value tag.tag_value)
+
let rec print_tags tags =
match tags with
[] -> ()
Index: src/daemon/common/commonInteractive.ml
===================================================================
RCS file: /sources/mldonkey/mldonkey/src/daemon/common/commonInteractive.ml,v
retrieving revision 1.86
retrieving revision 1.87
diff -u -b -r1.86 -r1.87
--- src/daemon/common/commonInteractive.ml 28 Nov 2006 23:52:17 -0000
1.86
+++ src/daemon/common/commonInteractive.ml 3 Dec 2006 20:49:42 -0000
1.87
@@ -714,7 +714,7 @@
| Q_MP3_BITRATE _ ->
let bitrate = get_arg "bitrate" in
if bitrate = "" then raise Not_found;
- QHasMinVal(Field_UNKNOWN "bitrate", Int64.of_string bitrate)
+ QHasMinVal(Field_KNOWN "bitrate", Int64.of_string bitrate)
in
try
@@ -874,14 +874,14 @@
| QHasMinVal (field, value) ->
begin
match field with
- Field_UNKNOWN "bitrate"
+ Field_KNOWN "bitrate"
| Field_Size
| _ -> ()
end
| QHasMaxVal (field, value) ->
begin
match field with
- Field_UNKNOWN "bitrate"
+ Field_KNOWN "bitrate"
| Field_Size
| _ -> ()
end
Index: src/daemon/common/commonSearch.ml
===================================================================
RCS file: /sources/mldonkey/mldonkey/src/daemon/common/commonSearch.ml,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -b -r1.19 -r1.20
--- src/daemon/common/commonSearch.ml 26 Nov 2006 13:54:09 -0000 1.19
+++ src/daemon/common/commonSearch.ml 3 Dec 2006 20:49:42 -0000 1.20
@@ -113,7 +113,7 @@
| "-album" :: format :: args ->
iter args ((QHasField(Field_Album, format)) :: q)
| "-field" :: field :: format :: args ->
- iter args ((QHasField(Field_UNKNOWN field, format)) :: q)
+ iter args ((QHasField(Field_KNOWN field, format)) :: q)
| "-network" :: name :: args ->
net := (network_find_by_name name).network_num;
iter args q
@@ -892,7 +892,7 @@
try
let bitrate = Int64.of_string s
in
- QHasMinVal(Field_UNKNOWN "bitrate", bitrate)
+ QHasMinVal(Field_KNOWN "bitrate", bitrate)
with _ -> QNone
end
Index: src/daemon/common/commonTypes.ml
===================================================================
RCS file: /sources/mldonkey/mldonkey/src/daemon/common/commonTypes.ml,v
retrieving revision 1.64
retrieving revision 1.65
diff -u -b -r1.64 -r1.65
--- src/daemon/common/commonTypes.ml 26 Nov 2006 16:36:29 -0000 1.64
+++ src/daemon/common/commonTypes.ml 3 Dec 2006 20:49:42 -0000 1.65
@@ -265,6 +265,7 @@
| Field_Lastseencomplete
| Field_Mediacodec
| Field_Medialength
+| Field_KNOWN of string
| Field_UNKNOWN of string
type tag = {
Index: src/daemon/driver/driverInteractive.ml
===================================================================
RCS file: /sources/mldonkey/mldonkey/src/daemon/driver/driverInteractive.ml,v
retrieving revision 1.120
retrieving revision 1.121
diff -u -b -r1.120 -r1.121
--- src/daemon/driver/driverInteractive.ml 1 Dec 2006 13:52:24 -0000
1.120
+++ src/daemon/driver/driverInteractive.ml 3 Dec 2006 20:49:42 -0000
1.121
@@ -1268,7 +1268,7 @@
let nl = ref false in
List.iter (fun t ->
match t.tag_name with
- | Field_UNKNOWN "FTH" | Field_UNKNOWN "urn" -> ()
+ | Field_KNOWN "FTH" | Field_KNOWN "urn" -> ()
| _ ->
Buffer.add_string buf ((if !nl then "<br>" else
begin nl := true;"" end) ^
escaped_string_of_field t ^ ": " ^
get_tag_value t);
@@ -1284,7 +1284,7 @@
let nl = ref false in
List.iter (fun t ->
match t.tag_name with
- | Field_UNKNOWN "FTH" | Field_UNKNOWN "urn" -> ()
+ | Field_KNOWN "FTH" | Field_KNOWN "urn" -> ()
| _ ->
Buffer.add_string buf ((if !nl then "\n" else
begin nl := true;"" end) ^
"|| (" ^
@@ -1340,8 +1340,8 @@
let cformat = ref "" in
List.iter (fun t ->
(match t.tag_name with
- | Field_UNKNOWN "urn"
- | Field_UNKNOWN "FTH" -> hash := get_tag_value t
+ | Field_KNOWN "urn"
+ | Field_KNOWN "FTH" -> hash := get_tag_value t
| Field_Availability -> cavail := get_tag_value t
| Field_Completesources -> csource := get_tag_value t
| Field_Length -> clength := get_tag_value t
@@ -1392,9 +1392,9 @@
| Field_Format
| Field_Bitrate
(* TODO : "urn" shouldn't be some kind of Field_Uid of Gnutella ? *)
- | Field_UNKNOWN "urn"
+ | Field_KNOWN "urn"
(* TODO : "FTH" shouldn't be some kind of Field_Uid of Fasttrack ? *)
- | Field_UNKNOWN "FTH" -> ()
+ | Field_KNOWN "FTH" -> ()
| _ ->
Buffer.add_string buf ("\\<span title=\\\"" ^
get_tag_value t ^ "\\\"\\>(" ^
Index: src/gtk/newgui/gui_results.ml
===================================================================
RCS file: /sources/mldonkey/mldonkey/src/gtk/newgui/gui_results.ml,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -b -r1.10 -r1.11
--- src/gtk/newgui/gui_results.ml 20 Jul 2006 16:56:42 -0000 1.10
+++ src/gtk/newgui/gui_results.ml 3 Dec 2006 20:49:42 -0000 1.11
@@ -289,7 +289,7 @@
let value = ref "" in
List.iter (fun t ->
match t.tag_name with
- Field_UNKNOWN "codec" -> value := string_of_tag_value t.tag_value
+ Field_KNOWN "codec" -> value := string_of_tag_value t.tag_value
| _ -> ()
) tags;
!value
@@ -298,7 +298,7 @@
let value = ref 0 in
List.iter (fun t ->
match t.tag_name with
- Field_UNKNOWN "bitrate" -> value := int_of_tag_value t.tag_value
+ Field_KNOWN "bitrate" -> value := int_of_tag_value t.tag_value
| _ -> ()
) tags;
!value
Index: src/gtk2/gui/guiMisc.ml
===================================================================
RCS file: /sources/mldonkey/mldonkey/src/gtk2/gui/guiMisc.ml,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -b -r1.21 -r1.22
--- src/gtk2/gui/guiMisc.ml 2 Dec 2006 12:35:46 -0000 1.21
+++ src/gtk2/gui/guiMisc.ml 3 Dec 2006 20:49:42 -0000 1.22
@@ -1055,7 +1055,7 @@
| Field_Mediacodec -> "codec"
| Field_Lastseencomplete -> "lastseencompl"
| Field_Filerating -> "rating"
- | Field_UNKNOWN s -> U.simple_utf8_of s
+ | Field_KNOWN s -> U.simple_utf8_of s
let tags_to_string tags =
let s = ref "" in
Index: src/networks/direct_connect/dcInteractive.ml
===================================================================
RCS file:
/sources/mldonkey/mldonkey/src/networks/direct_connect/dcInteractive.ml,v
retrieving revision 1.28
retrieving revision 1.29
diff -u -b -r1.28 -r1.29
--- src/networks/direct_connect/dcInteractive.ml 1 Oct 2006 17:54:00
-0000 1.28
+++ src/networks/direct_connect/dcInteractive.ml 3 Dec 2006 20:49:42
-0000 1.29
@@ -248,13 +248,13 @@
P.user_tags = (
let list = if user.user_data > 1. then
[
- { tag_name = Field_UNKNOWN "link"; tag_value = String
user.user_link };
- { tag_name = Field_UNKNOWN "shared"; tag_value = String (
+ { tag_name = Field_KNOWN "link"; tag_value = String
user.user_link };
+ { tag_name = Field_KNOWN "shared"; tag_value = String (
Printf.sprintf "%12.0f" user.user_data) }
] else []
in
if user.user_admin then
- { tag_name = Field_UNKNOWN "admin"; tag_value = String "admin" }
:: list
+ { tag_name = Field_KNOWN "admin"; tag_value = String "admin" } ::
list
else list
);
Index: src/networks/donkey/donkeyClient.ml
===================================================================
RCS file: /sources/mldonkey/mldonkey/src/networks/donkey/donkeyClient.ml,v
retrieving revision 1.113
retrieving revision 1.114
diff -u -b -r1.113 -r1.114
--- src/networks/donkey/donkeyClient.ml 2 Dec 2006 12:35:46 -0000 1.113
+++ src/networks/donkey/donkeyClient.ml 3 Dec 2006 20:49:42 -0000 1.114
@@ -606,7 +606,7 @@
List.iter (fun tag ->
let s = to_lowercase (string_of_tag_value tag.tag_value) in
match tag.tag_name with
- Field_UNKNOWN "mod_version" ->
+ Field_KNOWN "mod_version" ->
begin
let rec iter i len =
if i < len then
@@ -671,22 +671,14 @@
let module M = DonkeyProtoClient in
List.iter (fun tag ->
match tag.tag_name with
- | Field_UNKNOWN "name"
- | Field_UNKNOWN "port"
- | Field_UNKNOWN "version"
- | Field_UNKNOWN "buddy_ip"
- | Field_UNKNOWN "buddy_udp"
- | Field_UNKNOWN "mod_plus"
- | Field_UNKNOWN "l2hac"
- | Field_UNKNOWN "udpport" -> ()
- | Field_UNKNOWN "emule_udpports" ->
+ | Field_KNOWN "emule_udpports" ->
for_two_int16_tag tag (fun ed2k_port kad_port ->
(* Kademlia: we should use this client to bootstrap Kademlia *)
if kad_port <> 0 && !!enable_kademlia then
DonkeyProtoKademlia.Kademlia.bootstrap
c.client_ip kad_port
)
- | Field_UNKNOWN "emule_miscoptions1" ->
+ | Field_KNOWN "emule_miscoptions1" ->
for_int64_tag tag (fun i ->
M.update_emule_proto_from_miscoptions1
c.client_emule_proto i;
@@ -695,7 +687,7 @@
(full_client_identifier c)
(M.print_emule_proto_miscoptions1 c.client_emule_proto)
)
- | Field_UNKNOWN "emule_miscoptions2" ->
+ | Field_KNOWN "emule_miscoptions2" ->
for_int64_tag tag (fun i ->
M.update_emule_proto_from_miscoptions2
c.client_emule_proto i;
@@ -704,12 +696,12 @@
(full_client_identifier c)
(M.print_emule_proto_miscoptions2 c.client_emule_proto)
)
- | Field_UNKNOWN "emule_compatoptions" ->
+ | Field_KNOWN "emule_compatoptions" ->
for_int_tag tag (fun i ->
M.update_emule_proto_from_compatoptions
c.client_emule_proto i
)
- | Field_UNKNOWN "emule_version" ->
+ | Field_KNOWN "emule_version" ->
for_int_tag tag (fun i ->
c.client_emule_proto.emule_version <- i;
let compatibleclient = (i lsr 24) in
@@ -719,59 +711,62 @@
if c.client_brand = Brand_unknown then
lprintf_nl "[emule_version] Brand_unknown %s"
(full_client_identifier c);
)
- | Field_UNKNOWN "mod_version" ->
+ | Field_KNOWN "mod_version" ->
let s = to_lowercase (string_of_tag_value tag.tag_value) in
parse_mod_version s c
- | _ ->
- lprintf_nl "update_client_from_tags, unknown tag: [%s] (%s)"
(string_of_tag tag) (full_client_identifier c)
+ | Field_KNOWN _ -> if !verbose_unknown_messages then
+ lprintf_nl "update_client_from_tags, known tag: [%s] (%s)"
(string_of_tag tag) (full_client_identifier c)
+ | _ -> if not (DonkeySources.source_brand c.client_source) then
+ lprintf_nl "update_client_from_tags, unknown tag: [%s] (%s) %s"
+ (hexstring_of_tag tag) (full_client_identifier c)
(string_of_tags_list tags)
) tags
let update_emule_proto_from_tags c tags =
List.iter (fun tag ->
match tag.tag_name with
- Field_UNKNOWN "compatibleclient" ->
+ Field_KNOWN "compatibleclient" ->
for_int_tag tag (fun i ->
c.client_brand <- parse_compatible_client i c.client_brand;
if c.client_brand = Brand_unknown then
lprintf_nl "unknown compatibleclient %d (%s) (please report to
dev team)" i (full_client_identifier c)
)
- | Field_UNKNOWN "compression" ->
+ | Field_KNOWN "compression" ->
for_int_tag tag (fun i ->
c.client_emule_proto.emule_compression <- i
)
- | Field_UNKNOWN "udpver" ->
+ | Field_KNOWN "udpver" ->
for_int_tag tag (fun i ->
c.client_emule_proto.emule_udpver <- i
)
- | Field_UNKNOWN "sourceexchange" ->
+ | Field_KNOWN "sourceexchange" ->
for_int_tag tag (fun i ->
c.client_emule_proto.emule_sourceexchange <- i
)
- | Field_UNKNOWN "comments" ->
+ | Field_KNOWN "comments" ->
for_int_tag tag (fun i ->
c.client_emule_proto.emule_comments <- i
)
- | Field_UNKNOWN "extendedrequest" ->
+ | Field_KNOWN "extendedrequest" ->
for_int_tag tag (fun i ->
c.client_emule_proto.emule_extendedrequest <- i
)
- | Field_UNKNOWN "features" ->
+ | Field_KNOWN "features" ->
for_int_tag tag (fun i ->
c.client_emule_proto.emule_secident <- i land 0x3
)
- | Field_UNKNOWN "mod_version" ->
+ | Field_KNOWN "mod_version" ->
parse_mod_version (to_lowercase (string_of_tag_value tag.tag_value))
c;
- | Field_UNKNOWN "os_info" ->
+ | Field_KNOWN "os_info" ->
let s = to_lowercase (string_of_tag_value tag.tag_value) in
(match c.client_osinfo with
Some _ -> ()
| _ -> if s <> "" then c.client_osinfo <- Some s)
- | Field_UNKNOWN "udpport"
- | Field_UNKNOWN "mod_plus"
- | Field_UNKNOWN "l2hac" -> ()
- | _ ->
- lprintf_nl "update_emule_proto_from_tags, unknown tag: [%s] (%s)"
(string_of_tag tag) (full_client_identifier c)
+ | Field_KNOWN _ -> if !verbose_unknown_messages then
+ lprintf_nl "update_emule_proto_from_tags, known tag: [%s] (%s)"
(string_of_tag tag) (full_client_identifier c)
+ | _ -> if not (DonkeySources.source_brand c.client_source) then
+ lprintf_nl "update_emule_proto_from_tags, unknown tag: [%s] (%s)
%s"
+ (hexstring_of_tag tag) (full_client_identifier c)
(string_of_tags_list tags)
) tags
let fight_disguised_mods c =
@@ -792,7 +787,7 @@
emule_info with
DonkeyProtoClient.EmuleClientInfo.protversion = 255;
DonkeyProtoClient.EmuleClientInfo.tags = [
- string_tag (Field_UNKNOWN "os_info") (String2.upp_initial
Autoconf.system);
+ string_tag (Field_KNOWN "os_info") (String2.upp_initial
Autoconf.system);
]} in
client_send c (DonkeyProtoClient.EmuleClientInfoReq emule_osinfo);
c.client_osinfo_sent <- true
@@ -1181,7 +1176,7 @@
List.iter (fun tag ->
match tag with
- { tag_name = Field_UNKNOWN "name"; tag_value = String s } ->
+ { tag_name = Field_KNOWN "name"; tag_value = String s } ->
set_client_name c s t.CR.md4
| _ -> ()
) c.client_tags;
@@ -2214,7 +2209,7 @@
let name = ref "" in
List.iter (fun tag ->
match tag with
- { tag_name = Field_UNKNOWN "name"; tag_value = String s } -> name
:= s
+ { tag_name = Field_KNOWN "name"; tag_value = String s } -> name :=
s
| _ -> ()
) t.CR.tags;
Index: src/networks/donkey/donkeyImport.ml
===================================================================
RCS file: /sources/mldonkey/mldonkey/src/networks/donkey/donkeyImport.ml,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -b -r1.10 -r1.11
--- src/networks/donkey/donkeyImport.ml 14 Nov 2006 18:42:59 -0000 1.10
+++ src/networks/donkey/donkeyImport.ml 3 Dec 2006 20:49:42 -0000 1.11
@@ -56,26 +56,26 @@
let names_of_tag =
(* eMule sourcefile opcodes.h //server.met *)
[
- "\001", Field_UNKNOWN "name"; (* 0x01 string *)
- "\011", Field_UNKNOWN "description"; (* 0x0B string *)
- "\012", Field_UNKNOWN "ping"; (* 0x0C uint32 *)
- "\013", Field_UNKNOWN "history"; (* 0x0D ST_FAIL *)
- "\014", Field_UNKNOWN "prof"; (* 0x0E ST_PREFERENCE *)
- "\015", Field_UNKNOWN "port"; (* 0x0F uint32 *)
- "\016", Field_UNKNOWN "ip"; (* 0x10 uint32 *)
- "\133", Field_UNKNOWN "dynip"; (* 0x85 string *)
- "\135", Field_UNKNOWN "maxusers"; (* 0x87 uint32 *)
- "\136", Field_UNKNOWN "softfiles"; (* 0x88 uint32 *)
- "\137", Field_UNKNOWN "hardfiles"; (* 0x89 uint32 *)
- "\144", Field_UNKNOWN "lastping"; (* 0x90 uint32 *)
- "\145", Field_UNKNOWN "version"; (* 0x91 string|uint32 *)
- "\146", Field_UNKNOWN "udpflags"; (* 0x92 uint32 *)
- "\147", Field_UNKNOWN "auxportslist"; (* 0x93 string *)
- "\148", Field_UNKNOWN "lowidusers"; (* 0x94 uint32 *)
- "\149", Field_UNKNOWN "udpkey"; (* 0x95 uint32 *)
- "\150", Field_UNKNOWN "udpkeyip"; (* 0x96 uint32 *)
- "\151", Field_UNKNOWN "tcpportobfuscation"; (* 0x97 uint16 *)
- "\152", Field_UNKNOWN "udpportobfuscation"; (* 0x98 uint16 *)
+ "\001", Field_KNOWN "name"; (* 0x01 string *)
+ "\011", Field_KNOWN "description"; (* 0x0B string *)
+ "\012", Field_KNOWN "ping"; (* 0x0C uint32 *)
+ "\013", Field_KNOWN "history"; (* 0x0D ST_FAIL *)
+ "\014", Field_KNOWN "prof"; (* 0x0E ST_PREFERENCE *)
+ "\015", Field_KNOWN "port"; (* 0x0F uint32 *)
+ "\016", Field_KNOWN "ip"; (* 0x10 uint32 *)
+ "\133", Field_KNOWN "dynip"; (* 0x85 string *)
+ "\135", Field_KNOWN "maxusers"; (* 0x87 uint32 *)
+ "\136", Field_KNOWN "softfiles"; (* 0x88 uint32 *)
+ "\137", Field_KNOWN "hardfiles"; (* 0x89 uint32 *)
+ "\144", Field_KNOWN "lastping"; (* 0x90 uint32 *)
+ "\145", Field_KNOWN "version"; (* 0x91 string|uint32 *)
+ "\146", Field_KNOWN "udpflags"; (* 0x92 uint32 *)
+ "\147", Field_KNOWN "auxportslist"; (* 0x93 string *)
+ "\148", Field_KNOWN "lowidusers"; (* 0x94 uint32 *)
+ "\149", Field_KNOWN "udpkey"; (* 0x95 uint32 *)
+ "\150", Field_KNOWN "udpkeyip"; (* 0x96 uint32 *)
+ "\151", Field_KNOWN "tcpportobfuscation"; (* 0x97 uint16 *)
+ "\152", Field_KNOWN "udpportobfuscation"; (* 0x98 uint16 *)
]
@@ -204,12 +204,12 @@
let names_of_tag =
[
- "\008", Field_UNKNOWN "downloaded";
- "\018", Field_UNKNOWN "diskname";
- "\019", Field_UNKNOWN "priority";
- "\020", Field_UNKNOWN "status";
- "\t", Field_UNKNOWN "start_pos";
- "\n", Field_UNKNOWN "absent";
+ "\008", Field_KNOWN "downloaded";
+ "\018", Field_KNOWN "diskname";
+ "\019", Field_KNOWN "priority";
+ "\020", Field_KNOWN "status";
+ "\t", Field_KNOWN "start_pos";
+ "\n", Field_KNOWN "absent";
] @ file_common_tags
@@ -231,8 +231,8 @@
List.iter (fun tag ->
let s = tag.tag_name in
match s, tag.tag_value with
- Field_UNKNOWN "start_pos", Uint64 p -> start_pos := p;
- | Field_UNKNOWN "absent", Uint64 p ->
+ Field_KNOWN "start_pos", Uint64 p -> start_pos := p;
+ | Field_KNOWN "absent", Uint64 p ->
absents := (!start_pos, p) :: !absents;
| _ -> ()
) tags;
@@ -285,9 +285,9 @@
let names_of_client_tag =
[
- "\001", Field_UNKNOWN "name";
- "\017", Field_UNKNOWN "version";
- "\015", Field_UNKNOWN "port";
+ "\001", Field_KNOWN "name";
+ "\017", Field_KNOWN "version";
+ "\015", Field_KNOWN "port";
]
let names_of_option_tag = []
Index: src/networks/donkey/donkeyInteractive.ml
===================================================================
RCS file: /sources/mldonkey/mldonkey/src/networks/donkey/donkeyInteractive.ml,v
retrieving revision 1.142
retrieving revision 1.143
diff -u -b -r1.142 -r1.143
--- src/networks/donkey/donkeyInteractive.ml 2 Dec 2006 12:35:46 -0000
1.142
+++ src/networks/donkey/donkeyInteractive.ml 3 Dec 2006 20:49:42 -0000
1.143
@@ -113,44 +113,44 @@
let server = check_add_server r.S.ip r.S.port in
List.iter (fun tag ->
match tag with
- | { tag_name = Field_UNKNOWN "name"; tag_value = String s } ->
+ | { tag_name = Field_KNOWN "name"; tag_value = String s } ->
server.server_name <- s;
- | { tag_name = Field_UNKNOWN "description" ; tag_value = String
s } ->
+ | { tag_name = Field_KNOWN "description" ; tag_value = String s
} ->
server.server_description <- s
- | { tag_name = Field_UNKNOWN "version" ; tag_value = Uint64 s }
->
+ | { tag_name = Field_KNOWN "version" ; tag_value = Uint64 s } ->
server.server_version <- Printf.sprintf "%d.%d"
((Int64.to_int s) lsr 16)
((Int64.to_int s) land 0xFFFF)
- | { tag_name = Field_UNKNOWN "ping" ; tag_value = Uint64 s } ->
+ | { tag_name = Field_KNOWN "ping" ; tag_value = Uint64 s } ->
server.server_ping <- (Int64.to_int s)
- | { tag_name = Field_UNKNOWN "dynip" ; tag_value = String s } ->
+ | { tag_name = Field_KNOWN "dynip" ; tag_value = String s } ->
server.server_dynip <- s
- | { tag_name = Field_UNKNOWN "users" ; tag_value = Uint64 s } ->
+ | { tag_name = Field_KNOWN "users" ; tag_value = Uint64 s } ->
(match server.server_nusers with
| None -> server.server_nusers <- Some s | _ -> ())
- | { tag_name = Field_UNKNOWN "files" ; tag_value = Uint64 s } ->
+ | { tag_name = Field_KNOWN "files" ; tag_value = Uint64 s } ->
(match server.server_nfiles with
| None -> server.server_nfiles <- Some s | _ -> ())
- | { tag_name = Field_UNKNOWN "maxusers" ; tag_value = Uint64 s
} ->
+ | { tag_name = Field_KNOWN "maxusers" ; tag_value = Uint64 s }
->
(match server.server_max_users with
| None -> server.server_max_users <- Some s | _ -> ())
- | { tag_name = Field_UNKNOWN "softfiles" ; tag_value = Uint64 s
} ->
+ | { tag_name = Field_KNOWN "softfiles" ; tag_value = Uint64 s }
->
(match server.server_soft_limit with
| None -> server.server_soft_limit <- Some s | _ -> ())
- | { tag_name = Field_UNKNOWN "hardfiles" ; tag_value = Uint64 s
} ->
+ | { tag_name = Field_KNOWN "hardfiles" ; tag_value = Uint64 s }
->
(match server.server_hard_limit with
| None -> server.server_hard_limit <- Some s | _ -> ())
- | { tag_name = Field_UNKNOWN "auxportslist" ; tag_value =
String s } ->
+ | { tag_name = Field_KNOWN "auxportslist" ; tag_value = String
s } ->
server.server_auxportslist <- s
- | { tag_name = Field_UNKNOWN "lowusers" ; tag_value = Uint64 s
} ->
+ | { tag_name = Field_KNOWN "lowusers" ; tag_value = Uint64 s }
->
(match server.server_lowid_users with
| None -> server.server_lowid_users <- Some s | _ -> ())
- | { tag_name = Field_UNKNOWN "tcpportobfuscation" ; tag_value =
Uint64 s } ->
+ | { tag_name = Field_KNOWN "tcpportobfuscation" ; tag_value =
Uint64 s } ->
server.server_obfuscation_tcp <- Some (Int64.to_int s)
- | { tag_name = Field_UNKNOWN "udpportobfuscation" ; tag_value =
Uint64 s } ->
+ | { tag_name = Field_KNOWN "udpportobfuscation" ; tag_value =
Uint64 s } ->
server.server_obfuscation_udp <- Some (Int64.to_int s)
- | { tag_name = Field_UNKNOWN "country" ; tag_value = String s }
-> ()
- | { tag_name = Field_UNKNOWN "udpflags" ; tag_value = Uint64 s
} -> ()
- | { tag_name = Field_UNKNOWN "refs" ; tag_value = Uint64 s }
-> ()
+ | { tag_name = Field_KNOWN "country" ; tag_value = String s }
-> ()
+ | { tag_name = Field_KNOWN "udpflags" ; tag_value = Uint64 s }
-> ()
+ | { tag_name = Field_KNOWN "refs" ; tag_value = Uint64 s } ->
()
| _ -> lprintf_nl "parsing server.met, unknown field %s"
(string_of_tag tag)
) r.S.tags;
server_must_update server
@@ -448,16 +448,16 @@
List.iter (fun tag ->
match tag with
- | { tag_name = Field_UNKNOWN "name"; tag_value = String s } ->
+ | { tag_name = Field_KNOWN "name"; tag_value = String s } ->
login =:= s
- | { tag_name = Field_UNKNOWN "port"; tag_value = Uint64 v } ->
+ | { tag_name = Field_KNOWN "port"; tag_value = Uint64 v } ->
donkey_port =:= Int64.to_int v
| _ -> ()
) ct;
List.iter (fun tag ->
match tag with
- | { tag_name = Field_UNKNOWN "temp"; tag_value = String s } ->
+ | { tag_name = Field_KNOWN "temp"; tag_value = String s } ->
if Sys.file_exists s then (* be careful on that *)
temp_dir := s
else (lprintf_nl "Bad temp directory, using default";
Index: src/networks/donkey/donkeyMain.ml
===================================================================
RCS file: /sources/mldonkey/mldonkey/src/networks/donkey/donkeyMain.ml,v
retrieving revision 1.63
retrieving revision 1.64
diff -u -b -r1.63 -r1.64
--- src/networks/donkey/donkeyMain.ml 26 Nov 2006 16:36:29 -0000 1.63
+++ src/networks/donkey/donkeyMain.ml 3 Dec 2006 20:49:42 -0000 1.64
@@ -137,14 +137,14 @@
let emule_compatoptions = D.emule_compatoptions m in
client_to_client_tags :=
[
- string_tag (Field_UNKNOWN "name") (local_login ());
- int_tag (Field_UNKNOWN "port") !!donkey_port;
- int_tag (Field_UNKNOWN "version") protocol_version;
- int_tag (Field_UNKNOWN "emule_udpports") (!!donkey_port+4);
- int_tag (Field_UNKNOWN "emule_version") m.emule_version;
- int64_tag (Field_UNKNOWN "emule_miscoptions1") emule_miscoptions1;
- int64_tag (Field_UNKNOWN "emule_miscoptions2") emule_miscoptions2;
- int_tag (Field_UNKNOWN "emule_compatoptions") emule_compatoptions;
+ string_tag (Field_KNOWN "name") (local_login ());
+ int_tag (Field_KNOWN "port") !!donkey_port;
+ int_tag (Field_KNOWN "version") protocol_version;
+ int_tag (Field_KNOWN "emule_udpports") (!!donkey_port+4);
+ int_tag (Field_KNOWN "emule_version") m.emule_version;
+ int64_tag (Field_KNOWN "emule_miscoptions1") emule_miscoptions1;
+ int64_tag (Field_KNOWN "emule_miscoptions2") emule_miscoptions2;
+ int_tag (Field_KNOWN "emule_compatoptions") emule_compatoptions;
];
(* server capabilities *)
@@ -161,42 +161,42 @@
client_to_server_tags :=
[
- string_tag (Field_UNKNOWN "name") (local_login ());
- int_tag (Field_UNKNOWN "version") protocol_version;
- int_tag (Field_UNKNOWN "extended") !extended;
- int_tag (Field_UNKNOWN "emule_version") m.emule_version;
+ string_tag (Field_KNOWN "name") (local_login ());
+ int_tag (Field_KNOWN "version") protocol_version;
+ int_tag (Field_KNOWN "extended") !extended;
+ int_tag (Field_KNOWN "emule_version") m.emule_version;
];
client_to_server_reply_tags :=
[
- string_tag (Field_UNKNOWN "name") (local_login ());
- int_tag (Field_UNKNOWN "version") protocol_version;
- int_tag (Field_UNKNOWN "emule_udpports") (!!donkey_port+4);
- int64_tag (Field_UNKNOWN "emule_miscoptions1") emule_miscoptions1;
- int64_tag (Field_UNKNOWN "emule_miscoptions2") emule_miscoptions2;
- int_tag (Field_UNKNOWN "emule_version") m.emule_version;
+ string_tag (Field_KNOWN "name") (local_login ());
+ int_tag (Field_KNOWN "version") protocol_version;
+ int_tag (Field_KNOWN "emule_udpports") (!!donkey_port+4);
+ int64_tag (Field_KNOWN "emule_miscoptions1") emule_miscoptions1;
+ int64_tag (Field_KNOWN "emule_miscoptions2") emule_miscoptions2;
+ int_tag (Field_KNOWN "emule_version") m.emule_version;
];
emule_info.DonkeyProtoClient.EmuleClientInfo.tags <- [
- int_tag (Field_UNKNOWN "compression") m.emule_compression;
- int_tag (Field_UNKNOWN "udpver") m.emule_udpver;
- int_tag (Field_UNKNOWN "udpport") (!!donkey_port+4);
- int_tag (Field_UNKNOWN "sourceexchange") m.emule_sourceexchange;
- int_tag (Field_UNKNOWN "comments") m.emule_comments;
- int_tag (Field_UNKNOWN "compatibleclient")
!DonkeyProtoClient.compatibleclient;
- int_tag (Field_UNKNOWN "extendedrequest") m.emule_extendedrequest;
- int_tag (Field_UNKNOWN "features") m.emule_features;
+ int_tag (Field_KNOWN "compression") m.emule_compression;
+ int_tag (Field_KNOWN "udpver") m.emule_udpver;
+ int_tag (Field_KNOWN "udpport") (!!donkey_port+4);
+ int_tag (Field_KNOWN "sourceexchange") m.emule_sourceexchange;
+ int_tag (Field_KNOWN "comments") m.emule_comments;
+ int_tag (Field_KNOWN "compatibleclient")
!DonkeyProtoClient.compatibleclient;
+ int_tag (Field_KNOWN "extendedrequest") m.emule_extendedrequest;
+ int_tag (Field_KNOWN "features") m.emule_features;
];
overnet_connect_tags :=
[
- string_tag (Field_UNKNOWN "name") (local_login ());
- int_tag (Field_UNKNOWN "version")
!!DonkeyProtoOvernet.overnet_protocol_connect_version;
+ string_tag (Field_KNOWN "name") (local_login ());
+ int_tag (Field_KNOWN "version")
!!DonkeyProtoOvernet.overnet_protocol_connect_version;
];
overnet_connectreply_tags :=
[
- string_tag (Field_UNKNOWN "name") (local_login ());
- int_tag (Field_UNKNOWN "version")
!!DonkeyProtoOvernet.overnet_protocol_connectreply_version;
+ string_tag (Field_KNOWN "name") (local_login ());
+ int_tag (Field_KNOWN "version")
!!DonkeyProtoOvernet.overnet_protocol_connectreply_version;
]
let enable () =
Index: src/networks/donkey/donkeyMftp.ml
===================================================================
RCS file: /sources/mldonkey/mldonkey/src/networks/donkey/donkeyMftp.ml,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -b -r1.13 -r1.14
--- src/networks/donkey/donkeyMftp.ml 9 Feb 2006 11:45:12 -0000 1.13
+++ src/networks/donkey/donkeyMftp.ml 3 Dec 2006 20:49:42 -0000 1.14
@@ -179,7 +179,9 @@
List.assoc name names_of_tag
with Not_found ->
(* lprintf "Unknown tag \"%s\"\n" (String.escaped name); *)
- field_of_string name);
+ match field_of_string name with
+ | Field_KNOWN s -> Field_UNKNOWN s
+ | field -> field);
tag_value = v
}, pos
@@ -223,3 +225,74 @@
"Album", Field_Album;
"Title", Field_Title;
]
+
+let client_common_tags =
+ [
+ "\001", "name";
+ "\015", "port";
+ "\017", "version";
+ "\031", "udpport";
+ "\032", "compression";
+ "\033", "udpport";
+ "\034", "udpver";
+ "\035", "sourceexchange";
+ "\036", "comments";
+ "\037", "extendedrequest";
+ "\038", "compatibleclient";
+ "\039", "features";
+ "\059", "extrainfo";
+ "\060", "downloadtime";
+ "\061", "incompleteparts";
+ "\062", "l2hac";
+ "\063", "realparts";
+ "\065", "mod_unknown41";
+ "\066", "mod_unknown42";
+ "\067", "mod_unknown43";
+ "\078", "neo_features";
+ "\084", "mod_featureset";
+ "\085", "mod_version";
+ "\086", "mod_protocol";
+ "\090", "mod_bowlfish";
+ "\092", "mod_secure_community";
+ "\093", "mod_unknown0x5d";
+ "\096", "mod_unknown0x60";
+ "\102", "mod_fusion";
+ "\103", "mod_fusion_version";
+
+(*
http://forums.shareaza.com/showthread.php?threadid=37323&perpage=15&pagenumber=2
*)
+ "\105", "edonkeyclc serverip?";
+ "\106", "edonkeyclc serverport?";
+
+ "\118", "mod_unknown0x76";
+ "\119", "mod_tarod";
+ "\120", "mod_tarod_version";
+ "\121", "mod_morph";
+ "\128", "mod_morph_version";
+ "\130", "mod_mortillo";
+ "\131", "mod_mortillo_version";
+ "\132", "chanblard_version";
+ "\133", "signature";
+ "\134", "cache";
+ "\135", "mod_lsd";
+ "\136", "mod_lsd_version";
+ "\144", "mod_lovelace_version";
+ "\148", "os_info"; (* reused by aMule to transfer client OS type *)
+ "\153", "mod_plus";
+ "\160", "mod_wombat";
+ "\161", "dev_wombat";
+ "\170", "koizo"; (* http://sourceforge.net/projects/koizo *)
+ "\205", "mod_unknown0xcd";
+ "\224", "isp_bypass";
+ "\225", "nat_tunneling";
+ "\239", "emule_compatoptions";
+ "\240", "nat_security";
+ "\249", "emule_udpports";
+ "\250", "emule_miscoptions1";
+ "\251", "emule_version";
+ "\252", "buddy_ip";
+ "\253", "buddy_udp";
+ "\254", "emule_miscoptions2";
+ "pr", "edonkeyclc horde";
+ "wombia", "wombat a";
+ "wombib", "wombat b";
+ ]
Index: src/networks/donkey/donkeyMftp.mli
===================================================================
RCS file: /sources/mldonkey/mldonkey/src/networks/donkey/donkeyMftp.mli,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -b -r1.6 -r1.7
--- src/networks/donkey/donkeyMftp.mli 19 Jan 2006 00:44:47 -0000 1.6
+++ src/networks/donkey/donkeyMftp.mli 3 Dec 2006 20:49:42 -0000 1.7
@@ -52,3 +52,4 @@
val write : Buffer.t -> t -> unit
end
val file_common_tags : (string * CommonTypes.field) list
\ No newline at end of file
+val client_common_tags : (string * string) list
Index: src/networks/donkey/donkeyPandora.ml
===================================================================
RCS file: /sources/mldonkey/mldonkey/src/networks/donkey/donkeyPandora.ml,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -b -r1.7 -r1.8
--- src/networks/donkey/donkeyPandora.ml 3 Apr 2006 20:50:09 -0000
1.7
+++ src/networks/donkey/donkeyPandora.ml 3 Dec 2006 20:49:42 -0000
1.8
@@ -98,23 +98,23 @@
let update_emule_proto_from_tags e tags =
List.iter (fun tag ->
match tag.tag_name with
- | Field_UNKNOWN "compression" ->
+ | Field_KNOWN "compression" ->
for_int_tag tag (fun i ->
e.emule_compression <- i)
- | Field_UNKNOWN "udpver" ->
+ | Field_KNOWN "udpver" ->
for_int_tag tag (fun i ->
e.emule_udpver <- i)
- | Field_UNKNOWN "udpport" -> ()
- | Field_UNKNOWN "sourceexchange" ->
+ | Field_KNOWN "udpport" -> ()
+ | Field_KNOWN "sourceexchange" ->
for_int_tag tag (fun i ->
e.emule_sourceexchange <- i)
- | Field_UNKNOWN "comments" ->
+ | Field_KNOWN "comments" ->
for_int_tag tag (fun i ->
e.emule_comments <- i)
- | Field_UNKNOWN "extendedrequest" ->
+ | Field_KNOWN "extendedrequest" ->
for_int_tag tag (fun i ->
e.emule_extendedrequest <- i)
- | Field_UNKNOWN "features" ->
+ | Field_KNOWN "features" ->
for_int_tag tag (fun i ->
e.emule_secident <- i land 0x3)
| s ->
@@ -138,7 +138,7 @@
begin
try
- let options = find_tag (Field_UNKNOWN "emule_miscoptions1")
tags in
+ let options = find_tag (Field_KNOWN "emule_miscoptions1") tags
in
match options with
Uint64 v | Fint64 v ->
update_emule_proto_from_miscoptions1 emule v
Index: src/networks/donkey/donkeyProtoClient.ml
===================================================================
RCS file: /sources/mldonkey/mldonkey/src/networks/donkey/donkeyProtoClient.ml,v
retrieving revision 1.41
retrieving revision 1.42
diff -u -b -r1.41 -r1.42
--- src/networks/donkey/donkeyProtoClient.ml 28 Nov 2006 23:50:33 -0000
1.41
+++ src/networks/donkey/donkeyProtoClient.ml 3 Dec 2006 20:49:42 -0000
1.42
@@ -190,23 +190,10 @@
left_bytes : string;
}
+ let names_of_tag = client_common_tags
+
let names_of_tag =
- [
- "\001", Field_UNKNOWN "name";
- "\015", Field_UNKNOWN "port";
- "\017", Field_UNKNOWN "version";
- "\031", Field_UNKNOWN "udpport";
- "\060", Field_UNKNOWN "downloadtime";
- "\061", Field_UNKNOWN "incompleteparts";
- "\085", Field_UNKNOWN "mod_version";
- "\239", Field_UNKNOWN "emule_compatoptions";
- "\249", Field_UNKNOWN "emule_udpports";
- "\250", Field_UNKNOWN "emule_miscoptions1";
- "\251", Field_UNKNOWN "emule_version";
- "\252", Field_UNKNOWN "buddy_ip";
- "\253", Field_UNKNOWN "buddy_udp";
- "\254", Field_UNKNOWN "emule_miscoptions2";
- ]
+ List.map (fun (v, name) -> (v, Field_KNOWN name)) names_of_tag
let parse reply len s =
let hash_len, pos = if not reply then get_uint8 s 1, 2 else -1, 1 in
@@ -831,49 +818,10 @@
mutable tags : tag list;
}
- let names_of_tag =
- [
- "\032", "compression";
- "\033", "udpport";
- "\034", "udpver";
- "\035", "sourceexchange";
- "\036", "comments";
- "\037", "extendedrequest";
- "\038", "compatibleclient";
- "\039", "features";
- "\060", "downloadtime";
- "\061", "incompleteparts";
- "\062", "l2hac";
- "\065", "mod_unknown41";
- "\066", "mod_unknown42";
- "\067", "mod_unknown43";
- "\084", "mod_featureset";
- "\086", "mod_protocol";
- "\085", "mod_version";
- "\090", "mod_bowlfish";
- "\092", "mod_secure_community";
- "\102", "mod_fusion";
- "\103", "mod_fusion_version";
- "\119", "mod_tarod";
- "\120", "mod_tarod_version";
- "\121", "mod_morph";
- "\128", "mod_morph_version";
- "\130", "mod_mortillo";
- "\131", "mod_mortillo_version";
- "\132", "chanblard_version";
- "\133", "signature";
- "\134", "cache";
- "\135", "mod_lsd";
- "\136", "mod_lsd_version";
- "\144", "mod_lovelace_version";
- "\148", "os_info"; (* reused by aMule to transfer client OS type *)
- "\153", "mod_plus";
- "\160", "mod_wombat";
- "\161", "dev_wombat";
- ]
+ let names_of_tag = client_common_tags
let names_of_tag =
- List.map (fun (v, name) -> (v, Field_UNKNOWN name)) names_of_tag
+ List.map (fun (v, name) -> (v, Field_KNOWN name)) names_of_tag
let parse len s =
let version = get_uint8 s 1 in
Index: src/networks/donkey/donkeyProtoKademlia.ml
===================================================================
RCS file:
/sources/mldonkey/mldonkey/src/networks/donkey/donkeyProtoKademlia.ml,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -b -r1.21 -r1.22
--- src/networks/donkey/donkeyProtoKademlia.ml 31 Oct 2006 15:42:48 -0000
1.21
+++ src/networks/donkey/donkeyProtoKademlia.ml 3 Dec 2006 20:49:42 -0000
1.22
@@ -45,15 +45,15 @@
let names_of_tag =
[
- "\243", Field_UNKNOWN "encryption"; (* 0xF3 *)
- "\248", Field_UNKNOWN "buddyhash"; (* 0xF8 *)
- "\249", Field_UNKNOWN "clientlowid"; (* 0xF9 *)
- "\250", Field_UNKNOWN "serverport"; (* 0xFA *)
- "\251", Field_UNKNOWN "serverip"; (* 0xFB *)
- "\252", Field_UNKNOWN "sourceuport"; (* 0xFC *)
- "\253", Field_UNKNOWN "sourceport"; (* 0xFD *)
- "\254", Field_UNKNOWN "sourceip"; (* 0xFE *)
- "\255", Field_UNKNOWN "sourcetype"; (* 0xFF *)
+ "\243", Field_KNOWN "encryption"; (* 0xF3 *)
+ "\248", Field_KNOWN "buddyhash"; (* 0xF8 *)
+ "\249", Field_KNOWN "clientlowid"; (* 0xF9 *)
+ "\250", Field_KNOWN "serverport"; (* 0xFA *)
+ "\251", Field_KNOWN "serverip"; (* 0xFB *)
+ "\252", Field_KNOWN "sourceuport"; (* 0xFC *)
+ "\253", Field_KNOWN "sourceport"; (* 0xFD *)
+ "\254", Field_KNOWN "sourceip"; (* 0xFE *)
+ "\255", Field_KNOWN "sourcetype"; (* 0xFF *)
] @ file_common_tags
(* This fucking Emule implementation uses 4 32-bits integers instead of
@@ -248,17 +248,17 @@
let peer_kind = ref 0 in
List.iter (fun tag ->
match tag.tag_name with
- Field_UNKNOWN "sourceport" ->
+ Field_KNOWN "sourceport" ->
for_int_tag tag (fun port ->
peer_tcpport := port)
- | Field_UNKNOWN "sourceuport" ->
+ | Field_KNOWN "sourceuport" ->
for_int_tag tag (fun port ->
peer_udpport := port)
- | Field_UNKNOWN "sourceip" ->
+ | Field_KNOWN "sourceip" ->
for_int64_tag tag (fun ip ->
peer_ip := Ip.of_int64 ip
)
- | Field_UNKNOWN "sourcetype" ->
+ | Field_KNOWN "sourcetype" ->
for_int_tag tag (fun kind ->
peer_kind := 3)
| _ ->
@@ -333,7 +333,7 @@
(_, first_tags) :: _ ->
let sources = ref false in
List.iter (fun tag ->
- if tag.tag_name = Field_UNKNOWN "sourceport" then sources
:= true;
+ if tag.tag_name = Field_KNOWN "sourceport" then sources :=
true;
) first_tags;
if !sources then
let peers = get_peers_from_results Ip.null 0 answers in
@@ -359,7 +359,7 @@
(_, first_tags) :: _ ->
let sources = ref false in
List.iter (fun tag ->
- if tag.tag_name = Field_UNKNOWN "sourceport" then sources
:= true;
+ if tag.tag_name = Field_KNOWN "sourceport" then sources :=
true;
) first_tags;
if !sources then
let peers = get_peers_from_results ip port answers in
Index: src/networks/donkey/donkeyProtoOvernet.ml
===================================================================
RCS file: /sources/mldonkey/mldonkey/src/networks/donkey/donkeyProtoOvernet.ml,v
retrieving revision 1.31
retrieving revision 1.32
diff -u -b -r1.31 -r1.32
--- src/networks/donkey/donkeyProtoOvernet.ml 5 Nov 2006 14:13:51 -0000
1.31
+++ src/networks/donkey/donkeyProtoOvernet.ml 3 Dec 2006 20:49:42 -0000
1.32
@@ -40,7 +40,9 @@
let lprintf_n fmt =
lprintf2 log_prefix fmt
- let names_of_tag = file_common_tags
+ let names_of_tag = [
+ "loc", Field_KNOWN "loc";
+ ] @ file_common_tags
let buf_peer buf p =
buf_md4 buf p.peer_md4;
@@ -187,7 +189,7 @@
let peer_tcpport = ref 0 in
List.iter (fun tag ->
match tag.tag_name with
- Field_UNKNOWN "loc" ->
+ Field_KNOWN "loc" ->
for_string_tag tag (fun bcp ->
if !verbose_overnet then lprintf_nl "loc tag : [%s]" bcp;
if String2.starts_with bcp "bcp://" then
@@ -295,7 +297,7 @@
let r_tags, pos = get_tags s 32 names_of_tag in
let sources = ref false in
List.iter (fun tag ->
- if tag.tag_name = Field_UNKNOWN "loc" then sources := true;
+ if tag.tag_name = Field_KNOWN "loc" then sources := true;
) r_tags;
if !sources then
let peer = get_peer_from_result ip port r_md4 r_tags in
@@ -311,7 +313,7 @@
let r_tags, pos = get_tags s 32 names_of_tag in
let sources = ref false in
List.iter (fun tag ->
- if tag.tag_name = Field_UNKNOWN "loc" then sources := true;
+ if tag.tag_name = Field_KNOWN "loc" then sources := true;
) r_tags;
if !sources then
let peer = get_peer_from_result ip port r_md4 r_tags in
Index: src/networks/donkey/donkeyProtoServer.ml
===================================================================
RCS file: /sources/mldonkey/mldonkey/src/networks/donkey/donkeyProtoServer.ml,v
retrieving revision 1.24
retrieving revision 1.25
diff -u -b -r1.24 -r1.25
--- src/networks/donkey/donkeyProtoServer.ml 28 Nov 2006 23:50:33 -0000
1.24
+++ src/networks/donkey/donkeyProtoServer.ml 3 Dec 2006 20:49:42 -0000
1.25
@@ -38,10 +38,10 @@
let names_of_tag =
[
- "\001", Field_UNKNOWN "name"; (* CT_NAME 0x01 *)
- "\017", Field_UNKNOWN "version"; (* CT_VERSION 0x11 *)
- "\032", Field_UNKNOWN "extended"; (* CT_SERVER_FLAGS 0x20 *)
- "\251", Field_UNKNOWN "emule_version"; (* CT_EMULE_VERSION 0xfb *)
+ "\001", Field_KNOWN "name"; (* CT_NAME 0x01 *)
+ "\017", Field_KNOWN "version"; (* CT_VERSION 0x11 *)
+ "\032", Field_KNOWN "extended"; (* CT_SERVER_FLAGS 0x20 *)
+ "\251", Field_KNOWN "emule_version"; (* CT_EMULE_VERSION 0xfb *)
]
let parse len s =
@@ -363,8 +363,8 @@
let names_of_tag =
[
- "\001", Field_UNKNOWN "name";
- "\011", Field_UNKNOWN "description";
+ "\001", Field_KNOWN "name";
+ "\011", Field_KNOWN "description";
]
let parse len s =
@@ -735,9 +735,9 @@
let names_of_tag =
[
- "\001", Field_UNKNOWN "name";
- "\017", Field_UNKNOWN "version";
- "\015", Field_UNKNOWN "port";
+ "\001", Field_KNOWN "name";
+ "\017", Field_KNOWN "version";
+ "\015", Field_KNOWN "port";
]
let rec parse_clients s pos nclients left =
Index: src/networks/donkey/donkeyProtoUdp.ml
===================================================================
RCS file: /sources/mldonkey/mldonkey/src/networks/donkey/donkeyProtoUdp.ml,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -b -r1.16 -r1.17
--- src/networks/donkey/donkeyProtoUdp.ml 26 Nov 2006 16:36:29 -0000
1.16
+++ src/networks/donkey/donkeyProtoUdp.ml 3 Dec 2006 20:49:42 -0000
1.17
@@ -233,22 +233,22 @@
}
let names_of_tag = [
- "\001", Field_UNKNOWN "servername";
- "\011", Field_UNKNOWN "description";
- "\012", Field_UNKNOWN "ping";
- "\013", Field_UNKNOWN "fail";
- "\014", Field_UNKNOWN "preference";
- "\015", Field_UNKNOWN "port";
- "\016", Field_UNKNOWN "ip";
- "\133", Field_UNKNOWN "dynip";
- "\135", Field_UNKNOWN "maxusers";
- "\136", Field_UNKNOWN "softfiles";
- "\137", Field_UNKNOWN "hardfiles";
- "\144", Field_UNKNOWN "lastping";
- "\145", Field_UNKNOWN "version";
- "\146", Field_UNKNOWN "udpflags";
- "\147", Field_UNKNOWN "auxportslist";
- "\148", Field_UNKNOWN "lowidusers";
+ "\001", Field_KNOWN "servername";
+ "\011", Field_KNOWN "description";
+ "\012", Field_KNOWN "ping";
+ "\013", Field_KNOWN "fail";
+ "\014", Field_KNOWN "preference";
+ "\015", Field_KNOWN "port";
+ "\016", Field_KNOWN "ip";
+ "\133", Field_KNOWN "dynip";
+ "\135", Field_KNOWN "maxusers";
+ "\136", Field_KNOWN "softfiles";
+ "\137", Field_KNOWN "hardfiles";
+ "\144", Field_KNOWN "lastping";
+ "\145", Field_KNOWN "version";
+ "\146", Field_KNOWN "udpflags";
+ "\147", Field_KNOWN "auxportslist";
+ "\148", Field_KNOWN "lowidusers";
]
let parse1 len s challenge =
@@ -267,9 +267,9 @@
let desc = ref "" in
List.iter (fun tag ->
match tag with
- | { tag_name = Field_UNKNOWN "servername"; tag_value = String v } ->
+ | { tag_name = Field_KNOWN "servername"; tag_value = String v } ->
name := v
- | { tag_name = Field_UNKNOWN "description"; tag_value = String v } ->
+ | { tag_name = Field_KNOWN "description"; tag_value = String v } ->
desc := v
| _ -> ()
) stags;
Index: src/networks/donkey/donkeyServers.ml
===================================================================
RCS file: /sources/mldonkey/mldonkey/src/networks/donkey/donkeyServers.ml,v
retrieving revision 1.68
retrieving revision 1.69
diff -u -b -r1.68 -r1.69
--- src/networks/donkey/donkeyServers.ml 26 Nov 2006 16:36:29 -0000
1.68
+++ src/networks/donkey/donkeyServers.ml 3 Dec 2006 20:49:42 -0000
1.69
@@ -399,9 +399,9 @@
List.iter (
fun tag ->
match tag with
- { tag_name = Field_UNKNOWN "name"; tag_value = String name } ->
+ { tag_name = Field_KNOWN "name"; tag_value = String name } ->
s.server_name <- name
- | { tag_name = Field_UNKNOWN "description"; tag_value = String
desc } ->
+ | { tag_name = Field_KNOWN "description"; tag_value = String desc
} ->
s.server_description <- desc
| _ -> lprintf_nl "parsing donkeyServers.ServerInfo, unknown field
%s" (string_of_tag tag)
) s.server_tags
@@ -504,7 +504,7 @@
user_add user_impl;
List.iter (fun tag ->
match tag with
- { tag_name = Field_UNKNOWN "name"; tag_value = String s } ->
+ { tag_name = Field_KNOWN "name"; tag_value = String s } ->
user.user_name <- s
| _ -> ()
) user.user_tags;
Index: src/networks/donkey/donkeyUdp.ml
===================================================================
RCS file: /sources/mldonkey/mldonkey/src/networks/donkey/donkeyUdp.ml,v
retrieving revision 1.26
retrieving revision 1.27
diff -u -b -r1.26 -r1.27
--- src/networks/donkey/donkeyUdp.ml 26 Nov 2006 16:36:29 -0000 1.26
+++ src/networks/donkey/donkeyUdp.ml 3 Dec 2006 20:49:42 -0000 1.27
@@ -322,12 +322,12 @@
s.server_udp_desc_challenge <- None;
List.iter (fun tag ->
match tag with
- { tag_name = Field_UNKNOWN "version"; tag_value = Uint64 i } ->
+ { tag_name = Field_KNOWN "version"; tag_value = Uint64 i } ->
let i = Int64.to_int i in
s.server_version <- Printf.sprintf "%d.%d" (i lsr 16) (i land
0xFFFF);
- | { tag_name = Field_UNKNOWN "auxportslist" ; tag_value = String
aux } ->
+ | { tag_name = Field_KNOWN "auxportslist" ; tag_value = String aux
} ->
s.server_auxportslist <- aux
- | { tag_name = Field_UNKNOWN "dynip" ; tag_value = String dynip }
->
+ | { tag_name = Field_KNOWN "dynip" ; tag_value = String dynip } ->
s.server_dynip <- dynip
| _ -> ()
) t.M.tags;
Index: src/networks/fasttrack/fasttrackNetwork.ml
===================================================================
RCS file:
/sources/mldonkey/mldonkey/src/networks/fasttrack/fasttrackNetwork.ml,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- src/networks/fasttrack/fasttrackNetwork.ml 7 Aug 2005 12:57:22 -0000
1.2
+++ src/networks/fasttrack/fasttrackNetwork.ml 3 Dec 2006 20:49:42 -0000
1.3
@@ -34,30 +34,30 @@
(* any = 0 *)
let name_of_tag =
[
- Field_UNKNOWN "any", 0;
- Field_UNKNOWN "year", 1;
+ Field_KNOWN "any", 0;
+ Field_KNOWN "year", 1;
Field_Filename, 2;
Field_Uid, 3;
Field_Title, 4;
- Field_UNKNOWN "time", 5;
+ Field_KNOWN "time", 5;
Field_Artist, 6;
Field_Album, 8;
- Field_UNKNOWN "language", 0x0A;
- Field_UNKNOWN "keywords", 0x0C;
- Field_UNKNOWN "resolution", 0x0D;
- Field_UNKNOWN "genre", 0x0E;
- Field_UNKNOWN "OS", 0x10;
- Field_UNKNOWN "bitdepth", 0x11;
+ Field_KNOWN "language", 0x0A;
+ Field_KNOWN "keywords", 0x0C;
+ Field_KNOWN "resolution", 0x0D;
+ Field_KNOWN "genre", 0x0E;
+ Field_KNOWN "OS", 0x10;
+ Field_KNOWN "bitdepth", 0x11;
Field_Type, 0x12;
- Field_UNKNOWN "quality", 0x15;
- Field_UNKNOWN "version", 0x18;
- Field_UNKNOWN "comment", 0x1A;
+ Field_KNOWN "quality", 0x15;
+ Field_KNOWN "version", 0x18;
+ Field_KNOWN "comment", 0x1A;
Field_Codec, 0x1C; (* "divx" *)
- Field_UNKNOWN "rating", 0x1D;
+ Field_KNOWN "rating", 0x1D;
Field_Size, 0x21;
Field_Type, 0x22; (* "movie", "video clip",... *)
- Field_UNKNOWN "49", 49;
- Field_UNKNOWN "53", 53;
+ Field_KNOWN "49", 49;
+ Field_KNOWN "53", 53;
]
type cipher
Index: src/networks/fasttrack/fasttrackProto.ml
===================================================================
RCS file: /sources/mldonkey/mldonkey/src/networks/fasttrack/fasttrackProto.ml,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -b -r1.17 -r1.18
--- src/networks/fasttrack/fasttrackProto.ml 28 Aug 2006 18:19:16 -0000
1.17
+++ src/networks/fasttrack/fasttrackProto.ml 3 Dec 2006 20:49:42 -0000
1.18
@@ -108,30 +108,30 @@
let tag_of_tag tag s =
match tag with
- | Field_UNKNOWN "any"
+ | Field_KNOWN "any"
| Field_Filename
| Field_Uid
| Field_Title
- | Field_UNKNOWN "time"
+ | Field_KNOWN "time"
| Field_Artist
| Field_Album
- | Field_UNKNOWN "language"
- | Field_UNKNOWN "keywords"
- | Field_UNKNOWN "genre"
- | Field_UNKNOWN "OS"
+ | Field_KNOWN "language"
+ | Field_KNOWN "keywords"
+ | Field_KNOWN "genre"
+ | Field_KNOWN "OS"
| Field_Type
- | Field_UNKNOWN "version"
- | Field_UNKNOWN "comment"
+ | Field_KNOWN "version"
+ | Field_KNOWN "comment"
| Field_Codec ->
string_tag tag s
- | Field_UNKNOWN "bitdepth"
- | Field_UNKNOWN "year"
- | Field_UNKNOWN "rating"
- | Field_UNKNOWN "quality"
+ | Field_KNOWN "bitdepth"
+ | Field_KNOWN "year"
+ | Field_KNOWN "rating"
+ | Field_KNOWN "quality"
| Field_Size ->
let s, _ = get_dynint s 0 in
int64_tag tag s
- | Field_UNKNOWN "resolution" ->
+ | Field_KNOWN "resolution" ->
let n1, pos = get_dynint s 0 in
let n2, pos = get_dynint s pos in
{ tag_name = tag; tag_value = Pair (n1, n2) }
@@ -145,7 +145,8 @@
| Field_Lastseencomplete
| Field_Mediacodec
| Field_Medialength
- | Field_UNKNOWN _ ->
+ | Field_UNKNOWN _
+ | Field_KNOWN _ ->
string_tag tag s
@@ -433,7 +434,7 @@
let tags =
if words <> "" then
- (Substring, string_tag (Field_UNKNOWN "any") words) :: tags
+ (Substring, string_tag (Field_KNOWN "any") words) :: tags
else tags in
buf_int8 b (List.length tags);
@@ -458,7 +459,7 @@
buf_int8 b (
try List.assoc tag name_of_tag with
_ -> match tag with
- Field_UNKNOWN n -> int_of_string n
+ Field_KNOWN n -> int_of_string n
| _ -> assert false);
buf_string b s;
) tags;
@@ -869,7 +870,7 @@
let tag = try
List2.assoc_inv tag name_of_tag
with _ ->
- Field_UNKNOWN (string_of_int tag)
+ Field_KNOWN (string_of_int tag)
in
iter_tags (pos + tag_len) (n-1)
((new_tag tag tagdata) :: tags)
@@ -916,7 +917,7 @@
List2.assoc_inv tag name_of_tag
with Not_found ->
lprintf "WARNING Unknown tag %d\n" tag;
- Field_UNKNOWN (string_of_int tag)
+ Field_KNOWN (string_of_int tag)
in
let v, pos = get_string m (pos+2) in
let tag = tag_of_tag tag v in
@@ -1939,6 +1940,7 @@
| Field_Artist
| Field_Title
| Field_Codec
+ | Field_KNOWN _
| Field_UNKNOWN _
| Field_Filename ->
tags := (Substring, string_tag field w) :: !tags
@@ -1957,14 +1959,14 @@
begin
match field with
| Field_Size
- | Field_UNKNOWN _
+ | Field_KNOWN _
-> tags := (AtLeast, int64_tag field value) :: !tags
| _ -> ()
end
| QHasMaxVal (field, value) ->
begin
match field with
- | Field_UNKNOWN _
+ | Field_KNOWN _
| Field_Size ->
tags := (AtMost, int64_tag field value) :: !tags
| _ -> ()
Index: src/networks/opennap/opennapInteractive.ml
===================================================================
RCS file:
/sources/mldonkey/mldonkey/src/networks/opennap/opennapInteractive.ml,v
retrieving revision 1.26
retrieving revision 1.27
diff -u -b -r1.26 -r1.27
--- src/networks/opennap/opennapInteractive.ml 1 Oct 2006 17:54:00 -0000
1.26
+++ src/networks/opennap/opennapInteractive.ml 3 Dec 2006 20:49:42 -0000
1.27
@@ -78,7 +78,7 @@
| QHasMinVal (field, value) ->
begin
match field with
- Field_UNKNOWN "bitrate" ->
+ Field_KNOWN "bitrate" ->
{ t with S.bitrate = Some (Int64.to_int value, OP.AtLeast) };
| Field_Size -> t
| _ -> t
@@ -86,7 +86,7 @@
| QHasMaxVal (field, value) ->
begin
match field with
- Field_UNKNOWN "bitrate" ->
+ Field_KNOWN "bitrate" ->
{ t with S.bitrate = Some (Int64.to_int value, OP.AtBest) };
| Field_Size -> t
| _ -> t
Index: src/utils/cdk/string2.ml
===================================================================
RCS file: /sources/mldonkey/mldonkey/src/utils/cdk/string2.ml,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -b -r1.9 -r1.10
--- src/utils/cdk/string2.ml 20 Jul 2006 15:30:21 -0000 1.9
+++ src/utils/cdk/string2.ml 3 Dec 2006 20:49:43 -0000 1.10
@@ -322,3 +322,9 @@
i >= l || p s.[i] && aux (i+1) in
aux 0
+let hex_string_of_string s =
+ let buf = Buffer.create 100 in
+ String.iter (fun c ->
+ Printf.bprintf buf "%02x " (int_of_char c)
+ ) s;
+ Buffer.contents buf
Index: src/utils/cdk/string2.mli
===================================================================
RCS file: /sources/mldonkey/mldonkey/src/utils/cdk/string2.mli,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -b -r1.10 -r1.11
--- src/utils/cdk/string2.mli 20 Jul 2006 15:30:21 -0000 1.10
+++ src/utils/cdk/string2.mli 3 Dec 2006 20:49:43 -0000 1.11
@@ -103,3 +103,4 @@
val exists: (char -> bool) -> string -> bool
val existsi: (int -> char -> bool) -> string -> bool
val for_all: (char -> bool) -> string -> bool
+val hex_string_of_string : string -> string