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: Sat, 21 Oct 2006 19:35:09 +0000

CVSROOT:        /sources/mldonkey
Module name:    mldonkey
Changes by:     spiralvoice <spiralvoice>       06/10/21 19:35:09

Modified files:
        distrib        : ChangeLog 
        src/daemon/driver: driverControlers.ml 
        src/utils/net  : http_server.ml http_server.mli 

Log message:
        patch #5469

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/mldonkey/distrib/ChangeLog?cvsroot=mldonkey&r1=1.1052&r2=1.1053
http://cvs.savannah.gnu.org/viewcvs/mldonkey/src/daemon/driver/driverControlers.ml?cvsroot=mldonkey&r1=1.89&r2=1.90
http://cvs.savannah.gnu.org/viewcvs/mldonkey/src/utils/net/http_server.ml?cvsroot=mldonkey&r1=1.33&r2=1.34
http://cvs.savannah.gnu.org/viewcvs/mldonkey/src/utils/net/http_server.mli?cvsroot=mldonkey&r1=1.9&r2=1.10

Patches:
Index: distrib/ChangeLog
===================================================================
RCS file: /sources/mldonkey/mldonkey/distrib/ChangeLog,v
retrieving revision 1.1052
retrieving revision 1.1053
diff -u -b -r1.1052 -r1.1053
--- distrib/ChangeLog   20 Oct 2006 15:52:30 -0000      1.1052
+++ distrib/ChangeLog   21 Oct 2006 19:35:09 -0000      1.1053
@@ -14,6 +14,9 @@
 ChangeLog
 =========
 
+2006/10/21
+5469: HTML: Implement 404 error page for unknown URLs
+
 2006/10/20
 5419: EDK: Re-implement titanesel.ws links - service is up again (thx to sk38)
 

Index: src/daemon/driver/driverControlers.ml
===================================================================
RCS file: /sources/mldonkey/mldonkey/src/daemon/driver/driverControlers.ml,v
retrieving revision 1.89
retrieving revision 1.90
diff -u -b -r1.89 -r1.90
--- src/daemon/driver/driverControlers.ml       8 Oct 2006 14:12:13 -0000       
1.89
+++ src/daemon/driver/driverControlers.ml       21 Oct 2006 19:35:09 -0000      
1.90
@@ -959,8 +959,14 @@
   if not (valid_password user r.options.passwd) then begin
       clear_page buf;
       http_file_type := HTM;
-      Buffer.add_string buf (snd(Http_server.error_page "401" "" "" 
(Ip.to_string (TcpBufferedSocket.my_ip r.sock)) (string_of_int !!http_port) 
None));
-      need_auth r !!http_realm
+      let _, error_text_long, header = Http_server.error_page "401" "" ""
+       (Ip.to_string (TcpBufferedSocket.my_ip r.sock))
+       (string_of_int !!http_port) None in
+      Buffer.add_string buf error_text_long;
+      r.reply_head <- header;
+      r.reply_headers <- [
+        "Connection", "close";
+        "WWW-Authenticate", Printf.sprintf "Basic realm=\"%s\"" !!http_realm]
     end
   else
     begin
@@ -1509,11 +1515,15 @@
              | Some result ->
                    Printf.bprintf buf "%s:<br> %s<br>\n" n.network_name 
result));
                    Printf.bprintf buf "<br><br><a href=\"porttest\">Reload</a>"
-        | cmd ->
-            html_open_page buf t r true;
-            Printf.bprintf buf "No page named %s" (html_escaped cmd)
+        | _ -> raise Not_found
       with
-      | Not_found -> Printf.bprintf buf "404 Not found"
+      | Not_found ->
+         let _, error_text_long, header = Http_server.error_page "404" "" ""
+                       (Ip.to_string (TcpBufferedSocket.my_ip r.sock))
+                       (string_of_int !!http_port)
+                       (Some (Url_not_found r.get_url.Url.full_file)) in
+         r.reply_head <- header;
+         Buffer.add_string buf error_text_long
       | e ->
           Printf.bprintf buf "\nException %s\n" (Printexc2.to_string e);
           r.reply_stream <- None
@@ -1524,8 +1534,8 @@
       HTM -> html_close_page buf false; dollar_escape o !!use_html_frames 
(Buffer.contents buf)
     | MLHTM -> html_close_page buf true; dollar_escape o !!use_html_frames 
(Buffer.contents buf)
     | TXT
+    | UNK
     | BIN -> Buffer.contents buf
