mldonkey-commits
[Top][All Lists]
Advanced

[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: Sun, 11 Mar 2007 18:51:28 +0000

CVSROOT:        /sources/mldonkey
Module name:    mldonkey
Changes by:     spiralvoice <spiralvoice>       07/03/11 18:51:28

Modified files:
        distrib        : ChangeLog 
        src/daemon/driver: driverControlers.ml 
        src/utils/lib  : url.ml url.mli 
        src/utils/net  : http_client.ml 

Log message:
        patch #5775 removed

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/mldonkey/distrib/ChangeLog?cvsroot=mldonkey&r1=1.1202&r2=1.1203
http://cvs.savannah.gnu.org/viewcvs/mldonkey/src/daemon/driver/driverControlers.ml?cvsroot=mldonkey&r1=1.98&r2=1.99
http://cvs.savannah.gnu.org/viewcvs/mldonkey/src/utils/lib/url.ml?cvsroot=mldonkey&r1=1.7&r2=1.8
http://cvs.savannah.gnu.org/viewcvs/mldonkey/src/utils/lib/url.mli?cvsroot=mldonkey&r1=1.3&r2=1.4
http://cvs.savannah.gnu.org/viewcvs/mldonkey/src/utils/net/http_client.ml?cvsroot=mldonkey&r1=1.37&r2=1.38

Patches:
Index: distrib/ChangeLog
===================================================================
RCS file: /sources/mldonkey/mldonkey/distrib/ChangeLog,v
retrieving revision 1.1202
retrieving revision 1.1203
diff -u -b -r1.1202 -r1.1203
--- distrib/ChangeLog   11 Mar 2007 16:14:35 -0000      1.1202
+++ distrib/ChangeLog   11 Mar 2007 18:51:28 -0000      1.1203
@@ -15,6 +15,7 @@
 =========
 
 2007/03/11
+5775: removed, it breaks BT downloads
 5775: HTML: Fix url parsing for URLs with ()' (orbit)
 5774: BT: fix upload managment (orbit)
 5786: HTML: small javascript search improve (orbit)

Index: src/daemon/driver/driverControlers.ml
===================================================================
RCS file: /sources/mldonkey/mldonkey/src/daemon/driver/driverControlers.ml,v
retrieving revision 1.98
retrieving revision 1.99
diff -u -b -r1.98 -r1.99
--- src/daemon/driver/driverControlers.ml       11 Mar 2007 16:14:35 -0000      
1.98
+++ src/daemon/driver/driverControlers.ml       11 Mar 2007 18:51:28 -0000      
1.99
@@ -103,7 +103,7 @@
 
 let eval auth cmd o =
   let buf = o.conn_buf in
-  let cmd = Url.decode ~raw:false cmd in
+  let cmd = Url.decode cmd in
   let cmd =
     if String2.check_prefix cmd "ed2k://" ||
        String2.check_prefix cmd "ftp://"; ||

Index: src/utils/lib/url.ml
===================================================================
RCS file: /sources/mldonkey/mldonkey/src/utils/lib/url.ml,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -b -r1.7 -r1.8
--- src/utils/lib/url.ml        11 Mar 2007 16:14:35 -0000      1.7
+++ src/utils/lib/url.ml        11 Mar 2007 18:51:28 -0000      1.8
@@ -32,7 +32,7 @@
     string : string;
   }
 
-(* encode using RFC 1738 form *)
+(* encode using x-www-form-urlencoded form *)
 let encode s =
   let pos = ref 0 in
   let len = String.length s in
@@ -42,8 +42,9 @@
     else Char.chr (Char.code '0' + x) in
   for i=0 to len-1 do
     match s.[i] with
-    | 'a'..'z' | 'A'..'Z' | '0'..'9' | '.' | '-' | '*' | '_' | '\''| '(' | 
')'->
+    | 'a'..'z' | 'A'..'Z' | '0'..'9' | '.' | '-' | '*' | '_' ->
         res.[!pos] <- s.[i]; incr pos
+(*    | ' ' -> res.[!pos] <- '+'; incr pos *)
     | c ->
         res.[!pos] <- '%';
         res.[!pos+1] <- hexa_digit (Char.code c / 16);
@@ -52,22 +53,28 @@
   done;
   String.sub res 0 !pos
 
-(** decodes a sting according RFC 1738
-or x-www-form-urlencoded ('+' with ' ')
-  @param raw true use RFC 1738
-  @param string string to decode
-*)
-let decode ?(raw=true) s =
+(* decode using x-www-form-urlencoded form *)
+
+let digit_hexa x =
+  match x with
+  | 'a' .. 'f' -> (Char.code x) + 10 - (Char.code 'a')
+  | 'A' .. 'F' -> (Char.code x) + 10 - (Char.code 'A')
+  | '0' .. '9' -> (Char.code x) - (Char.code '0')
+  | _ -> failwith "Not an hexa number (encode.ml)" 
+
+let decode s =
   let len = String.length s in
   let r = Buffer.create len in
   let rec iter i =
     if i < len then
       match s.[i] with
+      | '+' -> Buffer.add_char r  ' '; iter (i+1)
       | '%' ->
           let n = 
             try
-              (* int_of_string with leading "0x", string is read hexadecimal *)
-              Buffer.add_char r (char_of_int (int_of_string ("0x" ^ 
(String.sub s (i+1) 2))));
+              let fst = digit_hexa s.[i+1] in
+              let snd = digit_hexa s.[i+2] in
+              Buffer.add_char r (char_of_int (fst*16 + snd));
               3
             with _ ->
                 Buffer.add_char r '%';
@@ -75,10 +82,6 @@
           in
           iter (i+n)
 
-      (* if not raw decode '+' -> ' ' else don't change char *)
-      | '+' ->  let c = if raw then '+' else ' ' in
-                Buffer.add_char r c; iter (i+1)
-
       | c -> Buffer.add_char r c; iter (i+1)
   in
   iter 0;
@@ -114,7 +117,7 @@
   let args = String2.split url_end '&' in
   List.map (fun s -> 
         let (name, value) = String2.cut_at s '=' in
-      decode ~raw:false name, decode ~raw:false value
+      decode name, decode value
     ) args 
 
 let create proto user passwd server port full_file =

Index: src/utils/lib/url.mli
===================================================================
RCS file: /sources/mldonkey/mldonkey/src/utils/lib/url.mli,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -b -r1.3 -r1.4
--- src/utils/lib/url.mli       11 Mar 2007 16:14:35 -0000      1.3
+++ src/utils/lib/url.mli       11 Mar 2007 18:51:28 -0000      1.4
@@ -54,7 +54,7 @@
 
   
 val encode : string -> string
-val decode : ?raw:bool -> string -> string
+val decode : string -> string
 
 val option : url Options.option_class
   
\ No newline at end of file

Index: src/utils/net/http_client.ml
===================================================================
RCS file: /sources/mldonkey/mldonkey/src/utils/net/http_client.ml,v
retrieving revision 1.37
retrieving revision 1.38
diff -u -b -r1.37 -r1.38
--- src/utils/net/http_client.ml        11 Mar 2007 16:14:35 -0000      1.37
+++ src/utils/net/http_client.ml        11 Mar 2007 18:51:28 -0000      1.38
@@ -90,7 +90,8 @@
       then  Url.to_string_no_args url
       else url.short_file
     in
-  let url = Url.encode url in
+  (* I get a lot more bittorrent urls with this line: *)
+  let url = (Str.global_replace (Str.regexp " ") "%20" url) in
     let url = if is_real_post then url else
         Url.put_args url args
     in




reply via email to

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