[erlang-xmlrpc] Initial commit (see rhbz #645288)

Peter Lemenkov peter at fedoraproject.org
Sun Oct 31 04:50:45 UTC 2010


commit 94b92c7d0bc013665938d349455c864b65816027
Author: Peter Lemenkov <lemenkov at gmail.com>
Date:   Sun Oct 31 07:50:31 2010 +0300

    Initial commit (see rhbz #645288)
    
    Signed-off-by: Peter Lemenkov <lemenkov at gmail.com>

 erlang-xmlrpc.spec |   67 +++++++++++++++++++++++++++++++++++++++++++++
 xmlrpc-1.13.tgz    |  Bin 0 -> 38169 bytes
 xmlrpc-fixes.diff  |   76 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 143 insertions(+), 0 deletions(-)
---
diff --git a/erlang-xmlrpc.spec b/erlang-xmlrpc.spec
new file mode 100644
index 0000000..f687d3c
--- /dev/null
+++ b/erlang-xmlrpc.spec
@@ -0,0 +1,67 @@
+%global realname xmlrpc
+%global debug_package %{nil}
+
+
+Name:		erlang-%{realname}
+Version:	1.13
+Release:	2%{?dist}
+Summary:	HTTP 1.1 compliant XML-RPC library for Erlang
+Group:		Development/Libraries
+License:	BSD
+URL:		http://github.com/rwbr/exmlrpc
+Source0:	http://erlang.stacken.kth.se/contrib/%{realname}-%{version}.tgz
+Patch1:		xmlrpc-fixes.diff
+BuildRoot:	%(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
+BuildRequires:	erlang-erts
+BuildRequires:	erlang-xmerl
+Requires:	erlang-erts >= R12B-5
+Requires:	erlang-kernel >= R12B-5
+Requires:	erlang-stdlib >= R12B-5
+Requires:	erlang-xmerl >= R12B-5
+
+
+%description
+HTTP 1.1 compliant XML-RPC library for Erlang.
+
+
+%prep
+%setup -q -n %{realname}-%{version}
+%patch1 -p1
+
+
+%build
+cd src && make %{?_smp_mflags}
+
+
+%install
+rm -rf %{buildroot}
+
+install -d %{buildroot}%{_libdir}/erlang/lib/%{realname}-%{version}/ebin/
+install -d %{buildroot}%{_mandir}/man3/
+
+install -m 644 -p ebin/*.beam %{buildroot}%{_libdir}/erlang/lib/%{realname}-%{version}/ebin/
+install -m 644 -p doc/%{realname}.3 %{buildroot}%{_mandir}/man3/
+
+
+%clean
+rm -rf %{buildroot}
+
+
+%files
+%defattr(-,root,root,-)
+%doc CHANGES LICENSE README TODO examples/ doc/xmlrpc.pdf doc/xmlrpc.ps doc/xmlrpc.txt
+%dir %{_libdir}/erlang/lib/%{realname}-%{version}
+%dir %{_libdir}/erlang/lib/%{realname}-%{version}/ebin
+%{_libdir}/erlang/lib/%{realname}-%{version}/ebin/tcp_serv.beam
+%{_libdir}/erlang/lib/%{realname}-%{version}/ebin/%{realname}.beam
+%{_libdir}/erlang/lib/%{realname}-%{version}/ebin/%{realname}_*.beam
+%{_mandir}/man3/%{realname}.3*
+
+
+%changelog
+* Thu Oct 28 2010 Peter Lemenkov <lemenkov at gmail.com> - 1.13-2
+- Ensure consistency in macro usage
+
+* Thu Oct 21 2010 Peter Lemenkov <lemenkov at gmail.com> - 1.13-1
+- Initial build
+
diff --git a/xmlrpc-1.13.tgz b/xmlrpc-1.13.tgz
new file mode 100644
index 0000000..7051501
Binary files /dev/null and b/xmlrpc-1.13.tgz differ
diff --git a/xmlrpc-fixes.diff b/xmlrpc-fixes.diff
new file mode 100644
index 0000000..9277428
--- /dev/null
+++ b/xmlrpc-fixes.diff
@@ -0,0 +1,76 @@
+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 at 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".


More information about the scm-commits mailing list