diff --git a/use-proper-datatypes.patch b/use-proper-datatypes.patch deleted file mode 100644 index bad6865..0000000 --- a/use-proper-datatypes.patch +++ /dev/null @@ -1,199 +0,0 @@ -From 1823bda8047c3d7113e86f7550cbf3df8d105e67 Mon Sep 17 00:00:00 2001 -From: Enrico Scholz -Date: Sat, 5 Apr 2008 11:41:34 +0200 -Subject: [PATCH] Use proper datatypes for 'long long' - -xmlrpc-c uses 'long long' at some places (e.g. in printf -statements with PRId64) under the assumption that it has a -width of exactly 64 bits. - -On 64 bit machines 'long long' has a width of 128 bit and -will cause overhead both in memory and cpu usage there. As -'long long' is used only to handle datatypes, the patch -uses a plain 64 integer type there. - -It is arguable whether 'int_least64_t' (and 'int_least32_t') -would be a better choice for 'int64_t' (and 'int32_t'), but -for now, the patch uses datatypes with exact widths. ---- - include/xmlrpc-c/base.h | 5 +++-- - include/xmlrpc-c/base.hpp | 10 +++++----- - src/cpp/param_list.cpp | 8 ++++---- - src/cpp/test/test.cpp | 12 ++++++------ - src/cpp/test/testclient.cpp | 2 +- - src/cpp/value.cpp | 8 ++++---- - 6 files changed, 23 insertions(+), 22 deletions(-) - -diff --git a/include/xmlrpc-c/base.h b/include/xmlrpc-c/base.h -index 712691c..9ce0cd2 100644 ---- a/include/xmlrpc-c/base.h -+++ b/include/xmlrpc-c/base.h -@@ -6,6 +6,7 @@ - #include - #include - #include -+#include - #include - #include - /* Defines XMLRPC_HAVE_WCHAR, XMLRPC_LONG_LONG */ -@@ -36,9 +37,9 @@ extern unsigned int const xmlrpc_version_point; - - typedef signed int xmlrpc_int; - /* An integer of the type defined by XML-RPC ; i.e. 32 bit */ --typedef signed int xmlrpc_int32; -+typedef int32_t xmlrpc_int32; - /* An integer of the type defined by XML-RPC ; i.e. 32 bit */ --typedef XMLRPC_LONG_LONG xmlrpc_int64; -+typedef int64_t xmlrpc_int64; - /* An integer of the type defined by "XML-RPC" ; i.e. 64 bit */ - typedef int xmlrpc_bool; - /* A boolean (of the type defined by XML-RPC , but there's -diff --git a/include/xmlrpc-c/base.hpp b/include/xmlrpc-c/base.hpp -index 5634b34..ab6fe3e 100644 ---- a/include/xmlrpc-c/base.hpp -+++ b/include/xmlrpc-c/base.hpp -@@ -200,11 +200,11 @@ public: - - class value_i8 : public value { - public: -- value_i8(long long const cvalue); -+ value_i8(xmlrpc_int64 const cvalue); - - value_i8(xmlrpc_c::value const baseValue); - -- operator long long() const; -+ operator xmlrpc_int64() const; - }; - - -@@ -330,10 +330,10 @@ public: - void - getNil(unsigned int const paramNumber) const; - -- long long -+ xmlrpc_int64 - getI8(unsigned int const paramNumber, -- long long const minimum = XMLRPC_INT64_MIN, -- long long const maximum = XMLRPC_INT64_MAX) const; -+ xmlrpc_int64 const minimum = XMLRPC_INT64_MIN, -+ xmlrpc_int64 const maximum = XMLRPC_INT64_MAX) const; - - void - verifyEnd(unsigned int const paramNumber) const; -diff --git a/src/cpp/param_list.cpp b/src/cpp/param_list.cpp -index 67c636b..60f7df9 100644 ---- a/src/cpp/param_list.cpp -+++ b/src/cpp/param_list.cpp -@@ -265,10 +265,10 @@ paramList::getNil(unsigned int const paramNumber) const { - - - --long long -+xmlrpc_int64 - paramList::getI8(unsigned int const paramNumber, -- long long const minimum, -- long long const maximum) const { -+ xmlrpc_int64 const minimum, -+ xmlrpc_int64 const maximum) const { - - if (paramNumber >= this->paramVector.size()) - throw(fault("Not enough parameters", fault::CODE_TYPE)); -@@ -277,7 +277,7 @@ paramList::getI8(unsigned int const paramNumber, - throw(fault("Parameter that is supposed to be 64-bit integer is not", - fault::CODE_TYPE)); - -- long long const longlongvalue(static_cast( -+ xmlrpc_int64 const longlongvalue(static_cast( - value_i8(this->paramVector[paramNumber]))); - - if (longlongvalue < minimum) -diff --git a/src/cpp/test/test.cpp b/src/cpp/test/test.cpp -index b3c2caf..c92653f 100644 ---- a/src/cpp/test/test.cpp -+++ b/src/cpp/test/test.cpp -@@ -418,15 +418,15 @@ public: - } - virtual void runtests(unsigned int const) { - value_i8 int1(7); -- TEST(static_cast(int1) == 7); -+ TEST(static_cast(int1) == 7); - value_i8 int2(-7); -- TEST(static_cast(int2) == -7); -+ TEST(static_cast(int2) == -7); - value_i8 int5(1ull << 40); -- TEST(static_cast(int5) == (1ull << 40)); -+ TEST(static_cast(int5) == (1ull << 40)); - value val1(int1); - TEST(val1.type() == value::TYPE_I8); - value_i8 int3(val1); -- TEST(static_cast(int3) == 7); -+ TEST(static_cast(int3) == 7); - try { - value_i8 int4(value_double(3.7)); - TEST_FAILED("invalid cast double-i8 suceeded"); -@@ -554,7 +554,7 @@ public: - structData.insert(member); - paramList1.add(value_struct(structData)); - paramList1.add(value_nil()); -- paramList1.add(value_i8((long long)UINT_MAX + 1)); -+ paramList1.add(value_i8((xmlrpc_int64)UINT_MAX + 1)); - - TEST(paramList1.size() == 11); - -@@ -578,7 +578,7 @@ public: - TEST(paramList1.getArray(7, 1, 3).size() == 3); - paramList1.getStruct(8)["the_integer"]; - paramList1.getNil(9); -- TEST(paramList1.getI8(10) == (long long)UINT_MAX + 1); -+ TEST(paramList1.getI8(10) == (xmlrpc_int64)UINT_MAX + 1); - paramList1.verifyEnd(11); - - paramList paramList2(5); -diff --git a/src/cpp/test/testclient.cpp b/src/cpp/test/testclient.cpp -index cb7f86a..e3c23a8 100644 ---- a/src/cpp/test/testclient.cpp -+++ b/src/cpp/test/testclient.cpp -@@ -783,7 +783,7 @@ public: - TEST(rpcApacheP->isFinished()); - TEST(rpcApacheP->isSuccessful()); - value_i8 const result(rpcApacheP->getResult()); -- TEST(static_cast(result) == 7ll); -+ TEST(static_cast(result) == 7ll); - } - } - }; -diff --git a/src/cpp/value.cpp b/src/cpp/value.cpp -index 588b91f..6dcba93 100644 ---- a/src/cpp/value.cpp -+++ b/src/cpp/value.cpp -@@ -831,13 +831,13 @@ value_nil::value_nil(xmlrpc_c::value const baseValue) { - - - --value_i8::value_i8(long long const cppvalue) { -+value_i8::value_i8(xmlrpc_int64 const cppvalue) { - - class cWrapper { - public: - xmlrpc_value * valueP; - -- cWrapper(long long const cppvalue) { -+ cWrapper(xmlrpc_int64 const cppvalue) { - env_wrap env; - - this->valueP = xmlrpc_i8_new(&env.env_c, cppvalue); -@@ -866,9 +866,9 @@ value_i8::value_i8(xmlrpc_c::value const baseValue) { - - - --value_i8::operator long long() const { -+value_i8::operator xmlrpc_int64() const { - -- long long retval; -+ xmlrpc_int64 retval; - env_wrap env; - - xmlrpc_read_i8(&env.env_c, this->cValueP, &retval); --- -1.5.4.1 - diff --git a/xmlrpc-c-c++.patch b/xmlrpc-c-c++.patch new file mode 100644 index 0000000..ee56c02 --- /dev/null +++ b/xmlrpc-c-c++.patch @@ -0,0 +1,25 @@ +From 23e1abe53511c61f297a226c03ea9f09ff58c86a Mon Sep 17 00:00:00 2001 +From: Enrico Scholz +Date: Sat, 15 Nov 2008 11:35:26 +0100 +Subject: [PATCH] fixed c++ syntax + +--- + src/cpp/server_cgi.cpp | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/src/cpp/server_cgi.cpp b/src/cpp/server_cgi.cpp +index da4152d..7b5baa2 100644 +--- a/src/cpp/server_cgi.cpp ++++ b/src/cpp/server_cgi.cpp +@@ -37,7 +37,7 @@ public: + bool authCookiePresent; + string authCookie; + +- httpInfo::httpInfo() { ++ httpInfo() { + + const char * const requestMethodC = getenv("REQUEST_METHOD"); + const char * const contentTypeC = getenv("CONTENT_TYPE"); +-- +1.5.6.5 + diff --git a/make-cmake-transition.patch b/xmlrpc-c-cmake.patch similarity index 89% rename from make-cmake-transition.patch rename to xmlrpc-c-cmake.patch index b174994..25e2151 100644 --- a/make-cmake-transition.patch +++ b/xmlrpc-c-cmake.patch @@ -1,23 +1,23 @@ -From 534f3014fc72d42869e5f54a1c4487e9331c5aaf Mon Sep 17 00:00:00 2001 +From 01430cca6884e144cc196fc2120a3d3c11e6189b Mon Sep 17 00:00:00 2001 From: Enrico Scholz Date: Sat, 5 Apr 2008 10:55:02 +0200 Subject: [PATCH] make -> cmake transition --- - CMakeLists.txt | 260 +++++++++++++++++++++++++++ + CMakeLists.txt | 249 +++++++++++++++++++++++++++ cmake/try-attr.cc | 3 + cmake/va-list-is-array.c | 9 + examples/CMakeLists.txt | 57 ++++++ examples/config.h | 1 + - examples/cpp/CMakeLists.txt | 24 +++ + examples/cpp/CMakeLists.txt | 30 ++++ include/CMakeLists.txt | 3 + include/xmlrpc-c/CMakeLists.txt | 73 ++++++++ - include/xmlrpc-c/config.h.cmake | 41 +++++ + include/xmlrpc-c/config.h.cmake | 30 ++++ lib/CMakeLists.txt | 12 ++ lib/abyss/CMakeLists.txt | 3 + lib/abyss/src/CMakeLists.txt | 64 +++++++ lib/abyss/src/xmlrpc_abyss.pc.cmake | 12 ++ - lib/curl_transport/CMakeLists.txt | 7 + + lib/curl_transport/CMakeLists.txt | 20 ++ lib/expat/CMakeLists.txt | 9 + lib/expat/gennmtab/CMakeLists.txt | 3 + lib/expat/xmlparse/CMakeLists.txt | 7 + @@ -27,10 +27,10 @@ Subject: [PATCH] make -> cmake transition lib/libutil/CMakeLists.txt | 24 +++ lib/libutil/xmlrpc_util.pc.cmake | 10 + lib/libwww_transport/CMakeLists.txt | 7 + - lib/util/CMakeLists.txt | 16 ++ + lib/util/CMakeLists.txt | 17 ++ lib/wininet_transport/CMakeLists.txt | 7 + - src/CMakeLists.txt | 107 +++++++++++ - src/cpp/CMakeLists.txt | 60 ++++++ + src/CMakeLists.txt | 118 +++++++++++++ + src/cpp/CMakeLists.txt | 66 +++++++ src/cpp/test/CMakeLists.txt | 17 ++ src/cpp/xmlrpc++.pc.cmake | 12 ++ src/cpp/xmlrpc_client++.pc.cmake | 12 ++ @@ -38,27 +38,30 @@ Subject: [PATCH] make -> cmake transition src/cpp/xmlrpc_packetsocket.pc.cmake | 12 ++ src/cpp/xmlrpc_server++.pc.cmake | 12 ++ src/cpp/xmlrpc_server_abyss++.pc.cmake | 12 ++ + src/cpp/xmlrpc_server_cgi++.pc.cmake | 12 ++ src/cpp/xmlrpc_server_pstream++.pc.cmake | 12 ++ - src/test/CMakeLists.txt | 28 +++ + src/test/CMakeLists.txt | 37 ++++ src/xmlrpc.pc.cmake | 12 ++ src/xmlrpc_client.pc.cmake | 12 ++ src/xmlrpc_server.pc.cmake | 12 ++ src/xmlrpc_server_abyss.pc.cmake | 12 ++ src/xmlrpc_server_cgi.pc.cmake | 12 ++ - tools/CMakeLists.txt | 10 + + tools/CMakeLists.txt | 12 ++ tools/binmode-rpc-kit/CMakeLists.txt | 2 + + tools/lib/CMakefiles.txt | 1 + tools/turbocharger/CMakeLists.txt | 1 + tools/xml-rpc-api2cpp/CMakeLists.txt | 15 ++ - tools/xmlrpc/CMakeLists.txt | 15 ++ + tools/xmlrpc/CMakeLists.txt | 17 ++ tools/xmlrpc/config.h | 1 + tools/xmlrpc_cpp_proxy/CMakeLists.txt | 17 ++ + tools/xmlrpc_pstream/CMakefiles.txt | 6 + tools/xmlrpc_transport/CMakeLists.txt | 9 + tools/xmlrpc_transport/config.h | 1 + transport_config.h.cmake | 16 ++ version.h.cmake | 5 + - xmlrpc-c-config | 77 ++++++++ - xmlrpc_config.h.cmake | 87 +++++++++ - 54 files changed, 1305 insertions(+), 0 deletions(-) + xmlrpc-c-config | 80 +++++++++ + xmlrpc_config.h.cmake | 99 +++++++++++ + 57 files changed, 1367 insertions(+), 0 deletions(-) create mode 100644 CMakeLists.txt create mode 100644 cmake/try-attr.cc create mode 100644 cmake/va-list-is-array.c @@ -93,6 +96,7 @@ Subject: [PATCH] make -> cmake transition create mode 100644 src/cpp/xmlrpc_packetsocket.pc.cmake create mode 100644 src/cpp/xmlrpc_server++.pc.cmake create mode 100644 src/cpp/xmlrpc_server_abyss++.pc.cmake + create mode 100644 src/cpp/xmlrpc_server_cgi++.pc.cmake create mode 100644 src/cpp/xmlrpc_server_pstream++.pc.cmake create mode 100644 src/test/CMakeLists.txt create mode 100644 src/xmlrpc.pc.cmake @@ -102,11 +106,13 @@ Subject: [PATCH] make -> cmake transition create mode 100644 src/xmlrpc_server_cgi.pc.cmake create mode 100644 tools/CMakeLists.txt create mode 100644 tools/binmode-rpc-kit/CMakeLists.txt + create mode 100644 tools/lib/CMakefiles.txt create mode 100644 tools/turbocharger/CMakeLists.txt create mode 100644 tools/xml-rpc-api2cpp/CMakeLists.txt create mode 100644 tools/xmlrpc/CMakeLists.txt create mode 100644 tools/xmlrpc/config.h create mode 100644 tools/xmlrpc_cpp_proxy/CMakeLists.txt + create mode 100644 tools/xmlrpc_pstream/CMakefiles.txt create mode 100644 tools/xmlrpc_transport/CMakeLists.txt create mode 100644 tools/xmlrpc_transport/config.h create mode 100644 transport_config.h.cmake @@ -116,28 +122,28 @@ Subject: [PATCH] make -> cmake transition diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 -index 0000000..d239456 +index 0000000..25474f4 --- /dev/null +++ b/CMakeLists.txt -@@ -0,0 +1,260 @@ +@@ -0,0 +1,249 @@ +## -*- cmake -*- +project(xmlrpc-c) -+include(UsePkgConfig) ++include(FindPkgConfig) +include(CheckIncludeFile) +include(CheckFunctionExists) + +set(XMLRPC_C_VERSION_MAJOR "1" CACHE STRING "Version (major) of xmlrpc-c") -+set(XMLRPC_C_VERSION_MINOR "14" CACHE STRING "Version (minor) of xmlrpc-c") -+set(XMLRPC_C_VERSION_POINT "8" CACHE STRING "Version (point) of xmlrpc-c") ++set(XMLRPC_C_VERSION_MINOR "16" CACHE STRING "Version (minor) of xmlrpc-c") ++set(XMLRPC_C_VERSION_POINT "4" CACHE STRING "Version (point) of xmlrpc-c") + +set(XMLRPC_C_VERSION + "${XMLRPC_C_VERSION_MAJOR}.${XMLRPC_C_VERSION_MINOR}.${XMLRPC_C_VERSION_POINT}" + CACHE STRING "Version of xmlrpc-c") + -+set(XMLRPC_C_LIBVERSION "3.14") ++set(XMLRPC_C_LIBVERSION "3.${XMLRPC_C_VERSION_MINOR}") +set(XMLRPC_C_SOVERSION "3") + -+set(XMLRPC_CXX_LIBVERSION "4.14") ++set(XMLRPC_CXX_LIBVERSION "4.${XMLRPC_C_VERSION_MINOR}") +set(XMLRPC_CXX_SOVERSION "4") + +string(REGEX REPLACE "^0+" "" XMLRPC_C_VERSION_MAJOR_NUM "${XMLRPC_C_VERSION_MAJOR}") @@ -208,23 +214,15 @@ index 0000000..d239456 +set(wininet_srcdir ${xmlrpc-c_SOURCE_DIR}/lib/wininet_transport) + +########### -+pkgconfig(libcurl CURL_INCLUDE_DIR CURL_LINK_DIR CURL_LINK_FLAGS CURL_CFLAGS) +if(DEFINED MUST_BUILD_CURL_CLIENT) -+ set(tmp ${MUST_BUILD_CURL_CLIENT}) ++ set(tmp REQUIRED) +else(DEFINED MUST_BUILD_CURL_CLIENT) -+ if(CURL_LINK_FLAGS) -+ set(tmp 1) -+ else(CURL_LINK_FLAGS) -+ set(tmp 0) -+ endif(CURL_LINK_FLAGS) ++ set(tmp) +endif(DEFINED MUST_BUILD_CURL_CLIENT) + -+if(tmp) -+ set(MUST_BUILD_CLIENT 1) -+ STRING(REGEX REPLACE "\n" "" CURL_CFLAGS ${CURL_CFLAGS}) # HACK!! -+ message(STATUS "Using libcurl transport ${CURL_CFLAGS}") -+endif(tmp) -+ensc_set_bool(MUST_BUILD_CURL_CLIENT ${tmp} "Set iff Curl client transport shall be built") ++pkg_check_modules(CURL ${tmp} libcurl) ++ ++ensc_set_bool(MUST_BUILD_CURL_CLIENT ${CURL_FOUND} "Set iff Curl client transport shall be built") +set(curl_srcdir ${xmlrpc-c_SOURCE_DIR}/lib/curl_transport) + +########### @@ -258,14 +256,11 @@ index 0000000..d239456 +set(ENABLE_ABYSS_THREADS 1 CACHE BOOL "Use pthread") + +if(ENABLE_LIBXML2_BACKEND) -+ foreach(tmp libxml-2.0 libxml2 libxml) -+ if (NOT DEFINED libxml_pkgconfig) -+ pkgconfig(${tmp} LIBXML2_INCLUDE_DIR LIBXML2_LINK_DIR LIBXML2_LINK_FLAGS LIBXML2_CFLAGS) -+ if(LIBXML2_LINK_FLAGS) -+ set(libxml_pkgconfig ${tmp}) -+ endif(LIBXML2_LINK_FLAGS) -+ endif(NOT DEFINED libxml_pkgconfig) -+ endforeach(tmp) ++ pkg_check_modules(LIBXML2 libxml-2.0) ++ ++ if(LIBXML2_FOUND) ++ set(libxml_pkgconfig libxml-2.0) # TODO: enhance more alternative modules ++ endif(LIBXML2_FOUND) +endif(ENABLE_LIBXML2_BACKEND) + + @@ -332,19 +327,19 @@ index 0000000..d239456 + +configure_file(${xmlrpc-c_SOURCE_DIR}/xmlrpc_config.h.cmake + ${xmlrpc-c_BINARY_DIR}/xmlrpc_config.h -+ ESCAPE_QUOTES @ONLY) ++ ESCAPE_QUOTES @ONLY) + +configure_file(${xmlrpc-c_SOURCE_DIR}/version.h.cmake + ${xmlrpc-c_BINARY_DIR}/version.h -+ ESCAPE_QUOTES @ONLY) ++ ESCAPE_QUOTES @ONLY) + +configure_file(${xmlrpc-c_SOURCE_DIR}/transport_config.h.cmake + ${xmlrpc-c_BINARY_DIR}/transport_config.h -+ ESCAPE_QUOTES @ONLY) ++ ESCAPE_QUOTES @ONLY) + +configure_file(${xmlrpc-c_SOURCE_DIR}/include/xmlrpc-c/config.h.cmake + ${xmlrpc-c_BINARY_DIR}/include/xmlrpc-c/config.h -+ ESCAPE_QUOTES @ONLY) ++ ESCAPE_QUOTES @ONLY) + + +include_directories(${xmlrpc-c_SOURCE_DIR}/include) @@ -476,10 +471,10 @@ index 0000000..31d5f9b +#include "../xmlrpc_config.h" diff --git a/examples/cpp/CMakeLists.txt b/examples/cpp/CMakeLists.txt new file mode 100644 -index 0000000..254782b +index 0000000..f27edbb --- /dev/null +++ b/examples/cpp/CMakeLists.txt -@@ -0,0 +1,24 @@ +@@ -0,0 +1,30 @@ +# -*- cmake -*- + +if(ENABLE_ABYSS_SERVER) @@ -488,6 +483,12 @@ index 0000000..254782b + ensc_add_example(xmlrpc_inetd_server cpp abyss_serverxx) +endif(ENABLE_ABYSS_SERVER) + ++if (ENABLE_CGI_SERVER) ++ set(cgi_serverxx_LIBS xmlrpc_server_cgi++) ++ ++ ensc_add_example(xmlrpc_sample_add_server_cgi cpp cgi_serverxx) ++endif(ENABLE_CGI_SERVER) ++ +if(MUST_BUILD_CLIENT) + set(abyss_clientxx_LIBS xmlrpc_client++) + @@ -515,7 +516,7 @@ index 0000000..ebfdba5 +add_subdirectory(xmlrpc-c) diff --git a/include/xmlrpc-c/CMakeLists.txt b/include/xmlrpc-c/CMakeLists.txt new file mode 100644 -index 0000000..e4f8073 +index 0000000..2b305b7 --- /dev/null +++ b/include/xmlrpc-c/CMakeLists.txt @@ -0,0 +1,73 @@ @@ -541,7 +542,7 @@ index 0000000..e4f8073 + +list(APPEND compat_links "oldxmlrpc.h xmlrpc.h") +list(APPEND compat_links "server.h xmlrpc_server.h") -+list(APPEND compat_links "server_abyss.h xmlrpc_server_abyss.h") ++list(APPEND compat_links "server_abyss.h xmlrpc_abyss.h") +list(APPEND compat_links "server_w32httpsys.h xmlrpc_server_w32httpsys.h") + + @@ -568,7 +569,7 @@ index 0000000..e4f8073 + client_global.h) + + list(APPEND compat_links "client.h xmlrpc_client.h") -+ ++ + if(ENABLE_CPLUSPLUS) + list(APPEND headers + client.hpp @@ -594,10 +595,10 @@ index 0000000..e4f8073 +endforeach(ln) diff --git a/include/xmlrpc-c/config.h.cmake b/include/xmlrpc-c/config.h.cmake new file mode 100644 -index 0000000..c3d46ab +index 0000000..b2d7373 --- /dev/null +++ b/include/xmlrpc-c/config.h.cmake -@@ -0,0 +1,41 @@ +@@ -0,0 +1,30 @@ +/* --*- c -*-- */ +#ifndef XMLRPC_C_CONFIG_H_INCLUDED +#define XMLRPC_C_CONFIG_H_INCLUDED @@ -627,17 +628,6 @@ index 0000000..c3d46ab + #define XMLRPC_HAVE_TIMESPEC 1 +#endif + -+#if defined(_MSC_VER) -+#if _MSC_VER < 1300 -+ /* This is MSVC 6. */ -+ #define XMLRPC_LONG_LONG __int64 -+#else -+ #define XMLRPC_LONG_LONG long long -+#endif -+#else -+ #define XMLRPC_LONG_LONG long long -+#endif -+ +#endif diff --git a/lib/CMakeLists.txt b/lib/CMakeLists.txt new file mode 100644 @@ -756,16 +746,29 @@ index 0000000..fae7af3 +Cflags: diff --git a/lib/curl_transport/CMakeLists.txt b/lib/curl_transport/CMakeLists.txt new file mode 100644 -index 0000000..3814f08 +index 0000000..4224a13 --- /dev/null +++ b/lib/curl_transport/CMakeLists.txt -@@ -0,0 +1,7 @@ +@@ -0,0 +1,20 @@ +# -*- cmake -*- + +if(MUST_BUILD_CURL_CLIENT) + list(APPEND transport_SOURCES + ${CMAKE_CURRENT_SOURCE_DIR}/xmlrpc_curl_transport.c -+ ${CMAKE_CURRENT_SOURCE_DIR}/xmlrpc_curl_transport.h) ++ ++ ${CMAKE_CURRENT_SOURCE_DIR}/curltransaction.c ++ ${CMAKE_CURRENT_SOURCE_DIR}/curltransaction.h ++ ++ ${CMAKE_CURRENT_SOURCE_DIR}/curlmulti.c ++ ${CMAKE_CURRENT_SOURCE_DIR}/curlmulti.h ++ ++ ${CMAKE_CURRENT_SOURCE_DIR}/lock.h ++ ++ ${CMAKE_CURRENT_SOURCE_DIR}/lock_pthread.c ++ ${CMAKE_CURRENT_SOURCE_DIR}/lock_pthread.h ++ ++ ${CMAKE_CURRENT_SOURCE_DIR}/curlversion.h ++ ) +endif(MUST_BUILD_CURL_CLIENT) diff --git a/lib/expat/CMakeLists.txt b/lib/expat/CMakeLists.txt new file mode 100644 @@ -911,7 +914,7 @@ index 0000000..3d2968e +Cflags: -I${includedir} diff --git a/lib/libwww_transport/CMakeLists.txt b/lib/libwww_transport/CMakeLists.txt new file mode 100644 -index 0000000..a494605 +index 0000000..aa52d9e --- /dev/null +++ b/lib/libwww_transport/CMakeLists.txt @@ -0,0 +1,7 @@ @@ -920,19 +923,20 @@ index 0000000..a494605 +if(MUST_BUILD_LIBWWW_CLIENT) + list(APPEND transport_SOURCES + ${CMAKE_CURRENT_SOURCE_DIR}/xmlrpc_libwww_transport.c -+ ${CMAKE_CURRENT_SOURCE_DIR}/xmlrpc_libwww_transport.h) ++ ${CMAKE_CURRENT_SOURCE_DIR}/xmlrpc_libwww_transport.h) +endif(MUST_BUILD_LIBWWW_CLIENT) diff --git a/lib/util/CMakeLists.txt b/lib/util/CMakeLists.txt new file mode 100644 -index 0000000..f223bed +index 0000000..80696d9 --- /dev/null +++ b/lib/util/CMakeLists.txt -@@ -0,0 +1,16 @@ +@@ -0,0 +1,17 @@ +## -*- cmake -*- + +set(util_SOURCES + casprintf.c + cmdline_parser.c ++ cmdline_parser_cpp.cpp + getoptx.c + getoptx.h + stripcaseeq.c @@ -946,7 +950,7 @@ index 0000000..f223bed +add_library(util STATIC ${util_SOURCES}) diff --git a/lib/wininet_transport/CMakeLists.txt b/lib/wininet_transport/CMakeLists.txt new file mode 100644 -index 0000000..de3501c +index 0000000..17535ab --- /dev/null +++ b/lib/wininet_transport/CMakeLists.txt @@ -0,0 +1,7 @@ @@ -955,20 +959,20 @@ index 0000000..de3501c +if(MUST_BUILD_WININET_CLIENT) + list(APPEND transport_SOURCES + ${CMAKE_CURRENT_SOURCE_DIR}/xmlrpc_wininet_transport.c -+ ${CMAKE_CURRENT_SOURCE_DIR}/xmlrpc_wininet_transport.h) ++ ${CMAKE_CURRENT_SOURCE_DIR}/xmlrpc_wininet_transport.h) +endif(MUST_BUILD_WININET_CLIENT) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt new file mode 100644 -index 0000000..f0981e3 +index 0000000..80af5a6 --- /dev/null +++ b/src/CMakeLists.txt -@@ -0,0 +1,107 @@ +@@ -0,0 +1,118 @@ +# -*- cmake -*- + +if(ENABLE_LIBXML2_BACKEND) + set(xmlrpc_xml_parser xmlrpc_libxml2.c) + set(libxml_INCLUDES ${LIBXML2_CFLAGS}) -+ set(libxml_LIBS ${LIBXML2_LINK_FLAGS}) ++ set(libxml_LIBS ${LIBXML2_LDFLAGS}) + set(xmlrpc_pkgconfig_req ${libxml_pkgconfig}) +else(ENABLE_LIBXML2_BACKEND) + set(xmlrpc_xml_parser xmlrpc_expat.c) @@ -992,13 +996,23 @@ index 0000000..f0981e3 + +if(MUST_BUILD_CURL_CLIENT) + set(client_curl_CFLAGS ${CURL_CFLAGS}) -+ set(client_curl_LIBS ${CURL_LINK_FLAGS}) ++ set(client_curl_LIBS ${CURL_LDFLAGS}) + set(xmlrpc_client_pkgconfig_req libcurl) -+ list(APPEND transport_SOURCES ${curl_srcdir}/xmlrpc_curl_transport.c) ++ list(APPEND transport_SOURCES ++ ${curl_srcdir}/xmlrpc_curl_transport.c ++ ${curl_srcdir}/curltransaction.c ++ ${curl_srcdir}/curltransaction.h ++ ${curl_srcdir}/curlmulti.c ++ ${curl_srcdir}/curlmulti.h ++ ${curl_srcdir}/lock.h ++ ${curl_srcdir}/lock_pthread.c ++ ${curl_srcdir}/lock_pthread.h ++ ${curl_srcdir}/curlversion.h ++ ) +endif(MUST_BUILD_CURL_CLIENT) + +set(client_CFLAGS "-I${wininet_srcdir} -I${libwww_srcdir} -I${curl_srcdir} ${client_wininet_CFLAGS} ${client_libwww_CFLAGS} ${client_curl_CFLAGS}") -+set(client_LIBS "${client_wininet_LIBS} ${client_libwww_LIBS} ${client_curl_LIBS}") ++set(client_LIBS ${client_wininet_LIBS} ${client_libwww_LIBS} ${client_curl_LIBS}) + + +add_subdirectory(cpp) @@ -1008,7 +1022,8 @@ index 0000000..f0981e3 + +### libxmlrpc.so +add_library(xmlrpc SHARED -+ double.c resource.c trace.c version.c ${xmlrpc_xml_parser} ++ double.c parse_value.c resource.c trace.c version.c ++ ${xmlrpc_xml_parser} + xmlrpc_data.c xmlrpc_datetime.c xmlrpc_string.c + xmlrpc_array.c xmlrpc_struct.c + xmlrpc_build.c xmlrpc_decompose.c xmlrpc_parse.c xmlrpc_serialize.c @@ -1072,10 +1087,10 @@ index 0000000..f0981e3 +enable_testing() diff --git a/src/cpp/CMakeLists.txt b/src/cpp/CMakeLists.txt new file mode 100644 -index 0000000..5f5d409 +index 0000000..6091e2b --- /dev/null +++ b/src/cpp/CMakeLists.txt -@@ -0,0 +1,60 @@ +@@ -0,0 +1,66 @@ +# -*- cmake -*- + +####### libxmlrpc++.so @@ -1104,6 +1119,12 @@ index 0000000..5f5d409 +list(APPEND lib_TARGETS xmlrpc_server_abyss++) +ensc_pkgconfig(xmlrpc_server_abyss++) + ++####### libxmlrpc_server_cgi++.so ++add_library(xmlrpc_server_cgi++ SHARED server_cgi.cpp) ++target_link_libraries(xmlrpc_server_cgi++ xmlrpc_server++) ++list(APPEND lib_TARGETS xmlrpc_server_cgi++) ++ensc_pkgconfig(xmlrpc_server_cgi++) ++ +####### libxmlrpc_server_pstream++.so +add_library(xmlrpc_server_pstream++ SHARED server_pstream.cpp) +target_link_libraries(xmlrpc_server_pstream++ xmlrpc_server++ xmlrpc_packetsocket) @@ -1267,6 +1288,24 @@ index 0000000..b325eff +Requires.private: xmlrpc_server++ xmlrpc_server_abyss xmlrpc++ xmlrpc_abyss xmlrpc_util +Libs: -L${libdir} -lxmlrpc_server_abyss++ +Cflags: -I${includedir} +diff --git a/src/cpp/xmlrpc_server_cgi++.pc.cmake b/src/cpp/xmlrpc_server_cgi++.pc.cmake +new file mode 100644 +index 0000000..72a3726 +--- /dev/null ++++ b/src/cpp/xmlrpc_server_cgi++.pc.cmake +@@ -0,0 +1,12 @@ ++bindir=@bindir@ ++prefix=@prefix@ ++libdir=@libdir@ ++includedir=@includedir@ ++ ++Name: xmlrpc_server_cgi++ ++Description: XMLRPC C++ CGI-Server library ++Version: @XMLRPC_C_VERSION@ ++ ++Requires.private: xmlrpc_server++ xmlrpc++ xmlrpc ++Libs: -L${libdir} -lxmlrpc_server_cgi++ ++Cflags: -I${includedir} diff --git a/src/cpp/xmlrpc_server_pstream++.pc.cmake b/src/cpp/xmlrpc_server_pstream++.pc.cmake new file mode 100644 index 0000000..da5639d @@ -1287,16 +1326,25 @@ index 0000000..da5639d +Cflags: -I${includedir} diff --git a/src/test/CMakeLists.txt b/src/test/CMakeLists.txt new file mode 100644 -index 0000000..28d5dae +index 0000000..0859ccc --- /dev/null +++ b/src/test/CMakeLists.txt -@@ -0,0 +1,28 @@ +@@ -0,0 +1,37 @@ +# -*- cmake -*- + +set(test_SOURCES -+ abyss.c abyss.h -+ test.c cgi.c method_registry.c parse_xml.c serialize.c server_abyss.c -+ value.c xml_data.c) ++ abyss.c ++ abyss.h ++ test.c ++ cgi.c ++ method_registry.c ++ parse_xml.c ++ serialize.c ++ serialize_value.c ++ server_abyss.c ++ value.c ++ value_datetime.c ++ xml_data.c) + +if(MUST_BUILD_CLIENT) + list(APPEND test_SOURCES client.c) @@ -1411,12 +1459,14 @@ index 0000000..4d174ef +Cflags: -I${includedir} diff --git a/tools/CMakeLists.txt b/tools/CMakeLists.txt new file mode 100644 -index 0000000..6187433 +index 0000000..750fed4 --- /dev/null +++ b/tools/CMakeLists.txt -@@ -0,0 +1,10 @@ +@@ -0,0 +1,12 @@ +# -*- cmake -*- + ++add_subdirectory(lib) ++ +add_subdirectory(binmode-rpc-kit) +add_subdirectory(turbocharger) + @@ -1433,6 +1483,13 @@ index 0000000..a707c75 @@ -0,0 +1,2 @@ +# -*- cmake -*- + +diff --git a/tools/lib/CMakefiles.txt b/tools/lib/CMakefiles.txt +new file mode 100644 +index 0000000..342423d +--- /dev/null ++++ b/tools/lib/CMakefiles.txt +@@ -0,0 +1 @@ ++# -*- cmake -*- diff --git a/tools/turbocharger/CMakeLists.txt b/tools/turbocharger/CMakeLists.txt new file mode 100644 index 0000000..342423d @@ -1463,16 +1520,18 @@ index 0000000..c759dec + DESTINATION ${mandir}/man1) diff --git a/tools/xmlrpc/CMakeLists.txt b/tools/xmlrpc/CMakeLists.txt new file mode 100644 -index 0000000..976df30 +index 0000000..da01ec3 --- /dev/null +++ b/tools/xmlrpc/CMakeLists.txt -@@ -0,0 +1,15 @@ +@@ -0,0 +1,17 @@ +# -*- cmake -*- + ++#set_directory_properties(PROPERTIES INCLUDE_DIRECTORIES ../lib/include) ++ ++include_directories(../lib/include) +add_executable(tool-xmlrpc + xmlrpc.c -+ dumpvalue.c -+ dumpvalue.h) ++ ../lib/dumpvalue.c) +target_link_libraries(tool-xmlrpc xmlrpc_client util) + +set_target_properties(tool-xmlrpc @@ -1512,6 +1571,18 @@ index 0000000..4166023 + +install(TARGETS xmlrpc_cpp_proxy + RUNTIME DESTINATION bin) +diff --git a/tools/xmlrpc_pstream/CMakefiles.txt b/tools/xmlrpc_pstream/CMakefiles.txt +new file mode 100644 +index 0000000..67ae8c5 +--- /dev/null ++++ b/tools/xmlrpc_pstream/CMakefiles.txt +@@ -0,0 +1,6 @@ ++# -*- cmake -*- ++ ++add_executable(xmlrpc_pstream ++ xmlrpc_pstream.cpp ++ ${tools_lib_SOURCES}) ++target_link_libraries(xmlrpc_pstream readline util) diff --git a/tools/xmlrpc_transport/CMakeLists.txt b/tools/xmlrpc_transport/CMakeLists.txt new file mode 100644 index 0000000..b73d7c0 @@ -1569,10 +1640,10 @@ index 0000000..12ab86d +#define XMLRPC_VERSION_POINT @XMLRPC_C_VERSION_POINT_NUM@ diff --git a/xmlrpc-c-config b/xmlrpc-c-config new file mode 100755 -index 0000000..8915017 +index 0000000..c32555e --- /dev/null +++ b/xmlrpc-c-config -@@ -0,0 +1,77 @@ +@@ -0,0 +1,80 @@ +#! /bin/sh + +comp= @@ -1583,12 +1654,13 @@ index 0000000..8915017 +need_abyss= +need_pstream= +need_packetsocket= ++need_cgi= + +while test $# -gt 0; do + case $1 in + (c++) comp="$comp xmlrpc_cpp";; -+ (server-util) comp="$comp xmlrpc_server";; -+ (cgi-server) comp="$comp xmlrpc_server_cgi";; ++ (server-util) need_server=1;; ++ (cgi-server) need_cgi=1;; + (c++2) need_cxx=1;; + (abyss-server) need_abyss=1;; + (pstream-server) need_pstream=1;; @@ -1608,10 +1680,12 @@ index 0000000..8915017 + test -z "$need_client" || comp="$comp xmlrpc_client" + test -z "$need_abyss" || comp="$comp xmlrpc_server_abyss" + test -z "$need_server" || comp="$comp xmlrpc_server" ++ test -z "$need_cgi" || comp="$comp xmlrpc_server_cgi" +else + test -z "$need_client" || comp="$comp xmlrpc_client++" + test -z "$need_abyss" || comp="$comp xmlrpc_server_abyss++" + test -z "$need_server" || comp="$comp xmlrpc_server++" ++ test -z "$need_cgi" || comp="$comp xmlrpc_server_cgi++" +fi + +test -z "$need_pstream" || comp="$comp xmlrpc_server_pstream++" @@ -1652,10 +1726,10 @@ index 0000000..8915017 +exec pkg-config "$@" $comp diff --git a/xmlrpc_config.h.cmake b/xmlrpc_config.h.cmake new file mode 100644 -index 0000000..3ba3202 +index 0000000..1c9ece8 --- /dev/null +++ b/xmlrpc_config.h.cmake -@@ -0,0 +1,87 @@ +@@ -0,0 +1,99 @@ +/* -*- c -*- */ + +#ifndef H_XMLRPC_C_CONFIG_H @@ -1694,7 +1768,7 @@ index 0000000..3ba3202 + #if (!defined(__inline__)) + #if (defined(__sgi) || defined(_AIX) || defined(_MSC_VER)) + #define __inline__ __inline -+ #else ++ #else + #define __inline__ + #endif + #endif @@ -1724,6 +1798,18 @@ index 0000000..3ba3202 + #define HAVE_TIMESPEC 1 +#endif + ++#if MSVCRT ++ #define XMLRPC_VSNPRINTF _vsnprintf ++#else ++ #define XMLRPC_VSNPRINTF vsnprintf ++#endif ++ ++#if MSVCRT ++ #define HAVE_REGEX 0 ++#else ++ #define HAVE_REGEX 1 ++#endif ++ +#if defined(_MSC_VER) +/* Starting with MSVC 8, the runtime library defines various POSIX functions + such as strdup() whose names violate the ISO C standard (the standard @@ -1744,5 +1830,5 @@ index 0000000..3ba3202 + +#endif -- -1.5.5.1 +1.5.6.5 diff --git a/xmlrpc-c-longlong.patch b/xmlrpc-c-longlong.patch new file mode 100644 index 0000000..e67d6a1 --- /dev/null +++ b/xmlrpc-c-longlong.patch @@ -0,0 +1,110 @@ +From 57ba0a3556f5180f5c7b9d793672c055ec373eb5 Mon Sep 17 00:00:00 2001 +From: Enrico Scholz +Date: Sat, 5 Apr 2008 11:41:34 +0200 +Subject: [PATCH] Use proper datatypes for 'long long' + +xmlrpc-c uses 'long long' at some places (e.g. in printf +statements with PRId64) under the assumption that it has a +width of exactly 64 bits. + +On 64 bit machines 'long long' has a width of 128 bit and +will cause overhead both in memory and cpu usage there. As +'long long' is used only to handle datatypes, the patch +uses a plain 64 integer type there. + +It is arguable whether 'int_least64_t' (and 'int_least32_t') +would be a better choice for 'int64_t' (and 'int32_t'), but +for now, the patch uses datatypes with exact widths. +--- + include/xmlrpc-c/base.h | 10 ++++++---- + src/cpp/param_list.cpp | 8 ++++---- + src/cpp/value.cpp | 2 +- + 3 files changed, 11 insertions(+), 9 deletions(-) + +diff --git a/include/xmlrpc-c/base.h b/include/xmlrpc-c/base.h +index 6cf1fc8..886d39b 100644 +--- a/include/xmlrpc-c/base.h ++++ b/include/xmlrpc-c/base.h +@@ -5,7 +5,9 @@ + + #include + #include ++#include + #include ++#include + #include + #include + /* Defines XMLRPC_HAVE_WCHAR, XMLRPC_INT64 */ +@@ -36,9 +38,9 @@ extern unsigned int const xmlrpc_version_point; + + typedef signed int xmlrpc_int; + /* An integer of the type defined by XML-RPC ; i.e. 32 bit */ +-typedef XMLRPC_INT32 xmlrpc_int32; ++typedef int32_t xmlrpc_int32; + /* An integer of the type defined by XML-RPC ; i.e. 32 bit */ +-typedef XMLRPC_INT64 xmlrpc_int64; ++typedef int64_t xmlrpc_int64; + /* An integer of the type defined by "XML-RPC" ; i.e. 64 bit */ + typedef int xmlrpc_bool; + /* A boolean (of the type defined by XML-RPC , but there's +@@ -113,7 +115,7 @@ extern xmlrpc_type xmlrpc_value_type (xmlrpc_value* const value); + + xmlrpc_value * + xmlrpc_int_new(xmlrpc_env * const envP, +- int const intValue); ++ xmlrpc_int32 const intValue); + + xmlrpc_value * + xmlrpc_i8_new(xmlrpc_env * const envP, +@@ -122,7 +124,7 @@ xmlrpc_i8_new(xmlrpc_env * const envP, + void + xmlrpc_read_int(xmlrpc_env * const envP, + const xmlrpc_value * const valueP, +- int * const intValueP); ++ xmlrpc_int32 * const intValueP); + + xmlrpc_value * + xmlrpc_bool_new(xmlrpc_env * const envP, +diff --git a/src/cpp/param_list.cpp b/src/cpp/param_list.cpp +index 67c636b..60f7df9 100644 +--- a/src/cpp/param_list.cpp ++++ b/src/cpp/param_list.cpp +@@ -265,10 +265,10 @@ paramList::getNil(unsigned int const paramNumber) const { + + + +-long long ++xmlrpc_int64 + paramList::getI8(unsigned int const paramNumber, +- long long const minimum, +- long long const maximum) const { ++ xmlrpc_int64 const minimum, ++ xmlrpc_int64 const maximum) const { + + if (paramNumber >= this->paramVector.size()) + throw(fault("Not enough parameters", fault::CODE_TYPE)); +@@ -277,7 +277,7 @@ paramList::getI8(unsigned int const paramNumber, + throw(fault("Parameter that is supposed to be 64-bit integer is not", + fault::CODE_TYPE)); + +- long long const longlongvalue(static_cast( ++ xmlrpc_int64 const longlongvalue(static_cast( + value_i8(this->paramVector[paramNumber]))); + + if (longlongvalue < minimum) +diff --git a/src/cpp/value.cpp b/src/cpp/value.cpp +index ff3a011..9f2f88e 100644 +--- a/src/cpp/value.cpp ++++ b/src/cpp/value.cpp +@@ -265,7 +265,7 @@ value_int::value_int(xmlrpc_c::value const baseValue) { + + value_int::operator int() const { + +- int retval; ++ xmlrpc_int32 retval; + env_wrap env; + + xmlrpc_read_int(&env.env_c, this->cValueP, &retval); +-- +1.5.6.5 + diff --git a/fixed-broken-format-string-modifiers-for-size_t-type.patch b/xmlrpc-c-printf-size_t.patch similarity index 75% rename from fixed-broken-format-string-modifiers-for-size_t-type.patch rename to xmlrpc-c-printf-size_t.patch index 86de1e3..4e35de6 100644 --- a/fixed-broken-format-string-modifiers-for-size_t-type.patch +++ b/xmlrpc-c-printf-size_t.patch @@ -1,4 +1,4 @@ -From 3e749ef00fe69f76587620d2c326aee363e46253 Mon Sep 17 00:00:00 2001 +From 29df0db1c131eb08cfd745003116dc4b63c81ff4 Mon Sep 17 00:00:00 2001 From: Enrico Scholz Date: Mon, 25 Feb 2008 17:48:25 +0100 Subject: [PATCH] fixed broken format string modifiers for size_t typed arguments @@ -6,17 +6,18 @@ Subject: [PATCH] fixed broken format string modifiers for size_t typed arguments --- lib/abyss/src/socket_unix.c | 4 ++-- lib/libutil/memblock.c | 2 +- + src/cpp/server_cgi.cpp | 2 +- src/xmlrpc_data.c | 2 +- src/xmlrpc_datetime.c | 2 +- src/xmlrpc_decompose.c | 4 ++-- - src/xmlrpc_parse.c | 16 ++++++++-------- + src/xmlrpc_parse.c | 8 ++++---- src/xmlrpc_server_abyss.c | 2 +- src/xmlrpc_string.c | 8 ++++---- tools/xmlrpc/xmlrpc.c | 2 +- - 9 files changed, 21 insertions(+), 21 deletions(-) + 10 files changed, 18 insertions(+), 18 deletions(-) diff --git a/lib/abyss/src/socket_unix.c b/lib/abyss/src/socket_unix.c -index 0059a1e..5ec8f78 100644 +index 3da48cc..51a32a7 100644 --- a/lib/abyss/src/socket_unix.c +++ b/lib/abyss/src/socket_unix.c @@ -193,8 +193,8 @@ channelWrite(TChannel * const channelP, @@ -43,6 +44,19 @@ index d79d4ca..25992e8 100644 blockP->_allocated); } +diff --git a/src/cpp/server_cgi.cpp b/src/cpp/server_cgi.cpp +index 15d3df3..c8bb41d 100644 +--- a/src/cpp/server_cgi.cpp ++++ b/src/cpp/server_cgi.cpp +@@ -240,7 +240,7 @@ writeNormalHttpResp(FILE * const fileP, + fprintf(fileP, "Set-Cookie: auth=%s\n", authCookie.c_str()); + + fprintf(fileP, "Content-type: text/xml; charset=\"utf-8\"\n"); +- fprintf(fileP, "Content-length: %u\n", httpBody.size()); ++ fprintf(fileP, "Content-length: %zu\n", httpBody.size()); + fprintf(fileP, "\n"); + + // HTTP body diff --git a/src/xmlrpc_data.c b/src/xmlrpc_data.c index 28827fe..415dd6d 100644 --- a/src/xmlrpc_data.c @@ -57,17 +71,17 @@ index 28827fe..415dd6d 100644 else { memcpy(byteStringValue, contents, size); diff --git a/src/xmlrpc_datetime.c b/src/xmlrpc_datetime.c -index 832f4fb..a02ca21 100644 +index a4b6454..b7a08e2 100644 --- a/src/xmlrpc_datetime.c +++ b/src/xmlrpc_datetime.c -@@ -208,7 +208,7 @@ validateFormat(xmlrpc_env * const envP, - const char * const t) { - - if (strlen(t) != 17) -- xmlrpc_faultf(envP, "%u characters instead of 15.", strlen(t)); -+ xmlrpc_faultf(envP, "%zu characters instead of 15.", strlen(t)); - else if (t[8] != 'T') - xmlrpc_faultf(envP, "9th character is '%c', not 'T'", t[8]); +@@ -428,7 +428,7 @@ validateFormat(xmlrpc_env * const envP, + if (strlen(dt) < 17) + xmlrpc_env_set_fault_formatted( + envP, XMLRPC_PARSE_ERROR, +- "Invalid length of %u of datetime. " ++ "Invalid length of %zu of datetime. " + "Must be at least 17 characters", + strlen(dt)); else { diff --git a/src/xmlrpc_decompose.c b/src/xmlrpc_decompose.c index eeb3414..36e62f6 100644 @@ -92,7 +106,7 @@ index eeb3414..36e62f6 100644 else { struct mbrDecomp * const mbrP = diff --git a/src/xmlrpc_parse.c b/src/xmlrpc_parse.c -index b62406e..29aec20 100644 +index 43d9d54..6638654 100644 --- a/src/xmlrpc_parse.c +++ b/src/xmlrpc_parse.c @@ -44,7 +44,7 @@ @@ -104,25 +118,7 @@ index b62406e..29aec20 100644 xml_element_name(elem), (count), \ xml_element_children_size(elem)); \ while (0) -@@ -830,7 +830,7 @@ parseMethodNameElement(xmlrpc_env * const envP, - xmlrpc_env_set_fault_formatted( - envP, XMLRPC_PARSE_ERROR, - "A element should not have children. " -- "This one has %u of them.", xml_element_children_size(nameElemP)); -+ "This one has %zu of them.", xml_element_children_size(nameElemP)); - else { - const char * const cdata = xml_element_cdata(nameElemP); - -@@ -889,7 +889,7 @@ parseCallChildren(xmlrpc_env * const envP, - xmlrpc_env_set_fault_formatted( - envP, XMLRPC_PARSE_ERROR, - " has extraneous children, other than " -- " and . Total child count = %u", -+ " and . Total child count = %zu", - callChildCount); - - if (envP->fault_occurred) -@@ -927,7 +927,7 @@ xmlrpc_parse_call(xmlrpc_env * const envP, +@@ -293,7 +293,7 @@ xmlrpc_parse_call(xmlrpc_env * const envP, if (xmlLen > xmlrpc_limit_get(XMLRPC_XML_SIZE_LIMIT_ID)) xmlrpc_env_set_fault_formatted( envP, XMLRPC_LIMIT_EXCEEDED_ERROR, @@ -131,25 +127,7 @@ index b62406e..29aec20 100644 xmlrpc_limit_get(XMLRPC_XML_SIZE_LIMIT_ID)); else { xml_element * callElemP; -@@ -1004,7 +1004,7 @@ parseFaultElement(xmlrpc_env * const envP, - if (xml_element_children_size(faultElement) != 1) - xmlrpc_env_set_fault_formatted( - envP, XMLRPC_PARSE_ERROR, -- " element should have 1 child, but it has %u.", -+ " element should have 1 child, but it has %zu.", - xml_element_children_size(faultElement)); - else { - xml_element * const faultValueP = -@@ -1100,7 +1100,7 @@ parseMethodResponseElt(xmlrpc_env * const envP, - } else - xmlrpc_env_set_fault_formatted( - envP, XMLRPC_PARSE_ERROR, -- " has %u children, should have 1.", -+ " has %zu children, should have 1.", - xml_element_children_size(methodResponseEltP)); - } - -@@ -1139,8 +1139,8 @@ xmlrpc_parse_response2(xmlrpc_env * const envP, +@@ -545,8 +545,8 @@ xmlrpc_parse_response2(xmlrpc_env * const envP, if (xmlDataLen > xmlrpc_limit_get(XMLRPC_XML_SIZE_LIMIT_ID)) xmlrpc_env_set_fault_formatted( envP, XMLRPC_LIMIT_EXCEEDED_ERROR, @@ -161,10 +139,10 @@ index b62406e..29aec20 100644 else { xmlrpc_env env; diff --git a/src/xmlrpc_server_abyss.c b/src/xmlrpc_server_abyss.c -index 15c37d6..1a6ea47 100644 +index 64cd133..551298a 100644 --- a/src/xmlrpc_server_abyss.c +++ b/src/xmlrpc_server_abyss.c -@@ -459,7 +459,7 @@ processCall(TSession * const abyssSessionP, +@@ -464,7 +464,7 @@ processCall(TSession * const abyssSessionP, if (contentSize > xmlrpc_limit_get(XMLRPC_XML_SIZE_LIMIT_ID)) xmlrpc_env_set_fault_formatted( &env, XMLRPC_LIMIT_EXCEEDED_ERROR, @@ -174,7 +152,7 @@ index 15c37d6..1a6ea47 100644 xmlrpc_mem_block * body; /* Read XML data off the wire. */ diff --git a/src/xmlrpc_string.c b/src/xmlrpc_string.c -index 8bf299d..a2a4bf4 100644 +index 8bf299d..8354b42 100644 --- a/src/xmlrpc_string.c +++ b/src/xmlrpc_string.c @@ -141,7 +141,7 @@ xmlrpc_read_string(xmlrpc_env * const envP, @@ -200,7 +178,7 @@ index 8bf299d..a2a4bf4 100644 MALLOCARRAY(stringValue, length + 1); if (stringValue == NULL) - xmlrpc_faultf(envP, "Unable to allocate space for %u-byte string", -+ xmlrpc_faultf(envP, "Unable to allocate space for %zu-byte string", ++ xmlrpc_faultf(envP, "Unable to allocate space for %zu-byte string", length); else { memcpy(stringValue, wcontents, length * sizeof(wchar_t)); @@ -227,5 +205,5 @@ index 1bdc44c..c4e0618 100644 else { size_t const byteStringSize = strlen(valueString)/2; -- -1.5.4.5 +1.5.6.5 diff --git a/xmlrpc-c-stdlib.patch b/xmlrpc-c-stdlib.patch new file mode 100644 index 0000000..f9fb47b --- /dev/null +++ b/xmlrpc-c-stdlib.patch @@ -0,0 +1,24 @@ +From fbab59e1bc20b9ae885c5cfe2f5c4e9b083ae5bc Mon Sep 17 00:00:00 2001 +From: Enrico Scholz +Date: Sat, 15 Nov 2008 11:34:53 +0100 +Subject: [PATCH] include missing + +--- + src/cpp/server_cgi.cpp | 1 + + 1 files changed, 1 insertions(+), 0 deletions(-) + +diff --git a/src/cpp/server_cgi.cpp b/src/cpp/server_cgi.cpp +index c8bb41d..da4152d 100644 +--- a/src/cpp/server_cgi.cpp ++++ b/src/cpp/server_cgi.cpp +@@ -14,6 +14,7 @@ + + #include + #include ++#include + + #include "xmlrpc-c/girerr.hpp" + using girerr::throwf; +-- +1.5.6.5 + diff --git a/xmlrpc-c-va_list.patch b/xmlrpc-c-va_list.patch new file mode 100644 index 0000000..35e7c4a --- /dev/null +++ b/xmlrpc-c-va_list.patch @@ -0,0 +1,41 @@ +From 4a8a7e8161d0e0b362508a6e51abf18d50712968 Mon Sep 17 00:00:00 2001 +From: Enrico Scholz +Date: Sat, 15 Nov 2008 12:07:25 +0100 +Subject: [PATCH] 'va_list' param must be non-const + +vasprintf(3) uses a non-const 'va_list ap' parameter. +Hence, do not accept a 'const' on in the wrapper function. +--- + include/xmlrpc-c/util.h | 2 +- + lib/libutil/error.c | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/include/xmlrpc-c/util.h b/include/xmlrpc-c/util.h +index 5b6e4f5..9387ef7 100644 +--- a/include/xmlrpc-c/util.h ++++ b/include/xmlrpc-c/util.h +@@ -140,7 +140,7 @@ void + xmlrpc_set_fault_formatted_v(xmlrpc_env * const envP, + int const code, + const char * const format, +- va_list const args); ++ va_list args); + + /* The same as the above, but using a printf-style format string. */ + void +diff --git a/lib/libutil/error.c b/lib/libutil/error.c +index fd964d0..b182308 100644 +--- a/lib/libutil/error.c ++++ b/lib/libutil/error.c +@@ -86,7 +86,7 @@ void + xmlrpc_set_fault_formatted_v(xmlrpc_env * const envP, + int const code, + const char * const format, +- va_list const args) { ++ va_list args) { + + const char * faultDescription; + +-- +1.5.6.5 +