Sophie

Sophie

distrib > Fedora > 13 > i386 > by-pkgid > 35673eefbe37f1622fb5ae36f6c12564 > files > 3

erlang-xmlrpc-1.13-2.fc13.src.rpm

Only in xmlrpc-1.13-ipr2/: ip-patch.diff
diff -ru xmlrpc-1.13/src/xmlrpc.erl xmlrpc-1.13-ipr2/src/xmlrpc.erl
--- xmlrpc-1.13/src/xmlrpc.erl	2003-04-23 23:06:45.000000000 +0400
+++ xmlrpc-1.13-ipr2/src/xmlrpc.erl	2006-09-22 14:29:16.000000000 +0400
@@ -110,11 +110,12 @@
 	    case string:tokens(HeaderField, " \r\n") of
 		["Content-Length:", ContentLength] ->
 		    case catch list_to_integer(ContentLength) of
+			badarg -> 
+				{error, {invalid_content_length, ContentLength}};
 			Value ->
 			    parse_header(Socket, Timeout,
 					 Header#header{content_length =
-						       Value});
-			_ -> {error, {invalid_content_length, ContentLength}}
+						       Value})
 		    end;
 		["Connection:", "close"] ->
 		    parse_header(Socket, Timeout,
@@ -174,12 +175,12 @@
     start_link(all, Port, MaxSessions, Timeout, Handler, State).
 
 start_link(IP, Port, MaxSessions, Timeout, Handler, State) ->
-    OptionList = [{active, false}, {reuseaddr, true}|ip(IP)],
+    OptionList = [{active, false}, {reuseaddr, true}] ++ ip(IP),
     SessionHandler = {xmlrpc_http, handler, [Timeout, Handler, State]}, 
     tcp_serv:start_link([Port, MaxSessions, OptionList, SessionHandler]).
 
 ip(all) -> [];
-ip(IP) when tuple(IP) -> {ip, IP}.
+ip(IP) when tuple(IP) -> [{ip, IP}].
 
 %% Exported: stop/1
 
diff -ru xmlrpc-1.13/src/xmlrpc_decode.erl xmlrpc-1.13-ipr2/src/xmlrpc_decode.erl
--- xmlrpc-1.13/src/xmlrpc_decode.erl	2003-04-23 23:06:45.000000000 +0400
+++ xmlrpc-1.13-ipr2/src/xmlrpc_decode.erl	2007-08-24 15:34:15.000000000 +0400
@@ -28,7 +28,7 @@
 -author('jocke@gleipnir.com').
 -export([payload/1]).
 
--include("xmerl.hrl").
+-include_lib("xmerl/include/xmerl.hrl").
 
 payload(Payload) ->
     case xmerl_scan:string(Payload) of
diff -ru xmlrpc-1.13/src/xmlrpc_http.erl xmlrpc-1.13-ipr2/src/xmlrpc_http.erl
--- xmlrpc-1.13/src/xmlrpc_http.erl	2003-04-23 23:06:45.000000000 +0400
+++ xmlrpc-1.13-ipr2/src/xmlrpc_http.erl	2007-08-22 01:17:39.000000000 +0400
@@ -96,6 +96,9 @@
 		{"Content-Type:", "text/xml"} ->
 		    parse_header(Socket, Timeout,
 				 Header#header{content_type = "text/xml"});
+		{"Content-Type:", "text/xml; charset=utf-8"} ->
+		    parse_header(Socket, Timeout,
+				 Header#header{content_type = "text/xml; charset=utf-8"});
 		{"Content-Type:", ContentType} -> {status, 415};
 		{"User-Agent:", UserAgent} ->
 		    parse_header(Socket, Timeout,
@@ -193,6 +196,7 @@
 	 "Content-Length: ", integer_to_list(lists:flatlength(Payload)),
 	 "\r\n",
 	 "Server: Erlang/1.13\r\n",
+	 "Content-Type: text/xml\r\n",
 	 ExtraHeader, "\r\n",
 	 Payload],
     gen_tcp:send(Socket, Response).
@@ -200,7 +204,7 @@
 reason_phrase(200) -> "OK";
 reason_phrase(400) -> "Bad Request";
 reason_phrase(411) -> "Length required";
-reason_phrase(415) -> "Unsupported Media Type";     
+reason_phrase(415) -> "Unsupported Media Type";
 reason_phrase(500) -> "Internal Server Error";
 reason_phrase(501) -> "Not Implemented";
 reason_phrase(505) -> "HTTP Version not supported".