Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Upgrade: xmlrpc-c version to 1.59.03 #11243

Open
wants to merge 2 commits into
base: 3.0-dev
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
From aca713786debd68c81a823c5989afb3de82da45b Mon Sep 17 00:00:00 2001
From: Enrico Scholz <[email protected]>
Date: Sat, 5 Apr 2008 11:41:34 +0200
Subject: [PATCH 2/3] 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 <i8> 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 | 7 ++++---
lib/libutil/string_number.c | 1 +
src/cpp/param_list.cpp | 2 +-
3 files changed, 6 insertions(+), 4 deletions(-)

diff --git a/include/xmlrpc-c/base.h b/include/xmlrpc-c/base.h
index e74e2c5..90f2c91 100644
--- a/include/xmlrpc-c/base.h
+++ b/include/xmlrpc-c/base.h
@@ -5,6 +5,7 @@

#include <stddef.h>
#include <stdarg.h>
+#include <stdint.h>
#include <time.h>
#include <xmlrpc-c/c_util.h> /* For XMLRPC_DLLEXPORT */
#include <xmlrpc-c/util.h>
@@ -73,9 +74,9 @@ xmlrpc_version(unsigned int * const majorP,

typedef signed int xmlrpc_int;
/* An integer of the type defined by XML-RPC <int>; i.e. 32 bit */
-typedef XMLRPC_INT32 xmlrpc_int32;
+typedef int32_t xmlrpc_int32;
/* An integer of the type defined by XML-RPC <i4>; i.e. 32 bit */
-typedef XMLRPC_INT64 xmlrpc_int64;
+typedef int64_t xmlrpc_int64;
/* An integer of the type defined by "XML-RPC" <i8>; i.e. 64 bit */
typedef int xmlrpc_bool;
/* A boolean (of the type defined by XML-RPC <boolean>, but there's
@@ -112,7 +113,7 @@ typedef int xmlrpc_socket;
#define XMLRPC_INT32_MAX 0x7fffffff
#define XMLRPC_INT32_MIN (-XMLRPC_INT32_MAX - 1)

-#define XMLRPC_INT64_MAX 0x7fffffffffffffffll
+#define XMLRPC_INT64_MAX ((xmlrpc_int64)0x7fffffffffffffffll)
#define XMLRPC_INT64_MIN (-XMLRPC_INT64_MAX - 1)


diff --git a/lib/libutil/string_number.c b/lib/libutil/string_number.c
index 1c284af..a7e78ad 100644
--- a/lib/libutil/string_number.c
+++ b/lib/libutil/string_number.c
@@ -6,6 +6,7 @@
============================================================================*/
#include <stdlib.h>
#include <string.h>
+#include <inttypes.h>
#include <errno.h>

#include <xmlrpc-c/base.h>
diff --git a/src/cpp/param_list.cpp b/src/cpp/param_list.cpp
index 1f7ae41..60f7df9 100644
--- a/src/cpp/param_list.cpp
+++ b/src/cpp/param_list.cpp
@@ -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<long long>(
+ xmlrpc_int64 const longlongvalue(static_cast<xmlrpc_int64>(
value_i8(this->paramVector[paramNumber])));

if (longlongvalue < minimum)
--
2.13.1

28 changes: 28 additions & 0 deletions SPECS-EXTENDED/xmlrpc-c/0003-allow-30x-redirections.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
From 9bb040a9ae29e1b5afcb674c74f107114b316818 Mon Sep 17 00:00:00 2001
From: Enrico Scholz <[email protected]>
Date: Thu, 29 Jul 2010 19:25:32 +0200
Subject: [PATCH 3/3] allow 30x redirections

---
lib/curl_transport/curltransaction.c | 4 ++++
1 file changed, 4 insertions(+)

diff --git a/lib/curl_transport/curltransaction.c b/lib/curl_transport/curltransaction.c
index f0aafae..b5392a9 100644
--- a/lib/curl_transport/curltransaction.c
+++ b/lib/curl_transport/curltransaction.c
@@ -671,6 +671,10 @@ setupCurlSession(xmlrpc_env * const envP,

curl_easy_setopt(curlSessionP, CURLOPT_POST, 1);
curl_easy_setopt(curlSessionP, CURLOPT_URL, transP->serverUrl);

+ curl_easy_setopt(curlSessionP, CURLOPT_FOLLOWLOCATION, 1);
+ curl_easy_setopt(curlSessionP, CURLOPT_MAXREDIRS, (long)10);
+ curl_easy_setopt(curlSessionP, CURLOPT_POSTREDIR, CURL_REDIR_POST_ALL);
+
XMLRPC_MEMBLOCK_APPEND(char, envP, transP->postDataP, "\0", 1);
if (!envP->fault_occurred) {
curl_easy_setopt(curlSessionP, CURLOPT_POSTFIELDS,
--
2.13.1

4 changes: 2 additions & 2 deletions SPECS-EXTENDED/xmlrpc-c/xmlrpc-c.signatures.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"Signatures": {
"xmlrpc-c-1.54.06.tgz": "ae6d0fb58f38f1536511360dc0081d3876c1f209d9eaa54357e2bacd690a5640"
"xmlrpc-c-1.59.03.tgz": "bdb71db42ab0be51591555885d11682b044c1034d4a3296401bf921ec0b233fe"
}
}
}
Loading