-    | UNK -> "Unknown type for content :" ^ (Buffer.contents buf)
   in
   r.reply_content <- 
     if !http_file_type <> BIN && !!html_use_gzip then 

Index: src/utils/net/http_server.ml
===================================================================
RCS file: /sources/mldonkey/mldonkey/src/utils/net/http_server.ml,v
retrieving revision 1.33
retrieving revision 1.34
diff -u -b -r1.33 -r1.34
--- src/utils/net/http_server.ml        27 Jul 2006 21:45:06 -0000      1.33
+++ src/utils/net/http_server.ml        21 Oct 2006 19:35:09 -0000      1.34
@@ -95,6 +95,7 @@
 type error_reason =
 | Blocked
 | Not_allowed
+| Url_not_found of string
 
 type header =
   Unknown of string * string
@@ -234,11 +235,13 @@
     | "403" -> "Forbidden", 
                (match reason with
                   Some Not_allowed -> Printf.sprintf
-"<p>Connection from %s rejected (see downloads.ini, <a 
href=\"http://mldonkey.sourceforge.net/Allowed_ips\";>allowed_ips</a>)</p>\n"
+"<p>Connection from %s rejected (see downloads.ini, <a 
href=\"http://mldonkey.sourceforge.net/Allowed_ips\";>allowed_ips</a>)</p>"
                                    from_ip
                 | Some Blocked -> Printf.sprintf "IP %s is blocked, its part 
of the used IP blocklist " from_ip
-                | None -> "")
-    | _ -> Printf.sprintf "Unknown %s" code, ""
+                | _ -> "")
+    | "404" -> "Not found", Printf.sprintf "The requested URL %swas not found 
on this server."
+                             (match reason with Some Url_not_found url -> url 
^ " " | _ -> "")
+    | _ -> Printf.sprintf "Unknown error %s" code, ""
   in
   let reject_message = Printf.sprintf
 "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">\n<html>
@@ -250,7 +253,8 @@
   Printf.sprintf
 "HTTP/1.1 %s %s\nMLDonkey/%s\nConnection: close
 Content-Type: text/html; charset=iso-8859-1\nContent-length: %d\r\n"
-    code error_text Autoconf.current_version (String.length reject_message), 
reject_message
+    code error_text Autoconf.current_version (String.length reject_message), 
reject_message,
+  Printf.sprintf "%s %s" code error_text
 
 let parse_head sock s =
   let h = split_head s in
@@ -681,13 +685,6 @@
       at_write_end buf.fd_task shutdown
 *)
 
-let need_auth r name =
-  r.reply_head <- "401 Unauthorized";
-  r.reply_headers <- [
-    "Connection", "close";
-    "WWW-Authenticate", Printf.sprintf "Basic realm=\"%s\"" name
-  ]
-
 (*
 let simple_give_auth psread pswrite request  =
   try
@@ -860,7 +857,7 @@
          (if ip_is_blocked from_ip then "IP is blocked" else "see allowed_ips 
setting");
         let token = create_token unlimited_connection_manager in
         let sock = TcpBufferedSocket.create_simple token "http connection" s in
-       let s1,s2 = error_page "403"
+       let s1,s2,_ = error_page "403"
            (Ip.to_string from_ip)
            (string_of_int from_port)
            (Ip.to_string (TcpBufferedSocket.my_ip sock))

Index: src/utils/net/http_server.mli
===================================================================
RCS file: /sources/mldonkey/mldonkey/src/utils/net/http_server.mli,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -b -r1.9 -r1.10
--- src/utils/net/http_server.mli       27 Jul 2006 21:45:06 -0000      1.9
+++ src/utils/net/http_server.mli       21 Oct 2006 19:35:09 -0000      1.10
@@ -17,7 +17,7 @@
     Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 *)
 type auth = No_auth | Read_auth | Write_auth
-type error_reason = Blocked | Not_allowed
+type error_reason = Blocked | Not_allowed | Url_not_found of string
 and header =
     Unknown of string * string
   | Referer of Url.url
@@ -67,7 +67,6 @@
   } 
 
 val create : config -> TcpServerSocket.t
-val need_auth : request -> string -> unit
 val html_escaped : string -> string
 val html_real_escaped : string -> string
   
@@ -79,4 +78,4 @@
   
 val request_range : request -> int64 * (int64 option)
 val parse_range : string -> int64 * int64 option * int64 option
-val error_page : string -> string -> string -> string -> string -> 
error_reason option -> string * string
+val error_page : string -> string -> string -> string -> string -> 
error_reason option -> string * string * string




reply via email to

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