[ros-ros-comm] 04/16: Merged previous patches to the new upstream version

Leopold Palomo-Avellaneda leo at alaxarxa.net
Fri May 20 21:20:30 UTC 2016


This is an automated email from the git hooks/post-receive script.

lepalom-guest pushed a commit to branch master
in repository ros-ros-comm.

commit e12768e7c82a7ea37dca880160df28a71aab7b20
Author: Leopold Palomo-Avellaneda <leopold.palomo at upc.edu>
Date:   Thu Apr 7 11:13:00 2016 +0200

    Merged previous patches to the new upstream version
---
 .../patches/0002-Add-Debian-specific-SONAMEs.patch |  117 +-
 .../0004-Fix-executable-not-elf-or-script.patch    |    7 +-
 ...06-Fix-confusing-copyright-messages-dates.patch |   45 +
 debian/patches/0006-Fixup-copyrights.patch         |   40 -
 .../0007-move-heaers-to-include-xmlrpcpp.patch     | 3676 ++++++++++++++++++++
 ...-xmlrpcpp-move-heaers-to-include-xmlrpcpp.patch |  772 ----
 debian/patches/series                              |    4 +-
 7 files changed, 3738 insertions(+), 923 deletions(-)

diff --git a/debian/patches/0002-Add-Debian-specific-SONAMEs.patch b/debian/patches/0002-Add-Debian-specific-SONAMEs.patch
index def9f76..2c2070f 100644
--- a/debian/patches/0002-Add-Debian-specific-SONAMEs.patch
+++ b/debian/patches/0002-Add-Debian-specific-SONAMEs.patch
@@ -1,120 +1,21 @@
-From: Jochen Sprickerhof <git at jochen.sprickerhof.de>
-Date: Thu, 11 Dec 2014 13:01:16 +0100
+From: Leopold Palomo-Avellaneda <leopold.palomo at upc.edu>
+Date: Thu, 7 Apr 2016 11:08:36 +0200
 Subject: Add Debian specific SONAMEs
 
 ---
- clients/roscpp/CMakeLists.txt            | 1 +
- tools/rosbag/CMakeLists.txt              | 1 +
- tools/rosbag_storage/CMakeLists.txt      | 1 +
- tools/rosconsole/CMakeLists.txt          | 3 +++
- tools/topic_tools/CMakeLists.txt         | 1 +
- utilities/message_filters/CMakeLists.txt | 1 +
- utilities/roslz4/CMakeLists.txt          | 1 +
- utilities/xmlrpcpp/CMakeLists.txt        | 1 +
- 8 files changed, 10 insertions(+)
+ clients/roscpp/CMakeLists.txt | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/clients/roscpp/CMakeLists.txt b/clients/roscpp/CMakeLists.txt
-index 252d43f..bbaaecc 100644
+index c194a56..f4fcbeb 100644
 --- a/clients/roscpp/CMakeLists.txt
 +++ b/clients/roscpp/CMakeLists.txt
-@@ -115,6 +115,7 @@ add_library(roscpp
+@@ -119,7 +119,7 @@ add_library(roscpp
    src/libros/service.cpp
    src/libros/this_node.cpp
    )
+-
 +set_target_properties(roscpp PROPERTIES VERSION ${roscpp_VERSION} SOVERSION "0d")
+ add_dependencies(roscpp ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS})
  
- add_dependencies(roscpp roscpp_gencpp rosgraph_msgs_gencpp std_msgs_gencpp)
- 
-diff --git a/tools/rosbag/CMakeLists.txt b/tools/rosbag/CMakeLists.txt
-index 4d063ea..2cfdcff 100644
---- a/tools/rosbag/CMakeLists.txt
-+++ b/tools/rosbag/CMakeLists.txt
-@@ -20,6 +20,7 @@ add_library(rosbag
-   src/player.cpp
-   src/recorder.cpp
-   src/time_translator.cpp)
-+set_target_properties(rosbag PROPERTIES VERSION ${rosbag_VERSION} SOVERSION "0d")
- 
- target_link_libraries(rosbag ${catkin_LIBRARIES} ${Boost_LIBRARIES})
- 
-diff --git a/tools/rosbag_storage/CMakeLists.txt b/tools/rosbag_storage/CMakeLists.txt
-index 4ceee01..053bb35 100644
---- a/tools/rosbag_storage/CMakeLists.txt
-+++ b/tools/rosbag_storage/CMakeLists.txt
-@@ -33,6 +33,7 @@ add_library(rosbag_storage
-   src/view.cpp
-   src/uncompressed_stream.cpp
- )
-+set_target_properties(rosbag_storage PROPERTIES VERSION ${rosbag_storage_VERSION} SOVERSION "0d")
- 
- target_link_libraries(rosbag_storage ${catkin_LIBRARIES} ${Boost_LIBRARIES} ${BZIP2_LIBRARIES} ${console_bridge_LIBRARIES})
- 
-diff --git a/tools/rosconsole/CMakeLists.txt b/tools/rosconsole/CMakeLists.txt
-index f7a4c00..9be7e66 100644
---- a/tools/rosconsole/CMakeLists.txt
-+++ b/tools/rosconsole/CMakeLists.txt
-@@ -63,13 +63,16 @@ ENDIF(${CMAKE_SYSTEM} MATCHES "Darwin-11.*")
- include_directories(include ${catkin_INCLUDE_DIRS} ${rosconsole_backend_INCLUDE_DIRS} ${Boost_INCLUDE_DIRS})
- 
- add_library(rosconsole_backend_interface src/rosconsole/rosconsole_backend.cpp)
-+set_target_properties(rosconsole_backend_interface PROPERTIES VERSION ${rosconsole_VERSION} SOVERSION "1d")
- 
- add_library(rosconsole src/rosconsole/rosconsole.cpp)
-+set_target_properties(rosconsole PROPERTIES VERSION ${rosconsole_VERSION} SOVERSION "1d")
- target_link_libraries(rosconsole ${rosconsole_backend_LIBRARIES} ${catkin_LIBRARIES} ${Boost_LIBRARIES})
- 
- if(ROSCONSOLE_BACKEND STREQUAL "log4cxx")
-   add_library(rosconsole_log4cxx src/rosconsole/impl/rosconsole_log4cxx.cpp)
-   target_link_libraries(rosconsole_log4cxx rosconsole_backend_interface ${LOG4CXX_LIBRARIES} ${Boost_LIBRARIES})
-+  set_target_properties(rosconsole_log4cxx PROPERTIES VERSION ${rosconsole_VERSION} SOVERSION "1d")
- 
-   if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/test/speed_test.cpp")
-     add_executable(rosconsole_speed_test test/speed_test.cpp)
-diff --git a/tools/topic_tools/CMakeLists.txt b/tools/topic_tools/CMakeLists.txt
-index c9d5605..7745299 100644
---- a/tools/topic_tools/CMakeLists.txt
-+++ b/tools/topic_tools/CMakeLists.txt
-@@ -27,6 +27,7 @@ catkin_package(
- catkin_add_env_hooks(20.transform SHELLS bash DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/env-hooks)
- 
- add_library(topic_tools src/shape_shifter.cpp src/parse.cpp)
-+set_target_properties(topic_tools PROPERTIES VERSION ${topic_tools_VERSION} SOVERSION "0d")
- target_link_libraries(topic_tools ${catkin_LIBRARIES})
- 
- add_executable(switch_mux src/switch_mux.cpp)
-diff --git a/utilities/message_filters/CMakeLists.txt b/utilities/message_filters/CMakeLists.txt
-index c095f0c..a9a54a8 100644
---- a/utilities/message_filters/CMakeLists.txt
-+++ b/utilities/message_filters/CMakeLists.txt
-@@ -14,6 +14,7 @@ include_directories(include ${catkin_INCLUDE_DIRS} ${Boost_INCLUDE_DIRS})
- link_directories(${catkin_LIBRARY_DIRS})
- 
- add_library(${PROJECT_NAME} src/connection.cpp)
-+set_target_properties(${PROJECT_NAME} PROPERTIES VERSION ${message_filters_VERSION} SOVERSION "0d")
- target_link_libraries(${PROJECT_NAME} ${catkin_LIBRARIES} ${Boost_LIBRARIES})
- 
- install(TARGETS ${PROJECT_NAME}
-diff --git a/utilities/roslz4/CMakeLists.txt b/utilities/roslz4/CMakeLists.txt
-index 6e539bf..a3d601f 100644
---- a/utilities/roslz4/CMakeLists.txt
-+++ b/utilities/roslz4/CMakeLists.txt
-@@ -23,6 +23,7 @@ catkin_package(
- 
- include_directories(include ${lz4_INCLUDE_DIRS} ${catkin_INCLUDE_DIRS})
- add_library(roslz4 src/lz4s.c src/xxhash.c)
-+set_target_properties(roslz4 PROPERTIES VERSION ${roslz4_VERSION} SOVERSION "0d")
- target_link_libraries(roslz4 ${lz4_LIBRARIES} ${catkin_LIBRARIES})
- 
- if(NOT ANDROID)
-diff --git a/utilities/xmlrpcpp/CMakeLists.txt b/utilities/xmlrpcpp/CMakeLists.txt
-index 89061fd..67b1a4c 100644
---- a/utilities/xmlrpcpp/CMakeLists.txt
-+++ b/utilities/xmlrpcpp/CMakeLists.txt
-@@ -25,6 +25,7 @@ add_library(xmlrpcpp
-   src/XmlRpcUtil.cpp
-   src/XmlRpcValue.cpp
-   )
-+set_target_properties(xmlrpcpp PROPERTIES VERSION ${xmlrpcpp_VERSION} SOVERSION "0d")
- 
- if(WIN32)
-   target_link_libraries(xmlrpcpp ws2_32)
+ target_link_libraries(roscpp
diff --git a/debian/patches/0004-Fix-executable-not-elf-or-script.patch b/debian/patches/0004-Fix-executable-not-elf-or-script.patch
index 672e2c2..657a297 100644
--- a/debian/patches/0004-Fix-executable-not-elf-or-script.patch
+++ b/debian/patches/0004-Fix-executable-not-elf-or-script.patch
@@ -1,8 +1,13 @@
 From: Leopold Palomo-Avellaneda <leo at alaxarxa.net>
-Date: Wed Feb  4 09:30:17 CET 2015
+Date: Wed, 4 Feb 2015 09:30:17 +0100
 Subject: Fix executable not elf or script
 
+---
+ clients/rospy/rosbuild/scripts/genutil.py | 1 +
+ 1 file changed, 1 insertion(+)
 
+diff --git a/clients/rospy/rosbuild/scripts/genutil.py b/clients/rospy/rosbuild/scripts/genutil.py
+index 537865b..71e0cab 100644
 --- a/clients/rospy/rosbuild/scripts/genutil.py
 +++ b/clients/rospy/rosbuild/scripts/genutil.py
 @@ -1,3 +1,4 @@
diff --git a/debian/patches/0006-Fix-confusing-copyright-messages-dates.patch b/debian/patches/0006-Fix-confusing-copyright-messages-dates.patch
new file mode 100644
index 0000000..84a2119
--- /dev/null
+++ b/debian/patches/0006-Fix-confusing-copyright-messages-dates.patch
@@ -0,0 +1,45 @@
+From: Debian Science Maintainers
+ <debian-science-maintainers at lists.alioth.debian.org>
+Date: Thu, 7 Apr 2016 11:09:19 +0200
+Subject: Fix confusing copyright messages/dates
+
+Should be upstreamed.
+---
+ test/test_roscpp/test/src/latching_publisher.cpp | 2 +-
+ test/test_roscpp/test/src/timer_callbacks.cpp    | 2 +-
+ test/test_roscpp/test/src/wait_for_message.cpp   | 2 +-
+ 3 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/test/test_roscpp/test/src/latching_publisher.cpp b/test/test_roscpp/test/src/latching_publisher.cpp
+index f24b1f3..cd4beeb 100644
+--- a/test/test_roscpp/test/src/latching_publisher.cpp
++++ b/test/test_roscpp/test/src/latching_publisher.cpp
+@@ -1,5 +1,5 @@
+ /*
+- * Copyright (c) 2NULLNULL8, Willow Garage, Inc.
++ * Copyright (c) 2008, Willow Garage, Inc.
+  * All rights reserved.
+  *
+  * Redistribution and use in source and binary forms, with or without
+diff --git a/test/test_roscpp/test/src/timer_callbacks.cpp b/test/test_roscpp/test/src/timer_callbacks.cpp
+index b016ee5..9f2bc7e 100644
+--- a/test/test_roscpp/test/src/timer_callbacks.cpp
++++ b/test/test_roscpp/test/src/timer_callbacks.cpp
+@@ -1,5 +1,5 @@
+ /*
+- * Copyright (c) 2NULLNULL8, Willow Garage, Inc.
++ * Copyright (c) 2008, Willow Garage, Inc.
+  * All rights reserved.
+  *
+  * Redistribution and use in source and binary forms, with or without
+diff --git a/test/test_roscpp/test/src/wait_for_message.cpp b/test/test_roscpp/test/src/wait_for_message.cpp
+index 672cdae..d18b025 100644
+--- a/test/test_roscpp/test/src/wait_for_message.cpp
++++ b/test/test_roscpp/test/src/wait_for_message.cpp
+@@ -1,5 +1,5 @@
+ /*
+- * Copyright (c) 2NULLNULL8, Willow Garage, Inc.
++ * Copyright (c) 2008, Willow Garage, Inc.
+  * All rights reserved.
+  *
+  * Redistribution and use in source and binary forms, with or without
diff --git a/debian/patches/0006-Fixup-copyrights.patch b/debian/patches/0006-Fixup-copyrights.patch
deleted file mode 100644
index 8924860..0000000
--- a/debian/patches/0006-Fixup-copyrights.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-Subject: Fix confusing copyright messages/dates
-Author: Wookey <wookey at debian.org>
-Last-update: Mon, 21 Dec 2015 16:25:55 +0100
-Forwarded: No
-
-Should be upstreamed.
-
-Index: ros-ros-comm/test/test_roscpp/test/src/latching_publisher.cpp
-===================================================================
---- ros-ros-comm.orig/test/test_roscpp/test/src/latching_publisher.cpp
-+++ ros-ros-comm/test/test_roscpp/test/src/latching_publisher.cpp
-@@ -1,5 +1,5 @@
- /*
-- * Copyright (c) 2NULLNULL8, Willow Garage, Inc.
-+ * Copyright (c) 2008, Willow Garage, Inc.
-  * All rights reserved.
-  *
-  * Redistribution and use in source and binary forms, with or without
-Index: ros-ros-comm/test/test_roscpp/test/src/timer_callbacks.cpp
-===================================================================
---- ros-ros-comm.orig/test/test_roscpp/test/src/timer_callbacks.cpp
-+++ ros-ros-comm/test/test_roscpp/test/src/timer_callbacks.cpp
-@@ -1,5 +1,5 @@
- /*
-- * Copyright (c) 2NULLNULL8, Willow Garage, Inc.
-+ * Copyright (c) 2008, Willow Garage, Inc.
-  * All rights reserved.
-  *
-  * Redistribution and use in source and binary forms, with or without
-Index: ros-ros-comm/test/test_roscpp/test/src/wait_for_message.cpp
-===================================================================
---- ros-ros-comm.orig/test/test_roscpp/test/src/wait_for_message.cpp
-+++ ros-ros-comm/test/test_roscpp/test/src/wait_for_message.cpp
-@@ -1,5 +1,5 @@
- /*
-- * Copyright (c) 2NULLNULL8, Willow Garage, Inc.
-+ * Copyright (c) 2008, Willow Garage, Inc.
-  * All rights reserved.
-  *
-  * Redistribution and use in source and binary forms, with or without
diff --git a/debian/patches/0007-move-heaers-to-include-xmlrpcpp.patch b/debian/patches/0007-move-heaers-to-include-xmlrpcpp.patch
new file mode 100644
index 0000000..510234d
--- /dev/null
+++ b/debian/patches/0007-move-heaers-to-include-xmlrpcpp.patch
@@ -0,0 +1,3676 @@
+From: Jochen Sprickerhof <git at jochen.sprickerhof.de>
+Date: Sat, 16 Jan 2016 11:56:42 +0100
+Subject: move heaers to include/xmlrpcpp
+
+---
+ clients/roscpp/include/ros/master.h                |   2 +-
+ clients/roscpp/include/ros/node_handle.h           |   2 +-
+ clients/roscpp/include/ros/param.h                 |   2 +-
+ clients/roscpp/include/ros/publication.h           |   2 +-
+ clients/roscpp/include/ros/service_publication.h   |   2 +-
+ clients/roscpp/include/ros/subscription.h          |   2 +-
+ clients/roscpp/include/ros/topic_manager.h         |   2 +-
+ clients/roscpp/include/ros/xmlrpc_manager.h        |   2 +-
+ clients/roscpp/src/libros/init.cpp                 |   2 +-
+ clients/roscpp/src/libros/master.cpp               |   2 +-
+ clients/roscpp/src/libros/node_handle.cpp          |   2 +-
+ clients/roscpp/src/libros/service_manager.cpp      |   2 +-
+ clients/roscpp/src/libros/topic_manager.cpp        |   2 +-
+ test/test_roscpp/test/src/check_master.cpp         |   2 +-
+ tools/rosbag/src/recorder.cpp                      |   2 +-
+ utilities/xmlrpcpp/CMakeLists.txt                  |   3 +-
+ utilities/xmlrpcpp/include/XmlRpc.h                | 102 ------
+ utilities/xmlrpcpp/include/XmlRpcClient.h          | 133 --------
+ utilities/xmlrpcpp/include/XmlRpcDecl.h            |  55 ---
+ utilities/xmlrpcpp/include/XmlRpcDispatch.h        |  89 -----
+ utilities/xmlrpcpp/include/XmlRpcException.h       |  44 ---
+ utilities/xmlrpcpp/include/XmlRpcServer.h          | 114 -------
+ .../xmlrpcpp/include/XmlRpcServerConnection.h      | 103 ------
+ utilities/xmlrpcpp/include/XmlRpcServerMethod.h    |  49 ---
+ utilities/xmlrpcpp/include/XmlRpcSocket.h          |  80 -----
+ utilities/xmlrpcpp/include/XmlRpcSource.h          |  57 ----
+ utilities/xmlrpcpp/include/XmlRpcUtil.h            |  63 ----
+ utilities/xmlrpcpp/include/XmlRpcValue.h           | 195 -----------
+ utilities/xmlrpcpp/include/base64.h                | 380 ---------------------
+ utilities/xmlrpcpp/include/xmlrpcpp/XmlRpc.h       | 102 ++++++
+ utilities/xmlrpcpp/include/xmlrpcpp/XmlRpcClient.h | 133 ++++++++
+ utilities/xmlrpcpp/include/xmlrpcpp/XmlRpcDecl.h   |  55 +++
+ .../xmlrpcpp/include/xmlrpcpp/XmlRpcDispatch.h     |  89 +++++
+ .../xmlrpcpp/include/xmlrpcpp/XmlRpcException.h    |  44 +++
+ utilities/xmlrpcpp/include/xmlrpcpp/XmlRpcServer.h | 114 +++++++
+ .../include/xmlrpcpp/XmlRpcServerConnection.h      | 103 ++++++
+ .../xmlrpcpp/include/xmlrpcpp/XmlRpcServerMethod.h |  49 +++
+ utilities/xmlrpcpp/include/xmlrpcpp/XmlRpcSocket.h |  80 +++++
+ utilities/xmlrpcpp/include/xmlrpcpp/XmlRpcSource.h |  57 ++++
+ utilities/xmlrpcpp/include/xmlrpcpp/XmlRpcUtil.h   |  63 ++++
+ utilities/xmlrpcpp/include/xmlrpcpp/XmlRpcValue.h  | 195 +++++++++++
+ utilities/xmlrpcpp/include/xmlrpcpp/base64.h       | 380 +++++++++++++++++++++
+ utilities/xmlrpcpp/src/XmlRpcClient.cpp            |   6 +-
+ utilities/xmlrpcpp/src/XmlRpcDispatch.cpp          |   6 +-
+ utilities/xmlrpcpp/src/XmlRpcServer.cpp            |  12 +-
+ utilities/xmlrpcpp/src/XmlRpcServerConnection.cpp  |   6 +-
+ utilities/xmlrpcpp/src/XmlRpcServerMethod.cpp      |   4 +-
+ utilities/xmlrpcpp/src/XmlRpcSocket.cpp            |   4 +-
+ utilities/xmlrpcpp/src/XmlRpcSource.cpp            |   6 +-
+ utilities/xmlrpcpp/src/XmlRpcUtil.cpp              |   4 +-
+ utilities/xmlrpcpp/src/XmlRpcValue.cpp             |   8 +-
+ utilities/xmlrpcpp/test/FileClient.cpp             |   2 +-
+ utilities/xmlrpcpp/test/HelloClient.cpp            |   2 +-
+ utilities/xmlrpcpp/test/HelloServer.cpp            |   2 +-
+ utilities/xmlrpcpp/test/TestBase64Client.cpp       |   2 +-
+ utilities/xmlrpcpp/test/TestBase64Server.cpp       |   2 +-
+ utilities/xmlrpcpp/test/TestValues.cpp             |   2 +-
+ utilities/xmlrpcpp/test/TestValuesWin32.cpp        |   2 +-
+ utilities/xmlrpcpp/test/TestXml.cpp                |   2 +-
+ utilities/xmlrpcpp/test/Validator.cpp              |   2 +-
+ utilities/xmlrpcpp/test/bool_test.cpp              |   2 +-
+ utilities/xmlrpcpp/test/port_zero_server.cpp       |   2 +-
+ 62 files changed, 1519 insertions(+), 1520 deletions(-)
+ delete mode 100644 utilities/xmlrpcpp/include/XmlRpc.h
+ delete mode 100644 utilities/xmlrpcpp/include/XmlRpcClient.h
+ delete mode 100644 utilities/xmlrpcpp/include/XmlRpcDecl.h
+ delete mode 100644 utilities/xmlrpcpp/include/XmlRpcDispatch.h
+ delete mode 100644 utilities/xmlrpcpp/include/XmlRpcException.h
+ delete mode 100644 utilities/xmlrpcpp/include/XmlRpcServer.h
+ delete mode 100644 utilities/xmlrpcpp/include/XmlRpcServerConnection.h
+ delete mode 100644 utilities/xmlrpcpp/include/XmlRpcServerMethod.h
+ delete mode 100644 utilities/xmlrpcpp/include/XmlRpcSocket.h
+ delete mode 100644 utilities/xmlrpcpp/include/XmlRpcSource.h
+ delete mode 100644 utilities/xmlrpcpp/include/XmlRpcUtil.h
+ delete mode 100644 utilities/xmlrpcpp/include/XmlRpcValue.h
+ delete mode 100644 utilities/xmlrpcpp/include/base64.h
+ create mode 100644 utilities/xmlrpcpp/include/xmlrpcpp/XmlRpc.h
+ create mode 100644 utilities/xmlrpcpp/include/xmlrpcpp/XmlRpcClient.h
+ create mode 100644 utilities/xmlrpcpp/include/xmlrpcpp/XmlRpcDecl.h
+ create mode 100644 utilities/xmlrpcpp/include/xmlrpcpp/XmlRpcDispatch.h
+ create mode 100644 utilities/xmlrpcpp/include/xmlrpcpp/XmlRpcException.h
+ create mode 100644 utilities/xmlrpcpp/include/xmlrpcpp/XmlRpcServer.h
+ create mode 100644 utilities/xmlrpcpp/include/xmlrpcpp/XmlRpcServerConnection.h
+ create mode 100644 utilities/xmlrpcpp/include/xmlrpcpp/XmlRpcServerMethod.h
+ create mode 100644 utilities/xmlrpcpp/include/xmlrpcpp/XmlRpcSocket.h
+ create mode 100644 utilities/xmlrpcpp/include/xmlrpcpp/XmlRpcSource.h
+ create mode 100644 utilities/xmlrpcpp/include/xmlrpcpp/XmlRpcUtil.h
+ create mode 100644 utilities/xmlrpcpp/include/xmlrpcpp/XmlRpcValue.h
+ create mode 100644 utilities/xmlrpcpp/include/xmlrpcpp/base64.h
+
+diff --git a/clients/roscpp/include/ros/master.h b/clients/roscpp/include/ros/master.h
+index 9eefdf3..6cabd01 100644
+--- a/clients/roscpp/include/ros/master.h
++++ b/clients/roscpp/include/ros/master.h
+@@ -29,7 +29,7 @@
+ #define ROSCPP_MASTER_H
+ 
+ #include "forwards.h"
+-#include "XmlRpcValue.h"
++#include "xmlrpcpp/XmlRpcValue.h"
+ #include "common.h"
+ 
+ namespace ros
+diff --git a/clients/roscpp/include/ros/node_handle.h b/clients/roscpp/include/ros/node_handle.h
+index 4f4c1df..6380114 100644
+--- a/clients/roscpp/include/ros/node_handle.h
++++ b/clients/roscpp/include/ros/node_handle.h
+@@ -48,7 +48,7 @@
+ 
+ #include <boost/bind.hpp>
+ 
+-#include <XmlRpcValue.h>
++#include <xmlrpcpp/XmlRpcValue.h>
+ 
+ namespace ros
+ {
+diff --git a/clients/roscpp/include/ros/param.h b/clients/roscpp/include/ros/param.h
+index cfa7521..699f212 100644
+--- a/clients/roscpp/include/ros/param.h
++++ b/clients/roscpp/include/ros/param.h
+@@ -30,7 +30,7 @@
+ 
+ #include "forwards.h"
+ #include "common.h"
+-#include "XmlRpcValue.h"
++#include "xmlrpcpp/XmlRpcValue.h"
+ 
+ #include <vector>
+ #include <map>
+diff --git a/clients/roscpp/include/ros/publication.h b/clients/roscpp/include/ros/publication.h
+index 5183e08..1ea2187 100644
+--- a/clients/roscpp/include/ros/publication.h
++++ b/clients/roscpp/include/ros/publication.h
+@@ -31,7 +31,7 @@
+ #include "ros/forwards.h"
+ #include "ros/advertise_options.h"
+ #include "common.h"
+-#include "XmlRpc.h"
++#include "xmlrpcpp/XmlRpc.h"
+ 
+ #include <boost/thread/mutex.hpp>
+ 
+diff --git a/clients/roscpp/include/ros/service_publication.h b/clients/roscpp/include/ros/service_publication.h
+index bd44c34..ff4f8b4 100644
+--- a/clients/roscpp/include/ros/service_publication.h
++++ b/clients/roscpp/include/ros/service_publication.h
+@@ -30,7 +30,7 @@
+ 
+ #include "ros/service_callback_helper.h"
+ #include "common.h"
+-#include "XmlRpc.h"
++#include "xmlrpcpp/XmlRpc.h"
+ 
+ #include <boost/thread/mutex.hpp>
+ 
+diff --git a/clients/roscpp/include/ros/subscription.h b/clients/roscpp/include/ros/subscription.h
+index 7da3219..ed726a3 100644
+--- a/clients/roscpp/include/ros/subscription.h
++++ b/clients/roscpp/include/ros/subscription.h
+@@ -35,7 +35,7 @@
+ #include "ros/transport_hints.h"
+ #include "ros/xmlrpc_manager.h"
+ #include "ros/statistics.h"
+-#include "XmlRpc.h"
++#include "xmlrpcpp/XmlRpc.h"
+ 
+ #include <boost/thread.hpp>
+ #include <boost/shared_ptr.hpp>
+diff --git a/clients/roscpp/include/ros/topic_manager.h b/clients/roscpp/include/ros/topic_manager.h
+index 5827e82..3a80f9c 100644
+--- a/clients/roscpp/include/ros/topic_manager.h
++++ b/clients/roscpp/include/ros/topic_manager.h
+@@ -33,7 +33,7 @@
+ #include "ros/serialization.h"
+ #include "rosout_appender.h"
+ 
+-#include "XmlRpcValue.h"
++#include "xmlrpcpp/XmlRpcValue.h"
+ 
+ #include <boost/thread/mutex.hpp>
+ #include <boost/thread/recursive_mutex.hpp>
+diff --git a/clients/roscpp/include/ros/xmlrpc_manager.h b/clients/roscpp/include/ros/xmlrpc_manager.h
+index 7dc55ee..2dc5034 100644
+--- a/clients/roscpp/include/ros/xmlrpc_manager.h
++++ b/clients/roscpp/include/ros/xmlrpc_manager.h
+@@ -36,7 +36,7 @@
+ #include <boost/enable_shared_from_this.hpp>
+ 
+ #include "common.h"
+-#include "XmlRpc.h"
++#include "xmlrpcpp/XmlRpc.h"
+ 
+ #include <ros/time.h>
+ 
+diff --git a/clients/roscpp/src/libros/init.cpp b/clients/roscpp/src/libros/init.cpp
+index 920e665..a122bfb 100644
+--- a/clients/roscpp/src/libros/init.cpp
++++ b/clients/roscpp/src/libros/init.cpp
+@@ -48,7 +48,7 @@
+ #include "ros/subscribe_options.h"
+ #include "ros/transport/transport_tcp.h"
+ #include "ros/internal_timer_manager.h"
+-#include "XmlRpcSocket.h"
++#include "xmlrpcpp/XmlRpcSocket.h"
+ 
+ #include "roscpp/GetLoggers.h"
+ #include "roscpp/SetLoggerLevel.h"
+diff --git a/clients/roscpp/src/libros/master.cpp b/clients/roscpp/src/libros/master.cpp
+index c25be66..ad63545 100644
+--- a/clients/roscpp/src/libros/master.cpp
++++ b/clients/roscpp/src/libros/master.cpp
+@@ -34,7 +34,7 @@
+ #include <ros/console.h>
+ #include <ros/assert.h>
+ 
+-#include "XmlRpc.h"
++#include "xmlrpcpp/XmlRpc.h"
+ 
+ namespace ros
+ {
+diff --git a/clients/roscpp/src/libros/node_handle.cpp b/clients/roscpp/src/libros/node_handle.cpp
+index 6673d48..7dc0797 100644
+--- a/clients/roscpp/src/libros/node_handle.cpp
++++ b/clients/roscpp/src/libros/node_handle.cpp
+@@ -42,7 +42,7 @@
+ #include "ros/names.h"
+ #include "ros/init.h"
+ #include "ros/this_node.h"
+-#include "XmlRpc.h"
++#include "xmlrpcpp/XmlRpc.h"
+ 
+ #include <boost/thread.hpp>
+ 
+diff --git a/clients/roscpp/src/libros/service_manager.cpp b/clients/roscpp/src/libros/service_manager.cpp
+index 09f6f3d..6542b4f 100644
+--- a/clients/roscpp/src/libros/service_manager.cpp
++++ b/clients/roscpp/src/libros/service_manager.cpp
+@@ -42,7 +42,7 @@
+ #include "ros/connection.h"
+ #include "ros/file_log.h"
+ 
+-#include "XmlRpc.h"
++#include "xmlrpcpp/XmlRpc.h"
+ 
+ #include <ros/console.h>
+ 
+diff --git a/clients/roscpp/src/libros/topic_manager.cpp b/clients/roscpp/src/libros/topic_manager.cpp
+index 0142cda..c76c9bc 100644
+--- a/clients/roscpp/src/libros/topic_manager.cpp
++++ b/clients/roscpp/src/libros/topic_manager.cpp
+@@ -41,7 +41,7 @@
+ #include "ros/file_log.h"
+ #include "ros/subscribe_options.h"
+ 
+-#include "XmlRpc.h"
++#include "xmlrpcpp/XmlRpc.h"
+ 
+ #include <ros/console.h>
+ 
+diff --git a/test/test_roscpp/test/src/check_master.cpp b/test/test_roscpp/test/src/check_master.cpp
+index 9b03321..4392f2b 100644
+--- a/test/test_roscpp/test/src/check_master.cpp
++++ b/test/test_roscpp/test/src/check_master.cpp
+@@ -40,7 +40,7 @@
+ 
+ #include "ros/ros.h"
+ 
+-#include "XmlRpc.h"
++#include "xmlrpcpp/XmlRpc.h"
+ 
+ using namespace XmlRpc;
+ 
+diff --git a/tools/rosbag/src/recorder.cpp b/tools/rosbag/src/recorder.cpp
+index a6b7e26..01188a3 100644
+--- a/tools/rosbag/src/recorder.cpp
++++ b/tools/rosbag/src/recorder.cpp
+@@ -60,7 +60,7 @@
+ 
+ #include "ros/network.h"
+ #include "ros/xmlrpc_manager.h"
+-#include "XmlRpc.h"
++#include "xmlrpcpp/XmlRpc.h"
+ 
+ #define foreach BOOST_FOREACH
+ 
+diff --git a/utilities/xmlrpcpp/CMakeLists.txt b/utilities/xmlrpcpp/CMakeLists.txt
+index a4f6bec..286bcf9 100644
+--- a/utilities/xmlrpcpp/CMakeLists.txt
++++ b/utilities/xmlrpcpp/CMakeLists.txt
+@@ -35,8 +35,7 @@ if(WIN32)
+   target_link_libraries(xmlrpcpp ws2_32)
+ endif()
+ 
+-# FIXME the headers should be in a package-specific subfolder but can not be for backward compatibility
+-install(DIRECTORY include/
++install(DIRECTORY include/${PROJECT_NAME}
+   DESTINATION ${CATKIN_GLOBAL_INCLUDE_DESTINATION}
+   FILES_MATCHING PATTERN "*.h")
+ 
+diff --git a/utilities/xmlrpcpp/include/XmlRpc.h b/utilities/xmlrpcpp/include/XmlRpc.h
+deleted file mode 100644
+index 6b00b18..0000000
+--- a/utilities/xmlrpcpp/include/XmlRpc.h
++++ /dev/null
+@@ -1,102 +0,0 @@
+-// this file modified by Morgan Quigley on 22 April 2008 to add 
+-// a std::exception-derived class
+-#ifndef _XMLRPC_H_
+-#define _XMLRPC_H_
+-//
+-// XmlRpc++ Copyright (c) 2002-2003 by Chris Morley
+-// This library is free software; you can redistribute it and/or
+-// modify it under the terms of the GNU Lesser General Public
+-// License as published by the Free Software Foundation; either
+-// version 2.1 of the License, or (at your option) any later version.
+-// 
+-// This library is distributed in the hope that it will be useful,
+-// but WITHOUT ANY WARRANTY; without even the implied warranty of
+-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+-// Lesser General Public License for more details.
+-// 
+-// You should have received a copy of the GNU Lesser General Public
+-// License along with this library; if not, write to the Free Software
+-// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
+-// 
+-
+-#if defined(_MSC_VER)
+-# pragma warning(disable:4786)    // identifier was truncated in debug info
+-#endif
+-
+-#ifndef MAKEDEPEND
+-# include <string>
+-#endif
+-
+-#include "XmlRpcClient.h"
+-#include "XmlRpcException.h"
+-#include "XmlRpcServer.h"
+-#include "XmlRpcServerMethod.h"
+-#include "XmlRpcValue.h"
+-#include "XmlRpcUtil.h"
+-
+-#include <stdexcept>
+-
+-namespace XmlRpc {
+-
+-
+-  //! An interface allowing custom handling of error message reporting.
+-  class XmlRpcErrorHandler {
+-  public:
+-    virtual ~XmlRpcErrorHandler() { }
+-
+-    //! Returns a pointer to the currently installed error handling object.
+-    static XmlRpcErrorHandler* getErrorHandler() 
+-    { return _errorHandler; }
+-
+-    //! Specifies the error handler.
+-    static void setErrorHandler(XmlRpcErrorHandler* eh)
+-    { _errorHandler = eh; }
+-
+-    //! Report an error. Custom error handlers should define this method.
+-    virtual void error(const char* msg) = 0;
+-
+-  protected:
+-    static XmlRpcErrorHandler* _errorHandler;
+-  };
+-
+-  //! An interface allowing custom handling of informational message reporting.
+-  class XmlRpcLogHandler {
+-  public:
+-    virtual ~XmlRpcLogHandler() { }
+-
+-    //! Returns a pointer to the currently installed message reporting object.
+-    static XmlRpcLogHandler* getLogHandler() 
+-    { return _logHandler; }
+-
+-    //! Specifies the message handler.
+-    static void setLogHandler(XmlRpcLogHandler* lh)
+-    { _logHandler = lh; }
+-
+-    //! Returns the level of verbosity of informational messages. 0 is no output, 5 is very verbose.
+-    static int getVerbosity() 
+-    { return _verbosity; }
+-
+-    //! Specify the level of verbosity of informational messages. 0 is no output, 5 is very verbose.
+-    static void setVerbosity(int v) 
+-    { _verbosity = v; }
+-
+-    //! Output a message. Custom error handlers should define this method.
+-    virtual void log(int level, const char* msg) = 0;
+-
+-  protected:
+-    static XmlRpcLogHandler* _logHandler;
+-    static int _verbosity;
+-  };
+-
+-  //! Returns log message verbosity. This is short for XmlRpcLogHandler::getVerbosity()
+-  int getVerbosity();
+-  //! Sets log message verbosity. This is short for XmlRpcLogHandler::setVerbosity(level)
+-  void setVerbosity(int level);
+-
+-
+-  //! Version identifier
+-  extern const char XMLRPC_VERSION[];
+-
+-} // namespace XmlRpc
+-
+-#endif // _XMLRPC_H_
+diff --git a/utilities/xmlrpcpp/include/XmlRpcClient.h b/utilities/xmlrpcpp/include/XmlRpcClient.h
+deleted file mode 100644
+index 6f47778..0000000
+--- a/utilities/xmlrpcpp/include/XmlRpcClient.h
++++ /dev/null
+@@ -1,133 +0,0 @@
+-
+-#ifndef _XMLRPCCLIENT_H_
+-#define _XMLRPCCLIENT_H_
+-//
+-// XmlRpc++ Copyright (c) 2002-2003 by Chris Morley
+-//
+-#if defined(_MSC_VER)
+-# pragma warning(disable:4786)    // identifier was truncated in debug info
+-#endif
+-
+-
+-#ifndef MAKEDEPEND
+-# include <string>
+-#endif
+-
+-#include "XmlRpcDispatch.h"
+-#include "XmlRpcSource.h"
+-#include "XmlRpcDecl.h"
+-
+-namespace XmlRpc {
+-
+-  // Arguments and results are represented by XmlRpcValues
+-  class XmlRpcValue;
+-
+-  //! A class to send XML RPC requests to a server and return the results.
+-  class XMLRPCPP_DECL XmlRpcClient : public XmlRpcSource {
+-  public:
+-    // Static data
+-    static const char REQUEST_BEGIN[];
+-    static const char REQUEST_END_METHODNAME[];
+-    static const char PARAMS_TAG[];
+-    static const char PARAMS_ETAG[];
+-    static const char PARAM_TAG[];
+-    static const char PARAM_ETAG[];
+-    static const char REQUEST_END[];
+-    // Result tags
+-    static const char METHODRESPONSE_TAG[];
+-    static const char FAULT_TAG[];
+-
+-    //! Construct a client to connect to the server at the specified host:port address
+-    //!  @param host The name of the remote machine hosting the server
+-    //!  @param port The port on the remote machine where the server is listening
+-    //!  @param uri  An optional string to be sent as the URI in the HTTP GET header
+-    XmlRpcClient(const char* host, int port, const char* uri=0);
+-
+-    //! Destructor
+-    virtual ~XmlRpcClient();
+-
+-    //! Execute the named procedure on the remote server.
+-    //!  @param method The name of the remote procedure to execute
+-    //!  @param params An array of the arguments for the method
+-    //!  @param result The result value to be returned to the client
+-    //!  @return true if the request was sent and a result received 
+-    //!   (although the result might be a fault).
+-    //!
+-    //! Currently this is a synchronous (blocking) implementation (execute
+-    //! does not return until it receives a response or an error). Use isFault()
+-    //! to determine whether the result is a fault response.
+-    bool execute(const char* method, XmlRpcValue const& params, XmlRpcValue& result);
+-
+-    bool executeNonBlock(const char* method, XmlRpcValue const& params);
+-    bool executeCheckDone(XmlRpcValue& result);
+-
+-    //! Returns true if the result of the last execute() was a fault response.
+-    bool isFault() const { return _isFault; }
+-
+-
+-    // XmlRpcSource interface implementation
+-    //! Close the connection
+-    virtual void close();
+-
+-    //! Handle server responses. Called by the event dispatcher during execute.
+-    //!  @param eventType The type of event that occurred. 
+-    //!  @see XmlRpcDispatch::EventType
+-    virtual unsigned handleEvent(unsigned eventType);
+-
+-  protected:
+-    // Execution processing helpers
+-    virtual bool doConnect();
+-    virtual bool setupConnection();
+-
+-    virtual bool generateRequest(const char* method, XmlRpcValue const& params);
+-    virtual std::string generateHeader(std::string const& body);
+-    virtual bool writeRequest();
+-    virtual bool readHeader();
+-    virtual bool readResponse();
+-    virtual bool parseResponse(XmlRpcValue& result);
+-
+-    // Possible IO states for the connection
+-    enum ClientConnectionState { NO_CONNECTION, CONNECTING, WRITE_REQUEST, READ_HEADER, READ_RESPONSE, IDLE };
+-    ClientConnectionState _connectionState;
+-
+-    // Server location
+-    std::string _host;
+-    std::string _uri;
+-    int _port;
+-  public:
+-    const std::string &getHost() { return _host; }
+-    const std::string &getUri()  { return _uri; }
+-    int getPort() const { return _port; }
+-    
+-    // The xml-encoded request, http header of response, and response xml
+-    std::string _request;
+-    std::string _header;
+-    std::string _response;
+-
+-    // Number of times the client has attempted to send the request
+-    int _sendAttempts;
+-
+-    // Number of bytes of the request that have been written to the socket so far
+-    int _bytesWritten;
+-
+-    // True if we are currently executing a request. If you want to multithread,
+-    // each thread should have its own client.
+-    bool _executing;
+-
+-    // True if the server closed the connection
+-    bool _eof;
+-
+-    // True if a fault response was returned by the server
+-    bool _isFault;
+-
+-    // Number of bytes expected in the response body (parsed from response header)
+-    int _contentLength;
+-
+-    // Event dispatcher
+-    XmlRpcDispatch _disp;
+-
+-  };	// class XmlRpcClient
+-
+-}	// namespace XmlRpc
+-
+-#endif	// _XMLRPCCLIENT_H_
+diff --git a/utilities/xmlrpcpp/include/XmlRpcDecl.h b/utilities/xmlrpcpp/include/XmlRpcDecl.h
+deleted file mode 100644
+index 8af174a..0000000
+--- a/utilities/xmlrpcpp/include/XmlRpcDecl.h
++++ /dev/null
+@@ -1,55 +0,0 @@
+-/*********************************************************************
+-*
+-* Software License Agreement (BSD License)
+-*
+-*  Copyright (c) 2009, Willow Garage, Inc.
+-*  All rights reserved.
+-*
+-*  Redistribution and use in source and binary forms, with or without
+-*  modification, are permitted provided that the following conditions
+-*  are met:
+-*
+-*   * Redistributions of source code must retain the above copyright
+-*     notice, this list of conditions and the following disclaimer.
+-*   * Redistributions in binary form must reproduce the above
+-*     copyright notice, this list of conditions and the following
+-*     disclaimer in the documentation and/or other materials provided
+-*     with the distribution.
+-*   * Neither the name of the Willow Garage nor the names of its
+-*     contributors may be used to endorse or promote products derived
+-*     from this software without specific prior written permission.
+-*
+-*  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+-*  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+-*  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+-*  FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+-*  COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+-*  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+-*  BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+-*  LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+-*  CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+-*  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+-*  ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+-*  POSSIBILITY OF SUCH DAMAGE.
+-*
+-*********************************************************************/
+-/*
+- * Cross platform macros.
+- *
+- */
+-#ifndef XMLRPCPP_DECL_H_INCLUDED
+-#define XMLRPCPP_DECL_H_INCLUDED
+-
+-#include <ros/macros.h>
+-
+-#ifdef ROS_BUILD_SHARED_LIBS // ros is being built around shared libraries
+-  #ifdef xmlrpcpp_EXPORTS // we are building a shared lib/dll
+-    #define XMLRPCPP_DECL ROS_HELPER_EXPORT
+-  #else // we are using shared lib/dll
+-    #define XMLRPCPP_DECL ROS_HELPER_IMPORT
+-  #endif
+-#else // ros is being built around static libraries
+-  #define XMLRPCPP_DECL
+-#endif
+-
+-#endif /* XMLRPCPP_DECL_H_INCLUDED */
+diff --git a/utilities/xmlrpcpp/include/XmlRpcDispatch.h b/utilities/xmlrpcpp/include/XmlRpcDispatch.h
+deleted file mode 100644
+index 12b01ad..0000000
+--- a/utilities/xmlrpcpp/include/XmlRpcDispatch.h
++++ /dev/null
+@@ -1,89 +0,0 @@
+-
+-#ifndef _XMLRPCDISPATCH_H_
+-#define _XMLRPCDISPATCH_H_
+-//
+-// XmlRpc++ Copyright (c) 2002-2003 by Chris Morley
+-//
+-#if defined(_MSC_VER)
+-# pragma warning(disable:4786)    // identifier was truncated in debug info
+-#endif
+-
+-#include "XmlRpcDecl.h"
+-
+-#ifndef MAKEDEPEND
+-# include <list>
+-#endif
+-
+-namespace XmlRpc {
+-
+-  // An RPC source represents a file descriptor to monitor
+-  class XmlRpcSource;
+-
+-  //! An object which monitors file descriptors for events and performs
+-  //! callbacks when interesting events happen.
+-  class XMLRPCPP_DECL XmlRpcDispatch {
+-  public:
+-    //! Constructor
+-    XmlRpcDispatch();
+-    ~XmlRpcDispatch();
+-
+-    //! Values indicating the type of events a source is interested in
+-    enum EventType {
+-      ReadableEvent = 1,    //!< data available to read
+-      WritableEvent = 2,    //!< connected/data can be written without blocking
+-      Exception     = 4     //!< uh oh
+-    };
+-    
+-    //! Monitor this source for the event types specified by the event mask
+-    //! and call its event handler when any of the events occur.
+-    //!  @param source The source to monitor
+-    //!  @param eventMask Which event types to watch for. \see EventType
+-    void addSource(XmlRpcSource* source, unsigned eventMask);
+-
+-    //! Stop monitoring this source.
+-    //!  @param source The source to stop monitoring
+-    void removeSource(XmlRpcSource* source);
+-
+-    //! Modify the types of events to watch for on this source
+-    void setSourceEvents(XmlRpcSource* source, unsigned eventMask);
+-
+-
+-    //! Watch current set of sources and process events for the specified
+-    //! duration (in ms, -1 implies wait forever, or until exit is called)
+-    void work(double msTime);
+-
+-    //! Exit from work routine
+-    void exit();
+-
+-    //! Clear all sources from the monitored sources list. Sources are closed.
+-    void clear();
+-
+-    // helper
+-    double getTime();
+-
+-    // A source to monitor and what to monitor it for
+-    struct MonitoredSource {
+-      MonitoredSource(XmlRpcSource* src, unsigned mask) : _src(src), _mask(mask) {}
+-      XmlRpcSource* getSource() const { return _src; }
+-      unsigned& getMask() { return _mask; }
+-      XmlRpcSource* _src;
+-      unsigned _mask;
+-    };
+-
+-    // A list of sources to monitor
+-    typedef std::list< MonitoredSource > SourceList; 
+-
+-    // Sources being monitored
+-    SourceList _sources;
+-  protected:
+-
+-    // When work should stop (-1 implies wait forever, or until exit is called)
+-    double _endTime;
+-
+-    bool _doClear;
+-    bool _inWork;
+-
+-  };
+-} // namespace XmlRpc
+-
+-#endif  // _XMLRPCDISPATCH_H_
+diff --git a/utilities/xmlrpcpp/include/XmlRpcException.h b/utilities/xmlrpcpp/include/XmlRpcException.h
+deleted file mode 100644
+index bff5bf2..0000000
+--- a/utilities/xmlrpcpp/include/XmlRpcException.h
++++ /dev/null
+@@ -1,44 +0,0 @@
+-
+-#ifndef _XMLRPCEXCEPTION_H_
+-#define _XMLRPCEXCEPTION_H_
+-//
+-// XmlRpc++ Copyright (c) 2002-2003 by Chris Morley
+-//
+-#if defined(_MSC_VER)
+-# pragma warning(disable:4786)    // identifier was truncated in debug info
+-#endif
+-
+-#ifndef MAKEDEPEND
+-# include <string>
+-#endif
+-
+-#include "XmlRpcDecl.h"
+-
+-
+-namespace XmlRpc {
+-
+-  //! A class representing an error.
+-  //! If server methods throw this exception, a fault response is returned
+-  //! to the client.
+-  class XMLRPCPP_DECL XmlRpcException {
+-  public:
+-    //! Constructor
+-    //!   @param message  A descriptive error message
+-    //!   @param code     An integer error code
+-    XmlRpcException(const std::string& message, int code=-1) :
+-        _message(message), _code(code) {}
+-
+-    //! Return the error message.
+-    const std::string& getMessage() const { return _message; }
+-
+-    //! Return the error code.
+-    int getCode() const { return _code; }
+-
+-  private:
+-    std::string _message;
+-    int _code;
+-  };
+-
+-}
+-
+-#endif	// _XMLRPCEXCEPTION_H_
+diff --git a/utilities/xmlrpcpp/include/XmlRpcServer.h b/utilities/xmlrpcpp/include/XmlRpcServer.h
+deleted file mode 100644
+index 035d383..0000000
+--- a/utilities/xmlrpcpp/include/XmlRpcServer.h
++++ /dev/null
+@@ -1,114 +0,0 @@
+-// this file modified by Morgan Quigley on 22 Apr 2008.
+-// added features: server can be opened on port 0 and you can read back
+-// what port the OS gave you
+-
+-#ifndef _XMLRPCSERVER_H_
+-#define _XMLRPCSERVER_H_
+-//
+-// XmlRpc++ Copyright (c) 2002-2003 by Chris Morley
+-//
+-#if defined(_MSC_VER)
+-# pragma warning(disable:4786)    // identifier was truncated in debug info
+-#endif
+-
+-#ifndef MAKEDEPEND
+-# include <map>
+-# include <string>
+-#endif
+-
+-#include "XmlRpcDispatch.h"
+-#include "XmlRpcSource.h"
+-#include "XmlRpcDecl.h"
+-
+-namespace XmlRpc {
+-
+-
+-  // An abstract class supporting XML RPC methods
+-  class XmlRpcServerMethod;
+-
+-  // Class representing connections to specific clients
+-  class XmlRpcServerConnection;
+-
+-  // Class representing argument and result values
+-  class XmlRpcValue;
+-
+-
+-  //! A class to handle XML RPC requests
+-  class XMLRPCPP_DECL XmlRpcServer : public XmlRpcSource {
+-  public:
+-    //! Create a server object.
+-    XmlRpcServer();
+-    //! Destructor.
+-    virtual ~XmlRpcServer();
+-
+-    //! Specify whether introspection is enabled or not. Default is not enabled.
+-    void enableIntrospection(bool enabled=true);
+-
+-    //! Add a command to the RPC server
+-    void addMethod(XmlRpcServerMethod* method);
+-
+-    //! Remove a command from the RPC server
+-    void removeMethod(XmlRpcServerMethod* method);
+-
+-    //! Remove a command from the RPC server by name
+-    void removeMethod(const std::string& methodName);
+-
+-    //! Look up a method by name
+-    XmlRpcServerMethod* findMethod(const std::string& name) const;
+-
+-    //! Create a socket, bind to the specified port, and
+-    //! set it in listen mode to make it available for clients.
+-    bool bindAndListen(int port, int backlog = 5);
+-
+-    //! Process client requests for the specified time
+-    void work(double msTime);
+-
+-    //! Temporarily stop processing client requests and exit the work() method.
+-    void exit();
+-
+-    //! Close all connections with clients and the socket file descriptor
+-    void shutdown();
+-
+-    //! Introspection support
+-    void listMethods(XmlRpcValue& result);
+-
+-    // XmlRpcSource interface implementation
+-
+-    //! Handle client connection requests
+-    virtual unsigned handleEvent(unsigned eventType);
+-
+-    //! Remove a connection from the dispatcher
+-    virtual void removeConnection(XmlRpcServerConnection*);
+-
+-    inline int get_port() { return _port; }
+-
+-    XmlRpcDispatch *get_dispatch() { return &_disp; }
+-
+-  protected:
+-
+-    //! Accept a client connection request
+-    virtual void acceptConnection();
+-
+-    //! Create a new connection object for processing requests from a specific client.
+-    virtual XmlRpcServerConnection* createConnection(int socket);
+-
+-    // Whether the introspection API is supported by this server
+-    bool _introspectionEnabled;
+-
+-    // Event dispatcher
+-    XmlRpcDispatch _disp;
+-
+-    // Collection of methods. This could be a set keyed on method name if we wanted...
+-    typedef std::map< std::string, XmlRpcServerMethod* > MethodMap;
+-    MethodMap _methods;
+-
+-    // system methods
+-    XmlRpcServerMethod* _listMethods;
+-    XmlRpcServerMethod* _methodHelp;
+-
+-    int _port;
+-
+-  };
+-} // namespace XmlRpc
+-
+-#endif //_XMLRPCSERVER_H_
+diff --git a/utilities/xmlrpcpp/include/XmlRpcServerConnection.h b/utilities/xmlrpcpp/include/XmlRpcServerConnection.h
+deleted file mode 100644
+index f5c224d..0000000
+--- a/utilities/xmlrpcpp/include/XmlRpcServerConnection.h
++++ /dev/null
+@@ -1,103 +0,0 @@
+-#ifndef _XMLRPCSERVERCONNECTION_H_
+-#define _XMLRPCSERVERCONNECTION_H_
+-//
+-// XmlRpc++ Copyright (c) 2002-2003 by Chris Morley
+-//
+-#if defined(_MSC_VER)
+-# pragma warning(disable:4786)    // identifier was truncated in debug info
+-#endif
+-
+-#ifndef MAKEDEPEND
+-# include <string>
+-#endif
+-
+-#include "XmlRpcValue.h"
+-#include "XmlRpcSource.h"
+-#include "XmlRpcDecl.h"
+-
+-namespace XmlRpc {
+-
+-
+-  // The server waits for client connections and provides methods
+-  class XmlRpcServer;
+-  class XmlRpcServerMethod;
+-
+-  //! A class to handle XML RPC requests from a particular client
+-  class XMLRPCPP_DECL XmlRpcServerConnection : public XmlRpcSource {
+-  public:
+-    // Static data
+-    static const char METHODNAME_TAG[];
+-    static const char PARAMS_TAG[];
+-    static const char PARAMS_ETAG[];
+-    static const char PARAM_TAG[];
+-    static const char PARAM_ETAG[];
+-
+-    static const std::string SYSTEM_MULTICALL;
+-    static const std::string METHODNAME;
+-    static const std::string PARAMS;
+-
+-    static const std::string FAULTCODE;
+-    static const std::string FAULTSTRING;
+-
+-    //! Constructor
+-    XmlRpcServerConnection(int fd, XmlRpcServer* server, bool deleteOnClose = false);
+-    //! Destructor
+-    virtual ~XmlRpcServerConnection();
+-
+-    // XmlRpcSource interface implementation
+-    //! Handle IO on the client connection socket.
+-    //!   @param eventType Type of IO event that occurred. @see XmlRpcDispatch::EventType.
+-    virtual unsigned handleEvent(unsigned eventType);
+-
+-  protected:
+-
+-    bool readHeader();
+-    bool readRequest();
+-    bool writeResponse();
+-
+-    // Parses the request, runs the method, generates the response xml.
+-    virtual void executeRequest();
+-
+-    // Parse the methodName and parameters from the request.
+-    std::string parseRequest(XmlRpcValue& params);
+-
+-    // Execute a named method with the specified params.
+-    bool executeMethod(const std::string& methodName, XmlRpcValue& params, XmlRpcValue& result);
+-
+-    // Execute multiple calls and return the results in an array.
+-    bool executeMulticall(const std::string& methodName, XmlRpcValue& params, XmlRpcValue& result);
+-
+-    // Construct a response from the result XML.
+-    void generateResponse(std::string const& resultXml);
+-    void generateFaultResponse(std::string const& msg, int errorCode = -1);
+-    std::string generateHeader(std::string const& body);
+-
+-
+-    // The XmlRpc server that accepted this connection
+-    XmlRpcServer* _server;
+-
+-    // Possible IO states for the connection
+-    enum ServerConnectionState { READ_HEADER, READ_REQUEST, WRITE_RESPONSE };
+-    ServerConnectionState _connectionState;
+-
+-    // Request headers
+-    std::string _header;
+-
+-    // Number of bytes expected in the request body (parsed from header)
+-    int _contentLength;
+-
+-    // Request body
+-    std::string _request;
+-
+-    // Response
+-    std::string _response;
+-
+-    // Number of bytes of the response written so far
+-    int _bytesWritten;
+-
+-    // Whether to keep the current client connection open for further requests
+-    bool _keepAlive;
+-  };
+-} // namespace XmlRpc
+-
+-#endif // _XMLRPCSERVERCONNECTION_H_
+diff --git a/utilities/xmlrpcpp/include/XmlRpcServerMethod.h b/utilities/xmlrpcpp/include/XmlRpcServerMethod.h
+deleted file mode 100644
+index 7b7ddca..0000000
+--- a/utilities/xmlrpcpp/include/XmlRpcServerMethod.h
++++ /dev/null
+@@ -1,49 +0,0 @@
+-
+-#ifndef _XMLRPCSERVERMETHOD_H_
+-#define _XMLRPCSERVERMETHOD_H_
+-//
+-// XmlRpc++ Copyright (c) 2002-2003 by Chris Morley
+-//
+-#if defined(_MSC_VER)
+-# pragma warning(disable:4786)    // identifier was truncated in debug info
+-#endif
+-
+-#include "XmlRpcDecl.h"
+-
+-#ifndef MAKEDEPEND
+-# include <string>
+-#endif
+-
+-namespace XmlRpc {
+-
+-  // Representation of a parameter or result value
+-  class XmlRpcValue;
+-
+-  // The XmlRpcServer processes client requests to call RPCs
+-  class XmlRpcServer;
+-
+-  //! Abstract class representing a single RPC method
+-  class XMLRPCPP_DECL XmlRpcServerMethod {
+-  public:
+-    //! Constructor
+-    XmlRpcServerMethod(std::string const& name, XmlRpcServer* server = 0);
+-    //! Destructor
+-    virtual ~XmlRpcServerMethod();
+-
+-    //! Returns the name of the method
+-    std::string& name() { return _name; }
+-
+-    //! Execute the method. Subclasses must provide a definition for this method.
+-    virtual void execute(XmlRpcValue& params, XmlRpcValue& result) = 0;
+-
+-    //! Returns a help string for the method.
+-    //! Subclasses should define this method if introspection is being used.
+-    virtual std::string help() { return std::string(); }
+-
+-  protected:
+-    std::string _name;
+-    XmlRpcServer* _server;
+-  };
+-} // namespace XmlRpc
+-
+-#endif // _XMLRPCSERVERMETHOD_H_
+diff --git a/utilities/xmlrpcpp/include/XmlRpcSocket.h b/utilities/xmlrpcpp/include/XmlRpcSocket.h
+deleted file mode 100644
+index 711a520..0000000
+--- a/utilities/xmlrpcpp/include/XmlRpcSocket.h
++++ /dev/null
+@@ -1,80 +0,0 @@
+-// this file modified by Morgan Quigley on 22 Apr 2008.
+-// added features: server can be opened on port 0 and you can read back
+-// what port the OS gave you
+-
+-#ifndef _XMLRPCSOCKET_H_
+-#define _XMLRPCSOCKET_H_
+-//
+-// XmlRpc++ Copyright (c) 2002-2003 by Chris Morley
+-//
+-#if defined(_MSC_VER)
+-# pragma warning(disable:4786)    // identifier was truncated in debug info
+-#endif
+-
+-#ifndef MAKEDEPEND
+-# include <string>
+-#endif
+-
+-#include "XmlRpcDecl.h"
+-
+-namespace XmlRpc {
+-
+-  //! A platform-independent socket API.
+-  class XMLRPCPP_DECL XmlRpcSocket {
+-  public:
+-
+-    static bool s_use_ipv6_;
+-
+-    //! Creates a stream (TCP) socket. Returns -1 on failure.
+-    static int socket();
+-
+-    //! Closes a socket.
+-    static void close(int socket);
+-
+-
+-    //! Sets a stream (TCP) socket to perform non-blocking IO. Returns false on failure.
+-    static bool setNonBlocking(int socket);
+-
+-    //! Read text from the specified socket. Returns false on error.
+-    static bool nbRead(int socket, std::string& s, bool *eof);
+-
+-    //! Write text to the specified socket. Returns false on error.
+-    static bool nbWrite(int socket, std::string& s, int *bytesSoFar);
+-
+-
+-    // The next four methods are appropriate for servers.
+-
+-    //! Allow the port the specified socket is bound to to be re-bound immediately so 
+-    //! server re-starts are not delayed. Returns false on failure.
+-    static bool setReuseAddr(int socket);
+-
+-    //! Bind to a specified port
+-    static bool bind(int socket, int port);
+-    
+-    static int get_port(int socket);
+-
+-    //! Set socket in listen mode
+-    static bool listen(int socket, int backlog);
+-
+-    //! Accept a client connection request
+-    static int accept(int socket);
+-
+-
+-
+-    //! Connect a socket to a server (from a client)
+-    static bool connect(int socket, std::string& host, int port);
+-
+-
+-    //! Returns last errno
+-    static int getError();
+-
+-    //! Returns message corresponding to last error
+-    static std::string getErrorMsg();
+-
+-    //! Returns message corresponding to error
+-    static std::string getErrorMsg(int error);
+-  };
+-
+-} // namespace XmlRpc
+-
+-#endif
+diff --git a/utilities/xmlrpcpp/include/XmlRpcSource.h b/utilities/xmlrpcpp/include/XmlRpcSource.h
+deleted file mode 100644
+index f82ccb1..0000000
+--- a/utilities/xmlrpcpp/include/XmlRpcSource.h
++++ /dev/null
+@@ -1,57 +0,0 @@
+-
+-#ifndef _XMLRPCSOURCE_H_
+-#define _XMLRPCSOURCE_H_
+-//
+-// XmlRpc++ Copyright (c) 2002-2003 by Chris Morley
+-//
+-#if defined(_MSC_VER)
+-# pragma warning(disable:4786)    // identifier was truncated in debug info
+-#endif
+-
+-#include "XmlRpcDecl.h"
+-
+-namespace XmlRpc {
+-
+-  //! An RPC source represents a file descriptor to monitor
+-  class XMLRPCPP_DECL XmlRpcSource {
+-  public:
+-    //! Constructor
+-    //!  @param fd The socket file descriptor to monitor.
+-    //!  @param deleteOnClose If true, the object deletes itself when close is called.
+-    XmlRpcSource(int fd = -1, bool deleteOnClose = false);
+-
+-    //! Destructor
+-    virtual ~XmlRpcSource();
+-
+-    //! Return the file descriptor being monitored.
+-    int getfd() const { return _fd; }
+-    //! Specify the file descriptor to monitor.
+-    void setfd(int fd) { _fd = fd; }
+-
+-    //! Return whether the file descriptor should be kept open if it is no longer monitored.
+-    bool getKeepOpen() const { return _keepOpen; }
+-    //! Specify whether the file descriptor should be kept open if it is no longer monitored.
+-    void setKeepOpen(bool b=true) { _keepOpen = b; }
+-
+-    //! Close the owned fd. If deleteOnClose was specified at construction, the object is deleted.
+-    virtual void close();
+-
+-    //! Return true to continue monitoring this source
+-    virtual unsigned handleEvent(unsigned eventType) = 0;
+-
+-  private:
+-
+-    // Socket. This should really be a SOCKET (an alias for unsigned int*) on windows...
+-    int _fd;
+-
+-    // In the server, a new source (XmlRpcServerConnection) is created
+-    // for each connected client. When each connection is closed, the
+-    // corresponding source object is deleted.
+-    bool _deleteOnClose;
+-
+-    // In the client, keep connections open if you intend to make multiple calls.
+-    bool _keepOpen;
+-  };
+-} // namespace XmlRpc
+-
+-#endif //_XMLRPCSOURCE_H_
+diff --git a/utilities/xmlrpcpp/include/XmlRpcUtil.h b/utilities/xmlrpcpp/include/XmlRpcUtil.h
+deleted file mode 100644
+index 78627f4..0000000
+--- a/utilities/xmlrpcpp/include/XmlRpcUtil.h
++++ /dev/null
+@@ -1,63 +0,0 @@
+-#ifndef _XMLRPCUTIL_H_
+-#define _XMLRPCUTIL_H_
+-//
+-// XmlRpc++ Copyright (c) 2002-2003 by Chris Morley
+-//
+-#if defined(_MSC_VER)
+-# pragma warning(disable:4786)    // identifier was truncated in debug info
+-#endif
+-
+-#ifndef MAKEDEPEND
+-# include <string>
+-#endif
+-
+-#include "XmlRpcDecl.h"
+-
+-#if defined(_MSC_VER)
+-# define snprintf	    _snprintf_s
+-# define vsnprintf    _vsnprintf_s
+-# define strcasecmp	  _stricmp
+-# define strncasecmp	_strnicmp
+-#elif defined(__BORLANDC__)
+-# define strcasecmp stricmp
+-# define strncasecmp strnicmp
+-#endif
+-
+-namespace XmlRpc {
+-
+-  //! Utilities for XML parsing, encoding, and decoding and message handlers.
+-  class XMLRPCPP_DECL XmlRpcUtil {
+-  public:
+-    // hokey xml parsing
+-    //! Returns contents between <tag> and </tag>, updates offset to char after </tag>
+-    static std::string parseTag(const char* tag, std::string const& xml, int* offset);
+-
+-    //! Returns true if the tag is found and updates offset to the char after the tag
+-    static bool findTag(const char* tag, std::string const& xml, int* offset);
+-
+-    //! Returns the next tag and updates offset to the char after the tag, or empty string
+-    //! if the next non-whitespace character is not '<'
+-    static std::string getNextTag(std::string const& xml, int* offset);
+-
+-    //! Returns true if the tag is found at the specified offset (modulo any whitespace)
+-    //! and updates offset to the char after the tag
+-    static bool nextTagIs(const char* tag, std::string const& xml, int* offset);
+-
+-
+-    //! Convert raw text to encoded xml.
+-    static std::string xmlEncode(const std::string& raw);
+-
+-    //! Convert encoded xml to raw text
+-    static std::string xmlDecode(const std::string& encoded);
+-
+-
+-    //! Dump messages somewhere
+-    static void log(int level, const char* fmt, ...);
+-
+-    //! Dump error messages somewhere
+-    static void error(const char* fmt, ...);
+-
+-  };
+-} // namespace XmlRpc
+-
+-#endif // _XMLRPCUTIL_H_
+diff --git a/utilities/xmlrpcpp/include/XmlRpcValue.h b/utilities/xmlrpcpp/include/XmlRpcValue.h
+deleted file mode 100644
+index fe6cb8c..0000000
+--- a/utilities/xmlrpcpp/include/XmlRpcValue.h
++++ /dev/null
+@@ -1,195 +0,0 @@
+-
+-#ifndef _XMLRPCVALUE_H_
+-#define _XMLRPCVALUE_H_
+-//
+-// XmlRpc++ Copyright (c) 2002-2003 by Chris Morley
+-//
+-#if defined(_MSC_VER)
+-# pragma warning(disable:4786)    // identifier was truncated in debug info
+-#endif
+-
+-#include "XmlRpcDecl.h"
+-
+-#ifndef MAKEDEPEND
+-# include <map>
+-# include <string>
+-# include <vector>
+-# include <time.h>
+-#endif
+-
+-namespace XmlRpc {
+-
+-  //! RPC method arguments and results are represented by Values
+-  //   should probably refcount them...
+-  class XMLRPCPP_DECL XmlRpcValue {
+-  public:
+-
+-
+-    enum Type {
+-      TypeInvalid,
+-      TypeBoolean,
+-      TypeInt,
+-      TypeDouble,
+-      TypeString,
+-      TypeDateTime,
+-      TypeBase64,
+-      TypeArray,
+-      TypeStruct
+-    };
+-
+-    // Non-primitive types
+-    typedef std::vector<char> BinaryData;
+-    typedef std::vector<XmlRpcValue> ValueArray;
+-    typedef std::map<std::string, XmlRpcValue> ValueStruct;
+-    typedef ValueStruct::iterator iterator;
+-
+-
+-    //! Constructors
+-    XmlRpcValue() : _type(TypeInvalid) { _value.asBinary = 0; }
+-    XmlRpcValue(bool value) : _type(TypeBoolean) { _value.asBool = value; }
+-    XmlRpcValue(int value)  : _type(TypeInt) { _value.asInt = value; }
+-    XmlRpcValue(double value)  : _type(TypeDouble) { _value.asDouble = value; }
+-
+-    XmlRpcValue(std::string const& value) : _type(TypeString) 
+-    { _value.asString = new std::string(value); }
+-
+-    XmlRpcValue(const char* value)  : _type(TypeString)
+-    { _value.asString = new std::string(value); }
+-
+-    XmlRpcValue(struct tm* value)  : _type(TypeDateTime) 
+-    { _value.asTime = new struct tm(*value); }
+-
+-
+-    XmlRpcValue(void* value, int nBytes)  : _type(TypeBase64)
+-    {
+-      _value.asBinary = new BinaryData((char*)value, ((char*)value)+nBytes);
+-    }
+-
+-    //! Construct from xml, beginning at *offset chars into the string, updates offset
+-    XmlRpcValue(std::string const& xml, int* offset) : _type(TypeInvalid)
+-    { if ( ! fromXml(xml,offset)) _type = TypeInvalid; }
+-
+-    //! Copy
+-    XmlRpcValue(XmlRpcValue const& rhs) : _type(TypeInvalid) { *this = rhs; }
+-
+-    //! Destructor (make virtual if you want to subclass)
+-    /*virtual*/ ~XmlRpcValue() { invalidate(); }
+-
+-    //! Erase the current value
+-    void clear() { invalidate(); }
+-
+-    // Operators
+-    XmlRpcValue& operator=(XmlRpcValue const& rhs);
+-    XmlRpcValue& operator=(int const& rhs) { return operator=(XmlRpcValue(rhs)); }
+-    XmlRpcValue& operator=(double const& rhs) { return operator=(XmlRpcValue(rhs)); }
+-    XmlRpcValue& operator=(const char* rhs) { return operator=(XmlRpcValue(std::string(rhs))); }
+-
+-    bool operator==(XmlRpcValue const& other) const;
+-    bool operator!=(XmlRpcValue const& other) const;
+-
+-    operator bool&()          { assertTypeOrInvalid(TypeBoolean); return _value.asBool; }
+-    operator int&()           { assertTypeOrInvalid(TypeInt); return _value.asInt; }
+-    operator double&()        { assertTypeOrInvalid(TypeDouble); return _value.asDouble; }
+-    operator std::string&()   { assertTypeOrInvalid(TypeString); return *_value.asString; }
+-    operator BinaryData&()    { assertTypeOrInvalid(TypeBase64); return *_value.asBinary; }
+-    operator struct tm&()     { assertTypeOrInvalid(TypeDateTime); return *_value.asTime; }
+-
+-    XmlRpcValue const& operator[](int i) const { assertArray(i+1); return _value.asArray->at(i); }
+-    XmlRpcValue& operator[](int i)             { assertArray(i+1); return _value.asArray->at(i); }
+-
+-    XmlRpcValue& operator[](std::string const& k) { assertStruct(); return (*_value.asStruct)[k]; }
+-    XmlRpcValue& operator[](const char* k) { assertStruct(); std::string s(k); return (*_value.asStruct)[s]; }
+-
+-    iterator begin() {assertStruct(); return (*_value.asStruct).begin(); }
+-    iterator end() {assertStruct(); return (*_value.asStruct).end(); }
+-
+-    // Accessors
+-    //! Return true if the value has been set to something.
+-    bool valid() const { return _type != TypeInvalid; }
+-
+-    //! Return the type of the value stored. \see Type.
+-    Type const &getType() const { return _type; }
+-
+-    //! Return the size for string, base64, array, and struct values.
+-    int size() const;
+-
+-    //! Specify the size for array values. Array values will grow beyond this size if needed.
+-    void setSize(int size)    { assertArray(size); }
+-
+-    //! Check for the existence of a struct member by name.
+-    bool hasMember(const std::string& name) const;
+-
+-    //! Decode xml. Destroys any existing value.
+-    bool fromXml(std::string const& valueXml, int* offset);
+-
+-    //! Encode the Value in xml
+-    std::string toXml() const;
+-
+-    //! Write the value (no xml encoding)
+-    std::ostream& write(std::ostream& os) const;
+-
+-    // Formatting
+-    //! Return the format used to write double values.
+-    static std::string const& getDoubleFormat() { return _doubleFormat; }
+-
+-    //! Specify the format used to write double values.
+-    static void setDoubleFormat(const char* f) { _doubleFormat = f; }
+-
+-
+-  protected:
+-    // Clean up
+-    void invalidate();
+-
+-    // Type checking
+-    void assertTypeOrInvalid(Type t);
+-    void assertArray(int size) const;
+-    void assertArray(int size);
+-    void assertStruct();
+-
+-    // XML decoding
+-    bool boolFromXml(std::string const& valueXml, int* offset);
+-    bool intFromXml(std::string const& valueXml, int* offset);
+-    bool doubleFromXml(std::string const& valueXml, int* offset);
+-    bool stringFromXml(std::string const& valueXml, int* offset);
+-    bool timeFromXml(std::string const& valueXml, int* offset);
+-    bool binaryFromXml(std::string const& valueXml, int* offset);
+-    bool arrayFromXml(std::string const& valueXml, int* offset);
+-    bool structFromXml(std::string const& valueXml, int* offset);
+-
+-    // XML encoding
+-    std::string boolToXml() const;
+-    std::string intToXml() const;
+-    std::string doubleToXml() const;
+-    std::string stringToXml() const;
+-    std::string timeToXml() const;
+-    std::string binaryToXml() const;
+-    std::string arrayToXml() const;
+-    std::string structToXml() const;
+-
+-    // Format strings
+-    static std::string _doubleFormat;
+-
+-    // Type tag and values
+-    Type _type;
+-
+-    // At some point I will split off Arrays and Structs into
+-    // separate ref-counted objects for more efficient copying.
+-    union {
+-      bool          asBool;
+-      int           asInt;
+-      double        asDouble;
+-      struct tm*    asTime;
+-      std::string*  asString;
+-      BinaryData*   asBinary;
+-      ValueArray*   asArray;
+-      ValueStruct*  asStruct;
+-    } _value;
+-    
+-  };
+-} // namespace XmlRpc
+-
+-
+-std::ostream& operator<<(std::ostream& os, XmlRpc::XmlRpcValue& v);
+-
+-
+-#endif // _XMLRPCVALUE_H_
+diff --git a/utilities/xmlrpcpp/include/base64.h b/utilities/xmlrpcpp/include/base64.h
+deleted file mode 100644
+index c239403..0000000
+--- a/utilities/xmlrpcpp/include/base64.h
++++ /dev/null
+@@ -1,380 +0,0 @@
+-
+-
+-//  base64.hpp 
+-//  Autor Konstantin Pilipchuk
+-//  mailto:lostd at ukr.net
+-//
+-//
+-
+-#if !defined(__BASE64_H_INCLUDED__)
+-#define __BASE64_H_INCLUDED__ 1
+-
+-#ifndef MAKEDEPEND
+-# include <iterator>
+-#endif
+-
+-#include <ios>
+-
+-static
+-int _base64Chars[]= {'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z',
+-				     'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z',
+-			         '0','1','2','3','4','5','6','7','8','9',
+-			         '+','/' };
+-
+-
+-#define _0000_0011 0x03
+-#define _1111_1100 0xFC
+-#define _1111_0000 0xF0
+-#define _0011_0000 0x30
+-#define _0011_1100 0x3C
+-#define _0000_1111 0x0F
+-#define _1100_0000 0xC0
+-#define _0011_1111 0x3F
+-
+-#define _EQUAL_CHAR   (-1)
+-#define _UNKNOWN_CHAR (-2)
+-
+-#define _IOS_FAILBIT   std::ios_base::failbit
+-#define _IOS_EOFBIT    std::ios_base::eofbit
+-#define _IOS_BADBIT    std::ios_base::badbit
+-#define _IOS_GOODBIT   std::ios_base::goodbit
+-
+-// TEMPLATE CLASS base64_put
+-template<class _E = char, class _Tr = std::char_traits<_E> >
+-class base64
+-{
+-public:
+-
+-	typedef unsigned char byte_t;
+-	typedef _E            char_type;
+-	typedef _Tr           traits_type; 
+-
+-	// base64 requires max line length <= 72 characters
+-	// you can fill end of line
+-	// it may be crlf, crlfsp, noline or other class like it
+-
+-
+-	struct crlf
+-	{
+-		template<class _OI>
+-			_OI operator()(_OI _To) const{
+-			*_To = _Tr::to_char_type('\r'); ++_To;
+-			*_To = _Tr::to_char_type('\n'); ++_To;
+-
+-			return (_To);
+-		}
+-	};
+-
+-
+-	struct crlfsp
+-	{
+-		template<class _OI>
+-			_OI operator()(_OI _To) const{
+-			*_To = _Tr::to_char_type('\r'); ++_To;
+-			*_To = _Tr::to_char_type('\n'); ++_To;
+-			*_To = _Tr::to_char_type(' '); ++_To;
+-
+-			return (_To);
+-		}
+-	};
+-
+-	struct noline
+-	{
+-		template<class _OI>
+-			_OI operator()(_OI _To) const{
+-			return (_To);
+-		}
+-	};
+-
+-	struct three2four
+-	{
+-		void zero()
+-		{
+-			_data[0] = 0;
+-			_data[1] = 0;
+-			_data[2] = 0;
+-		}
+-
+-		byte_t get_0()	const
+-		{
+-			return _data[0];
+-		}
+-		byte_t get_1()	const
+-		{
+-			return _data[1];
+-		}
+-		byte_t get_2()	const
+-		{
+-			return _data[2];
+-		}
+-
+-		void set_0(byte_t _ch)
+-		{
+-			_data[0] = _ch;
+-		}
+-
+-		void set_1(byte_t _ch)
+-		{
+-			_data[1] = _ch;
+-		}
+-
+-		void set_2(byte_t _ch)
+-		{
+-			_data[2] = _ch;
+-		}
+-
+-		// 0000 0000  1111 1111  2222 2222
+-		// xxxx xxxx  xxxx xxxx  xxxx xxxx
+-		// 0000 0011  1111 2222  2233 3333
+-
+-		int b64_0()	const	{return (_data[0] & _1111_1100) >> 2;}
+-		int b64_1()	const	{return ((_data[0] & _0000_0011) << 4) + ((_data[1] & _1111_0000)>>4);}
+-		int b64_2()	const	{return ((_data[1] & _0000_1111) << 2) + ((_data[2] & _1100_0000)>>6);}
+-		int b64_3()	const	{return (_data[2] & _0011_1111);}
+-
+-		void b64_0(int _ch)	{_data[0] = ((_ch & _0011_1111) << 2) | (_0000_0011 & _data[0]);}
+-
+-		void b64_1(int _ch)	{
+-			_data[0] = ((_ch & _0011_0000) >> 4) | (_1111_1100 & _data[0]);
+-			_data[1] = ((_ch & _0000_1111) << 4) | (_0000_1111 & _data[1]);	}
+-
+-		void b64_2(int _ch)	{
+-			_data[1] = ((_ch & _0011_1100) >> 2) | (_1111_0000 & _data[1]);
+-			_data[2] = ((_ch & _0000_0011) << 6) | (_0011_1111 & _data[2]);	}
+-
+-		void b64_3(int _ch){
+-			_data[2] = (_ch & _0011_1111) | (_1100_0000 & _data[2]);}
+-
+-	private:
+-		byte_t _data[3];
+-
+-	};
+-
+-
+-
+-
+-	template<class _II, class _OI, class _State, class _Endline>
+-        _II put(_II _First, _II _Last, _OI _To, _State&, _Endline)  const
+-	{
+-		three2four _3to4;
+-		int line_octets = 0;
+-
+-		while(_First != _Last)
+-		{
+-			_3to4.zero();
+-
+-			_3to4.set_0(*_First);
+-			_First++;
+-
+-			if(_First == _Last)
+-			{
+-				*_To = _Tr::to_char_type(_base64Chars[_3to4.b64_0()]); ++_To;
+-				*_To = _Tr::to_char_type(_base64Chars[_3to4.b64_1()]); ++_To;
+-				*_To = _Tr::to_char_type('='); ++_To;
+-				*_To = _Tr::to_char_type('='); ++_To;
+-				goto __end;
+-			}
+-
+-			_3to4.set_1(*_First);
+-			_First++;
+-
+-			if(_First == _Last)
+-			{
+-				*_To = _Tr::to_char_type(_base64Chars[_3to4.b64_0()]); ++_To;
+-				*_To = _Tr::to_char_type(_base64Chars[_3to4.b64_1()]); ++_To;
+-				*_To = _Tr::to_char_type(_base64Chars[_3to4.b64_2()]); ++_To;
+-				*_To = _Tr::to_char_type('='); ++_To;
+-				goto __end;
+-			}
+-
+-			_3to4.set_2(*_First);
+-			_First++;
+-
+-			*_To = _Tr::to_char_type(_base64Chars[_3to4.b64_0()]); ++_To;
+-			*_To = _Tr::to_char_type(_base64Chars[_3to4.b64_1()]); ++_To;
+-			*_To = _Tr::to_char_type(_base64Chars[_3to4.b64_2()]); ++_To;
+-			*_To = _Tr::to_char_type(_base64Chars[_3to4.b64_3()]); ++_To;
+-
+-			if(line_octets == 17)
+-			{
+-                                //_To = _Endl(_To);
+-                                *_To = '\n'; ++_To;
+-                                line_octets = 0;
+-			}
+-			else
+-				++line_octets;
+-		}
+-
+-		__end: ;
+-
+-		return (_First);
+-
+-	}
+-
+-
+-	template<class _II, class _OI, class _State>
+-		_II get(_II _First, _II _Last, _OI _To, _State& _St) const
+-	{
+-		three2four _3to4;
+-		int _Char;
+-
+-		while(_First != _Last)
+-		{
+-
+-			// Take octet
+-			_3to4.zero();
+-
+-			// -- 0 --
+-			// Search next valid char... 
+-			while((_Char =  _getCharType(*_First)) < 0 && _Char == _UNKNOWN_CHAR)
+-			{
+-				if(++_First == _Last)
+-				{
+-					_St |= _IOS_FAILBIT|_IOS_EOFBIT; return _First; // unexpected EOF
+-				}
+-			}
+-
+-			if(_Char == _EQUAL_CHAR){
+-				// Error! First character in octet can't be '='
+-				_St |= _IOS_FAILBIT; 
+-				return _First; 
+-			}
+-			else
+-				_3to4.b64_0(_Char);
+-
+-
+-			// -- 1 --
+-			// Search next valid char... 
+-			while(++_First != _Last)
+-				if((_Char = _getCharType(*_First)) != _UNKNOWN_CHAR)
+-					break;
+-
+-			if(_First == _Last)	{
+-				_St |= _IOS_FAILBIT|_IOS_EOFBIT; // unexpected EOF 
+-				return _First;
+-			}
+-
+-			if(_Char == _EQUAL_CHAR){
+-				// Error! Second character in octet can't be '='
+-				_St |= _IOS_FAILBIT; 
+-				return _First; 
+-			}
+-			else
+-				_3to4.b64_1(_Char);
+-
+-
+-			// -- 2 --
+-			// Search next valid char... 
+-			while(++_First != _Last)
+-				if((_Char = _getCharType(*_First)) != _UNKNOWN_CHAR)
+-					break;
+-
+-			if(_First == _Last)	{
+-				// Error! Unexpected EOF. Must be '=' or base64 character
+-				_St |= _IOS_FAILBIT|_IOS_EOFBIT; 
+-				return _First; 
+-			}
+-
+-			if(_Char == _EQUAL_CHAR){
+-				// OK!
+-				_3to4.b64_2(0); 
+-				_3to4.b64_3(0); 
+-
+-				// chek for EOF
+-				if(++_First == _Last)
+-				{
+-					// Error! Unexpected EOF. Must be '='. Ignore it.
+-					//_St |= _IOS_BADBIT|_IOS_EOFBIT;
+-					_St |= _IOS_EOFBIT;
+-				}
+-				else 
+-					if(_getCharType(*_First) != _EQUAL_CHAR)
+-					{
+-						// Error! Must be '='. Ignore it.
+-						//_St |= _IOS_BADBIT;
+-					}
+-				else
+-					++_First; // Skip '='
+-
+-				// write 1 byte to output
+-				*_To = (byte_t) _3to4.get_0();
+-				return _First;
+-			}
+-			else
+-				_3to4.b64_2(_Char);
+-
+-
+-			// -- 3 --
+-			// Search next valid char... 
+-			while(++_First != _Last)
+-				if((_Char = _getCharType(*_First)) != _UNKNOWN_CHAR)
+-					break;
+-
+-			if(_First == _Last)	{
+-				// Unexpected EOF. It's error. But ignore it.
+-				//_St |= _IOS_FAILBIT|_IOS_EOFBIT; 
+-					_St |= _IOS_EOFBIT; 
+-				
+-				return _First; 
+-			}
+-
+-			if(_Char == _EQUAL_CHAR)
+-			{
+-				// OK!
+-				_3to4.b64_3(0); 
+-
+-				// write to output 2 bytes
+-				*_To = (byte_t) _3to4.get_0();
+-				*_To = (byte_t) _3to4.get_1();
+-
+-				++_First; // set position to next character
+-
+-				return _First;
+-			}
+-			else
+-				_3to4.b64_3(_Char);
+-
+-
+-			// write to output 3 bytes
+-			*_To = (byte_t) _3to4.get_0();
+-			*_To = (byte_t) _3to4.get_1();
+-			*_To = (byte_t) _3to4.get_2();
+-
+-			++_First;
+-			
+-
+-		} // while(_First != _Last)
+-
+-		return (_First);
+-	}
+-
+-protected:
+-	
+-	int _getCharType(int _Ch) const
+-	{
+-		if(_base64Chars[62] == _Ch)
+-			return 62;
+-
+-		if(_base64Chars[63] == _Ch)
+-			return 63;
+-
+-		if((_base64Chars[0] <= _Ch) && (_base64Chars[25] >= _Ch))
+-			return _Ch - _base64Chars[0];
+-
+-		if((_base64Chars[26] <= _Ch) && (_base64Chars[51] >= _Ch))
+-			return _Ch - _base64Chars[26] + 26;
+-
+-		if((_base64Chars[52] <= _Ch) && (_base64Chars[61] >= _Ch))
+-			return _Ch - _base64Chars[52] + 52;
+-
+-		if(_Ch == _Tr::to_int_type('='))
+-			return _EQUAL_CHAR;
+-
+-		return _UNKNOWN_CHAR;
+-	}
+-
+-
+-};
+-
+-
+-#endif
+diff --git a/utilities/xmlrpcpp/include/xmlrpcpp/XmlRpc.h b/utilities/xmlrpcpp/include/xmlrpcpp/XmlRpc.h
+new file mode 100644
+index 0000000..9fd626a
+--- /dev/null
++++ b/utilities/xmlrpcpp/include/xmlrpcpp/XmlRpc.h
+@@ -0,0 +1,102 @@
++// this file modified by Morgan Quigley on 22 April 2008 to add 
++// a std::exception-derived class
++#ifndef _XMLRPC_H_
++#define _XMLRPC_H_
++//
++// XmlRpc++ Copyright (c) 2002-2003 by Chris Morley
++// This library is free software; you can redistribute it and/or
++// modify it under the terms of the GNU Lesser General Public
++// License as published by the Free Software Foundation; either
++// version 2.1 of the License, or (at your option) any later version.
++// 
++// This library is distributed in the hope that it will be useful,
++// but WITHOUT ANY WARRANTY; without even the implied warranty of
++// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++// Lesser General Public License for more details.
++// 
++// You should have received a copy of the GNU Lesser General Public
++// License along with this library; if not, write to the Free Software
++// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
++// 
++
++#if defined(_MSC_VER)
++# pragma warning(disable:4786)    // identifier was truncated in debug info
++#endif
++
++#ifndef MAKEDEPEND
++# include <string>
++#endif
++
++#include "xmlrpcpp/XmlRpcClient.h"
++#include "xmlrpcpp/XmlRpcException.h"
++#include "xmlrpcpp/XmlRpcServer.h"
++#include "xmlrpcpp/XmlRpcServerMethod.h"
++#include "xmlrpcpp/XmlRpcValue.h"
++#include "xmlrpcpp/XmlRpcUtil.h"
++
++#include <stdexcept>
++
++namespace XmlRpc {
++
++
++  //! An interface allowing custom handling of error message reporting.
++  class XmlRpcErrorHandler {
++  public:
++    virtual ~XmlRpcErrorHandler() { }
++
++    //! Returns a pointer to the currently installed error handling object.
++    static XmlRpcErrorHandler* getErrorHandler() 
++    { return _errorHandler; }
++
++    //! Specifies the error handler.
++    static void setErrorHandler(XmlRpcErrorHandler* eh)
++    { _errorHandler = eh; }
++
++    //! Report an error. Custom error handlers should define this method.
++    virtual void error(const char* msg) = 0;
++
++  protected:
++    static XmlRpcErrorHandler* _errorHandler;
++  };
++
++  //! An interface allowing custom handling of informational message reporting.
++  class XmlRpcLogHandler {
++  public:
++    virtual ~XmlRpcLogHandler() { }
++
++    //! Returns a pointer to the currently installed message reporting object.
++    static XmlRpcLogHandler* getLogHandler() 
++    { return _logHandler; }
++
++    //! Specifies the message handler.
++    static void setLogHandler(XmlRpcLogHandler* lh)
++    { _logHandler = lh; }
++
++    //! Returns the level of verbosity of informational messages. 0 is no output, 5 is very verbose.
++    static int getVerbosity() 
++    { return _verbosity; }
++
++    //! Specify the level of verbosity of informational messages. 0 is no output, 5 is very verbose.
++    static void setVerbosity(int v) 
++    { _verbosity = v; }
++
++    //! Output a message. Custom error handlers should define this method.
++    virtual void log(int level, const char* msg) = 0;
++
++  protected:
++    static XmlRpcLogHandler* _logHandler;
++    static int _verbosity;
++  };
++
++  //! Returns log message verbosity. This is short for XmlRpcLogHandler::getVerbosity()
++  int getVerbosity();
++  //! Sets log message verbosity. This is short for XmlRpcLogHandler::setVerbosity(level)
++  void setVerbosity(int level);
++
++
++  //! Version identifier
++  extern const char XMLRPC_VERSION[];
++
++} // namespace XmlRpc
++
++#endif // _XMLRPC_H_
+diff --git a/utilities/xmlrpcpp/include/xmlrpcpp/XmlRpcClient.h b/utilities/xmlrpcpp/include/xmlrpcpp/XmlRpcClient.h
+new file mode 100644
+index 0000000..2154b39
+--- /dev/null
++++ b/utilities/xmlrpcpp/include/xmlrpcpp/XmlRpcClient.h
+@@ -0,0 +1,133 @@
++
++#ifndef _XMLRPCCLIENT_H_
++#define _XMLRPCCLIENT_H_
++//
++// XmlRpc++ Copyright (c) 2002-2003 by Chris Morley
++//
++#if defined(_MSC_VER)
++# pragma warning(disable:4786)    // identifier was truncated in debug info
++#endif
++
++
++#ifndef MAKEDEPEND
++# include <string>
++#endif
++
++#include "xmlrpcpp/XmlRpcDispatch.h"
++#include "xmlrpcpp/XmlRpcSource.h"
++#include "xmlrpcpp/XmlRpcDecl.h"
++
++namespace XmlRpc {
++
++  // Arguments and results are represented by XmlRpcValues
++  class XmlRpcValue;
++
++  //! A class to send XML RPC requests to a server and return the results.
++  class XMLRPCPP_DECL XmlRpcClient : public XmlRpcSource {
++  public:
++    // Static data
++    static const char REQUEST_BEGIN[];
++    static const char REQUEST_END_METHODNAME[];
++    static const char PARAMS_TAG[];
++    static const char PARAMS_ETAG[];
++    static const char PARAM_TAG[];
++    static const char PARAM_ETAG[];
++    static const char REQUEST_END[];
++    // Result tags
++    static const char METHODRESPONSE_TAG[];
++    static const char FAULT_TAG[];
++
++    //! Construct a client to connect to the server at the specified host:port address
++    //!  @param host The name of the remote machine hosting the server
++    //!  @param port The port on the remote machine where the server is listening
++    //!  @param uri  An optional string to be sent as the URI in the HTTP GET header
++    XmlRpcClient(const char* host, int port, const char* uri=0);
++
++    //! Destructor
++    virtual ~XmlRpcClient();
++
++    //! Execute the named procedure on the remote server.
++    //!  @param method The name of the remote procedure to execute
++    //!  @param params An array of the arguments for the method
++    //!  @param result The result value to be returned to the client
++    //!  @return true if the request was sent and a result received 
++    //!   (although the result might be a fault).
++    //!
++    //! Currently this is a synchronous (blocking) implementation (execute
++    //! does not return until it receives a response or an error). Use isFault()
++    //! to determine whether the result is a fault response.
++    bool execute(const char* method, XmlRpcValue const& params, XmlRpcValue& result);
++
++    bool executeNonBlock(const char* method, XmlRpcValue const& params);
++    bool executeCheckDone(XmlRpcValue& result);
++
++    //! Returns true if the result of the last execute() was a fault response.
++    bool isFault() const { return _isFault; }
++
++
++    // XmlRpcSource interface implementation
++    //! Close the connection
++    virtual void close();
++
++    //! Handle server responses. Called by the event dispatcher during execute.
++    //!  @param eventType The type of event that occurred. 
++    //!  @see XmlRpcDispatch::EventType
++    virtual unsigned handleEvent(unsigned eventType);
++
++  protected:
++    // Execution processing helpers
++    virtual bool doConnect();
++    virtual bool setupConnection();
++
++    virtual bool generateRequest(const char* method, XmlRpcValue const& params);
++    virtual std::string generateHeader(std::string const& body);
++    virtual bool writeRequest();
++    virtual bool readHeader();
++    virtual bool readResponse();
++    virtual bool parseResponse(XmlRpcValue& result);
++
++    // Possible IO states for the connection
++    enum ClientConnectionState { NO_CONNECTION, CONNECTING, WRITE_REQUEST, READ_HEADER, READ_RESPONSE, IDLE };
++    ClientConnectionState _connectionState;
++
++    // Server location
++    std::string _host;
++    std::string _uri;
++    int _port;
++  public:
++    const std::string &getHost() { return _host; }
++    const std::string &getUri()  { return _uri; }
++    int getPort() const { return _port; }
++    
++    // The xml-encoded request, http header of response, and response xml
++    std::string _request;
++    std::string _header;
++    std::string _response;
++
++    // Number of times the client has attempted to send the request
++    int _sendAttempts;
++
++    // Number of bytes of the request that have been written to the socket so far
++    int _bytesWritten;
++
++    // True if we are currently executing a request. If you want to multithread,
++    // each thread should have its own client.
++    bool _executing;
++
++    // True if the server closed the connection
++    bool _eof;
++
++    // True if a fault response was returned by the server
++    bool _isFault;
++
++    // Number of bytes expected in the response body (parsed from response header)
++    int _contentLength;
++
++    // Event dispatcher
++    XmlRpcDispatch _disp;
++
++  };	// class XmlRpcClient
++
++}	// namespace XmlRpc
++
++#endif	// _XMLRPCCLIENT_H_
+diff --git a/utilities/xmlrpcpp/include/xmlrpcpp/XmlRpcDecl.h b/utilities/xmlrpcpp/include/xmlrpcpp/XmlRpcDecl.h
+new file mode 100644
+index 0000000..8af174a
+--- /dev/null
++++ b/utilities/xmlrpcpp/include/xmlrpcpp/XmlRpcDecl.h
+@@ -0,0 +1,55 @@
++/*********************************************************************
++*
++* Software License Agreement (BSD License)
++*
++*  Copyright (c) 2009, Willow Garage, Inc.
++*  All rights reserved.
++*
++*  Redistribution and use in source and binary forms, with or without
++*  modification, are permitted provided that the following conditions
++*  are met:
++*
++*   * Redistributions of source code must retain the above copyright
++*     notice, this list of conditions and the following disclaimer.
++*   * Redistributions in binary form must reproduce the above
++*     copyright notice, this list of conditions and the following
++*     disclaimer in the documentation and/or other materials provided
++*     with the distribution.
++*   * Neither the name of the Willow Garage nor the names of its
++*     contributors may be used to endorse or promote products derived
++*     from this software without specific prior written permission.
++*
++*  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
++*  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
++*  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
++*  FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
++*  COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
++*  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
++*  BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
++*  LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
++*  CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
++*  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
++*  ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
++*  POSSIBILITY OF SUCH DAMAGE.
++*
++*********************************************************************/
++/*
++ * Cross platform macros.
++ *
++ */
++#ifndef XMLRPCPP_DECL_H_INCLUDED
++#define XMLRPCPP_DECL_H_INCLUDED
++
++#include <ros/macros.h>
++
++#ifdef ROS_BUILD_SHARED_LIBS // ros is being built around shared libraries
++  #ifdef xmlrpcpp_EXPORTS // we are building a shared lib/dll
++    #define XMLRPCPP_DECL ROS_HELPER_EXPORT
++  #else // we are using shared lib/dll
++    #define XMLRPCPP_DECL ROS_HELPER_IMPORT
++  #endif
++#else // ros is being built around static libraries
++  #define XMLRPCPP_DECL
++#endif
++
++#endif /* XMLRPCPP_DECL_H_INCLUDED */
+diff --git a/utilities/xmlrpcpp/include/xmlrpcpp/XmlRpcDispatch.h b/utilities/xmlrpcpp/include/xmlrpcpp/XmlRpcDispatch.h
+new file mode 100644
+index 0000000..5e90822
+--- /dev/null
++++ b/utilities/xmlrpcpp/include/xmlrpcpp/XmlRpcDispatch.h
+@@ -0,0 +1,89 @@
++
++#ifndef _XMLRPCDISPATCH_H_
++#define _XMLRPCDISPATCH_H_
++//
++// XmlRpc++ Copyright (c) 2002-2003 by Chris Morley
++//
++#if defined(_MSC_VER)
++# pragma warning(disable:4786)    // identifier was truncated in debug info
++#endif
++
++#include "xmlrpcpp/XmlRpcDecl.h"
++
++#ifndef MAKEDEPEND
++# include <list>
++#endif
++
++namespace XmlRpc {
++
++  // An RPC source represents a file descriptor to monitor
++  class XmlRpcSource;
++
++  //! An object which monitors file descriptors for events and performs
++  //! callbacks when interesting events happen.
++  class XMLRPCPP_DECL XmlRpcDispatch {
++  public:
++    //! Constructor
++    XmlRpcDispatch();
++    ~XmlRpcDispatch();
++
++    //! Values indicating the type of events a source is interested in
++    enum EventType {
++      ReadableEvent = 1,    //!< data available to read
++      WritableEvent = 2,    //!< connected/data can be written without blocking
++      Exception     = 4     //!< uh oh
++    };
++    
++    //! Monitor this source for the event types specified by the event mask
++    //! and call its event handler when any of the events occur.
++    //!  @param source The source to monitor
++    //!  @param eventMask Which event types to watch for. \see EventType
++    void addSource(XmlRpcSource* source, unsigned eventMask);
++
++    //! Stop monitoring this source.
++    //!  @param source The source to stop monitoring
++    void removeSource(XmlRpcSource* source);
++
++    //! Modify the types of events to watch for on this source
++    void setSourceEvents(XmlRpcSource* source, unsigned eventMask);
++
++
++    //! Watch current set of sources and process events for the specified
++    //! duration (in ms, -1 implies wait forever, or until exit is called)
++    void work(double msTime);
++
++    //! Exit from work routine
++    void exit();
++
++    //! Clear all sources from the monitored sources list. Sources are closed.
++    void clear();
++
++    // helper
++    double getTime();
++
++    // A source to monitor and what to monitor it for
++    struct MonitoredSource {
++      MonitoredSource(XmlRpcSource* src, unsigned mask) : _src(src), _mask(mask) {}
++      XmlRpcSource* getSource() const { return _src; }
++      unsigned& getMask() { return _mask; }
++      XmlRpcSource* _src;
++      unsigned _mask;
++    };
++
++    // A list of sources to monitor
++    typedef std::list< MonitoredSource > SourceList; 
++
++    // Sources being monitored
++    SourceList _sources;
++  protected:
++
++    // When work should stop (-1 implies wait forever, or until exit is called)
++    double _endTime;
++
++    bool _doClear;
++    bool _inWork;
++
++  };
++} // namespace XmlRpc
++
++#endif  // _XMLRPCDISPATCH_H_
+diff --git a/utilities/xmlrpcpp/include/xmlrpcpp/XmlRpcException.h b/utilities/xmlrpcpp/include/xmlrpcpp/XmlRpcException.h
+new file mode 100644
+index 0000000..4e8a2a6
+--- /dev/null
++++ b/utilities/xmlrpcpp/include/xmlrpcpp/XmlRpcException.h
+@@ -0,0 +1,44 @@
++
++#ifndef _XMLRPCEXCEPTION_H_
++#define _XMLRPCEXCEPTION_H_
++//
++// XmlRpc++ Copyright (c) 2002-2003 by Chris Morley
++//
++#if defined(_MSC_VER)
++# pragma warning(disable:4786)    // identifier was truncated in debug info
++#endif
++
++#ifndef MAKEDEPEND
++# include <string>
++#endif
++
++#include "xmlrpcpp/XmlRpcDecl.h"
++
++
++namespace XmlRpc {
++
++  //! A class representing an error.
++  //! If server methods throw this exception, a fault response is returned
++  //! to the client.
++  class XMLRPCPP_DECL XmlRpcException {
++  public:
++    //! Constructor
++    //!   @param message  A descriptive error message
++    //!   @param code     An integer error code
++    XmlRpcException(const std::string& message, int code=-1) :
++        _message(message), _code(code) {}
++
++    //! Return the error message.
++    const std::string& getMessage() const { return _message; }
++
++    //! Return the error code.
++    int getCode() const { return _code; }
++
++  private:
++    std::string _message;
++    int _code;
++  };
++
++}
++
++#endif	// _XMLRPCEXCEPTION_H_
+diff --git a/utilities/xmlrpcpp/include/xmlrpcpp/XmlRpcServer.h b/utilities/xmlrpcpp/include/xmlrpcpp/XmlRpcServer.h
+new file mode 100644
+index 0000000..ac16dae
+--- /dev/null
++++ b/utilities/xmlrpcpp/include/xmlrpcpp/XmlRpcServer.h
+@@ -0,0 +1,114 @@
++// this file modified by Morgan Quigley on 22 Apr 2008.
++// added features: server can be opened on port 0 and you can read back
++// what port the OS gave you
++
++#ifndef _XMLRPCSERVER_H_
++#define _XMLRPCSERVER_H_
++//
++// XmlRpc++ Copyright (c) 2002-2003 by Chris Morley
++//
++#if defined(_MSC_VER)
++# pragma warning(disable:4786)    // identifier was truncated in debug info
++#endif
++
++#ifndef MAKEDEPEND
++# include <map>
++# include <string>
++#endif
++
++#include "xmlrpcpp/XmlRpcDispatch.h"
++#include "xmlrpcpp/XmlRpcSource.h"
++#include "xmlrpcpp/XmlRpcDecl.h"
++
++namespace XmlRpc {
++
++
++  // An abstract class supporting XML RPC methods
++  class XmlRpcServerMethod;
++
++  // Class representing connections to specific clients
++  class XmlRpcServerConnection;
++
++  // Class representing argument and result values
++  class XmlRpcValue;
++
++
++  //! A class to handle XML RPC requests
++  class XMLRPCPP_DECL XmlRpcServer : public XmlRpcSource {
++  public:
++    //! Create a server object.
++    XmlRpcServer();
++    //! Destructor.
++    virtual ~XmlRpcServer();
++
++    //! Specify whether introspection is enabled or not. Default is not enabled.
++    void enableIntrospection(bool enabled=true);
++
++    //! Add a command to the RPC server
++    void addMethod(XmlRpcServerMethod* method);
++
++    //! Remove a command from the RPC server
++    void removeMethod(XmlRpcServerMethod* method);
++
++    //! Remove a command from the RPC server by name
++    void removeMethod(const std::string& methodName);
++
++    //! Look up a method by name
++    XmlRpcServerMethod* findMethod(const std::string& name) const;
++
++    //! Create a socket, bind to the specified port, and
++    //! set it in listen mode to make it available for clients.
++    bool bindAndListen(int port, int backlog = 5);
++
++    //! Process client requests for the specified time
++    void work(double msTime);
++
++    //! Temporarily stop processing client requests and exit the work() method.
++    void exit();
++
++    //! Close all connections with clients and the socket file descriptor
++    void shutdown();
++
++    //! Introspection support
++    void listMethods(XmlRpcValue& result);
++
++    // XmlRpcSource interface implementation
++
++    //! Handle client connection requests
++    virtual unsigned handleEvent(unsigned eventType);
++
++    //! Remove a connection from the dispatcher
++    virtual void removeConnection(XmlRpcServerConnection*);
++
++    inline int get_port() { return _port; }
++
++    XmlRpcDispatch *get_dispatch() { return &_disp; }
++
++  protected:
++
++    //! Accept a client connection request
++    virtual void acceptConnection();
++
++    //! Create a new connection object for processing requests from a specific client.
++    virtual XmlRpcServerConnection* createConnection(int socket);
++
++    // Whether the introspection API is supported by this server
++    bool _introspectionEnabled;
++
++    // Event dispatcher
++    XmlRpcDispatch _disp;
++
++    // Collection of methods. This could be a set keyed on method name if we wanted...
++    typedef std::map< std::string, XmlRpcServerMethod* > MethodMap;
++    MethodMap _methods;
++
++    // system methods
++    XmlRpcServerMethod* _listMethods;
++    XmlRpcServerMethod* _methodHelp;
++
++    int _port;
++
++  };
++} // namespace XmlRpc
++
++#endif //_XMLRPCSERVER_H_
+diff --git a/utilities/xmlrpcpp/include/xmlrpcpp/XmlRpcServerConnection.h b/utilities/xmlrpcpp/include/xmlrpcpp/XmlRpcServerConnection.h
+new file mode 100644
+index 0000000..ed4d092
+--- /dev/null
++++ b/utilities/xmlrpcpp/include/xmlrpcpp/XmlRpcServerConnection.h
+@@ -0,0 +1,103 @@
++#ifndef _XMLRPCSERVERCONNECTION_H_
++#define _XMLRPCSERVERCONNECTION_H_
++//
++// XmlRpc++ Copyright (c) 2002-2003 by Chris Morley
++//
++#if defined(_MSC_VER)
++# pragma warning(disable:4786)    // identifier was truncated in debug info
++#endif
++
++#ifndef MAKEDEPEND
++# include <string>
++#endif
++
++#include "xmlrpcpp/XmlRpcValue.h"
++#include "xmlrpcpp/XmlRpcSource.h"
++#include "xmlrpcpp/XmlRpcDecl.h"
++
++namespace XmlRpc {
++
++
++  // The server waits for client connections and provides methods
++  class XmlRpcServer;
++  class XmlRpcServerMethod;
++
++  //! A class to handle XML RPC requests from a particular client
++  class XMLRPCPP_DECL XmlRpcServerConnection : public XmlRpcSource {
++  public:
++    // Static data
++    static const char METHODNAME_TAG[];
++    static const char PARAMS_TAG[];
++    static const char PARAMS_ETAG[];
++    static const char PARAM_TAG[];
++    static const char PARAM_ETAG[];
++
++    static const std::string SYSTEM_MULTICALL;
++    static const std::string METHODNAME;
++    static const std::string PARAMS;
++
++    static const std::string FAULTCODE;
++    static const std::string FAULTSTRING;
++
++    //! Constructor
++    XmlRpcServerConnection(int fd, XmlRpcServer* server, bool deleteOnClose = false);
++    //! Destructor
++    virtual ~XmlRpcServerConnection();
++
++    // XmlRpcSource interface implementation
++    //! Handle IO on the client connection socket.
++    //!   @param eventType Type of IO event that occurred. @see XmlRpcDispatch::EventType.
++    virtual unsigned handleEvent(unsigned eventType);
++
++  protected:
++
++    bool readHeader();
++    bool readRequest();
++    bool writeResponse();
++
++    // Parses the request, runs the method, generates the response xml.
++    virtual void executeRequest();
++
++    // Parse the methodName and parameters from the request.
++    std::string parseRequest(XmlRpcValue& params);
++
++    // Execute a named method with the specified params.
++    bool executeMethod(const std::string& methodName, XmlRpcValue& params, XmlRpcValue& result);
++
++    // Execute multiple calls and return the results in an array.
++    bool executeMulticall(const std::string& methodName, XmlRpcValue& params, XmlRpcValue& result);
++
++    // Construct a response from the result XML.
++    void generateResponse(std::string const& resultXml);
++    void generateFaultResponse(std::string const& msg, int errorCode = -1);
++    std::string generateHeader(std::string const& body);
++
++
++    // The XmlRpc server that accepted this connection
++    XmlRpcServer* _server;
++
++    // Possible IO states for the connection
++    enum ServerConnectionState { READ_HEADER, READ_REQUEST, WRITE_RESPONSE };
++    ServerConnectionState _connectionState;
++
++    // Request headers
++    std::string _header;
++
++    // Number of bytes expected in the request body (parsed from header)
++    int _contentLength;
++
++    // Request body
++    std::string _request;
++
++    // Response
++    std::string _response;
++
++    // Number of bytes of the response written so far
++    int _bytesWritten;
++
++    // Whether to keep the current client connection open for further requests
++    bool _keepAlive;
++  };
++} // namespace XmlRpc
++
++#endif // _XMLRPCSERVERCONNECTION_H_
+diff --git a/utilities/xmlrpcpp/include/xmlrpcpp/XmlRpcServerMethod.h b/utilities/xmlrpcpp/include/xmlrpcpp/XmlRpcServerMethod.h
+new file mode 100644
+index 0000000..90dddcd
+--- /dev/null
++++ b/utilities/xmlrpcpp/include/xmlrpcpp/XmlRpcServerMethod.h
+@@ -0,0 +1,49 @@
++
++#ifndef _XMLRPCSERVERMETHOD_H_
++#define _XMLRPCSERVERMETHOD_H_
++//
++// XmlRpc++ Copyright (c) 2002-2003 by Chris Morley
++//
++#if defined(_MSC_VER)
++# pragma warning(disable:4786)    // identifier was truncated in debug info
++#endif
++
++#include "xmlrpcpp/XmlRpcDecl.h"
++
++#ifndef MAKEDEPEND
++# include <string>
++#endif
++
++namespace XmlRpc {
++
++  // Representation of a parameter or result value
++  class XmlRpcValue;
++
++  // The XmlRpcServer processes client requests to call RPCs
++  class XmlRpcServer;
++
++  //! Abstract class representing a single RPC method
++  class XMLRPCPP_DECL XmlRpcServerMethod {
++  public:
++    //! Constructor
++    XmlRpcServerMethod(std::string const& name, XmlRpcServer* server = 0);
++    //! Destructor
++    virtual ~XmlRpcServerMethod();
++
++    //! Returns the name of the method
++    std::string& name() { return _name; }
++
++    //! Execute the method. Subclasses must provide a definition for this method.
++    virtual void execute(XmlRpcValue& params, XmlRpcValue& result) = 0;
++
++    //! Returns a help string for the method.
++    //! Subclasses should define this method if introspection is being used.
++    virtual std::string help() { return std::string(); }
++
++  protected:
++    std::string _name;
++    XmlRpcServer* _server;
++  };
++} // namespace XmlRpc
++
++#endif // _XMLRPCSERVERMETHOD_H_
+diff --git a/utilities/xmlrpcpp/include/xmlrpcpp/XmlRpcSocket.h b/utilities/xmlrpcpp/include/xmlrpcpp/XmlRpcSocket.h
+new file mode 100644
+index 0000000..bc9a530
+--- /dev/null
++++ b/utilities/xmlrpcpp/include/xmlrpcpp/XmlRpcSocket.h
+@@ -0,0 +1,80 @@
++// this file modified by Morgan Quigley on 22 Apr 2008.
++// added features: server can be opened on port 0 and you can read back
++// what port the OS gave you
++
++#ifndef _XMLRPCSOCKET_H_
++#define _XMLRPCSOCKET_H_
++//
++// XmlRpc++ Copyright (c) 2002-2003 by Chris Morley
++//
++#if defined(_MSC_VER)
++# pragma warning(disable:4786)    // identifier was truncated in debug info
++#endif
++
++#ifndef MAKEDEPEND
++# include <string>
++#endif
++
++#include "xmlrpcpp/XmlRpcDecl.h"
++
++namespace XmlRpc {
++
++  //! A platform-independent socket API.
++  class XMLRPCPP_DECL XmlRpcSocket {
++  public:
++
++    static bool s_use_ipv6_;
++
++    //! Creates a stream (TCP) socket. Returns -1 on failure.
++    static int socket();
++
++    //! Closes a socket.
++    static void close(int socket);
++
++
++    //! Sets a stream (TCP) socket to perform non-blocking IO. Returns false on failure.
++    static bool setNonBlocking(int socket);
++
++    //! Read text from the specified socket. Returns false on error.
++    static bool nbRead(int socket, std::string& s, bool *eof);
++
++    //! Write text to the specified socket. Returns false on error.
++    static bool nbWrite(int socket, std::string& s, int *bytesSoFar);
++
++
++    // The next four methods are appropriate for servers.
++
++    //! Allow the port the specified socket is bound to to be re-bound immediately so 
++    //! server re-starts are not delayed. Returns false on failure.
++    static bool setReuseAddr(int socket);
++
++    //! Bind to a specified port
++    static bool bind(int socket, int port);
++    
++    static int get_port(int socket);
++
++    //! Set socket in listen mode
++    static bool listen(int socket, int backlog);
++
++    //! Accept a client connection request
++    static int accept(int socket);
++
++
++
++    //! Connect a socket to a server (from a client)
++    static bool connect(int socket, std::string& host, int port);
++
++
++    //! Returns last errno
++    static int getError();
++
++    //! Returns message corresponding to last error
++    static std::string getErrorMsg();
++
++    //! Returns message corresponding to error
++    static std::string getErrorMsg(int error);
++  };
++
++} // namespace XmlRpc
++
++#endif
+diff --git a/utilities/xmlrpcpp/include/xmlrpcpp/XmlRpcSource.h b/utilities/xmlrpcpp/include/xmlrpcpp/XmlRpcSource.h
+new file mode 100644
+index 0000000..217f416
+--- /dev/null
++++ b/utilities/xmlrpcpp/include/xmlrpcpp/XmlRpcSource.h
+@@ -0,0 +1,57 @@
++
++#ifndef _XMLRPCSOURCE_H_
++#define _XMLRPCSOURCE_H_
++//
++// XmlRpc++ Copyright (c) 2002-2003 by Chris Morley
++//
++#if defined(_MSC_VER)
++# pragma warning(disable:4786)    // identifier was truncated in debug info
++#endif
++
++#include "xmlrpcpp/XmlRpcDecl.h"
++
++namespace XmlRpc {
++
++  //! An RPC source represents a file descriptor to monitor
++  class XMLRPCPP_DECL XmlRpcSource {
++  public:
++    //! Constructor
++    //!  @param fd The socket file descriptor to monitor.
++    //!  @param deleteOnClose If true, the object deletes itself when close is called.
++    XmlRpcSource(int fd = -1, bool deleteOnClose = false);
++
++    //! Destructor
++    virtual ~XmlRpcSource();
++
++    //! Return the file descriptor being monitored.
++    int getfd() const { return _fd; }
++    //! Specify the file descriptor to monitor.
++    void setfd(int fd) { _fd = fd; }
++
++    //! Return whether the file descriptor should be kept open if it is no longer monitored.
++    bool getKeepOpen() const { return _keepOpen; }
++    //! Specify whether the file descriptor should be kept open if it is no longer monitored.
++    void setKeepOpen(bool b=true) { _keepOpen = b; }
++
++    //! Close the owned fd. If deleteOnClose was specified at construction, the object is deleted.
++    virtual void close();
++
++    //! Return true to continue monitoring this source
++    virtual unsigned handleEvent(unsigned eventType) = 0;
++
++  private:
++
++    // Socket. This should really be a SOCKET (an alias for unsigned int*) on windows...
++    int _fd;
++
++    // In the server, a new source (XmlRpcServerConnection) is created
++    // for each connected client. When each connection is closed, the
++    // corresponding source object is deleted.
++    bool _deleteOnClose;
++
++    // In the client, keep connections open if you intend to make multiple calls.
++    bool _keepOpen;
++  };
++} // namespace XmlRpc
++
++#endif //_XMLRPCSOURCE_H_
+diff --git a/utilities/xmlrpcpp/include/xmlrpcpp/XmlRpcUtil.h b/utilities/xmlrpcpp/include/xmlrpcpp/XmlRpcUtil.h
+new file mode 100644
+index 0000000..acde160
+--- /dev/null
++++ b/utilities/xmlrpcpp/include/xmlrpcpp/XmlRpcUtil.h
+@@ -0,0 +1,63 @@
++#ifndef _XMLRPCUTIL_H_
++#define _XMLRPCUTIL_H_
++//
++// XmlRpc++ Copyright (c) 2002-2003 by Chris Morley
++//
++#if defined(_MSC_VER)
++# pragma warning(disable:4786)    // identifier was truncated in debug info
++#endif
++
++#ifndef MAKEDEPEND
++# include <string>
++#endif
++
++#include "xmlrpcpp/XmlRpcDecl.h"
++
++#if defined(_MSC_VER)
++# define snprintf	    _snprintf_s
++# define vsnprintf    _vsnprintf_s
++# define strcasecmp	  _stricmp
++# define strncasecmp	_strnicmp
++#elif defined(__BORLANDC__)
++# define strcasecmp stricmp
++# define strncasecmp strnicmp
++#endif
++
++namespace XmlRpc {
++
++  //! Utilities for XML parsing, encoding, and decoding and message handlers.
++  class XMLRPCPP_DECL XmlRpcUtil {
++  public:
++    // hokey xml parsing
++    //! Returns contents between <tag> and </tag>, updates offset to char after </tag>
++    static std::string parseTag(const char* tag, std::string const& xml, int* offset);
++
++    //! Returns true if the tag is found and updates offset to the char after the tag
++    static bool findTag(const char* tag, std::string const& xml, int* offset);
++
++    //! Returns the next tag and updates offset to the char after the tag, or empty string
++    //! if the next non-whitespace character is not '<'
++    static std::string getNextTag(std::string const& xml, int* offset);
++
++    //! Returns true if the tag is found at the specified offset (modulo any whitespace)
++    //! and updates offset to the char after the tag
++    static bool nextTagIs(const char* tag, std::string const& xml, int* offset);
++
++
++    //! Convert raw text to encoded xml.
++    static std::string xmlEncode(const std::string& raw);
++
++    //! Convert encoded xml to raw text
++    static std::string xmlDecode(const std::string& encoded);
++
++
++    //! Dump messages somewhere
++    static void log(int level, const char* fmt, ...);
++
++    //! Dump error messages somewhere
++    static void error(const char* fmt, ...);
++
++  };
++} // namespace XmlRpc
++
++#endif // _XMLRPCUTIL_H_
+diff --git a/utilities/xmlrpcpp/include/xmlrpcpp/XmlRpcValue.h b/utilities/xmlrpcpp/include/xmlrpcpp/XmlRpcValue.h
+new file mode 100644
+index 0000000..0d72c59
+--- /dev/null
++++ b/utilities/xmlrpcpp/include/xmlrpcpp/XmlRpcValue.h
+@@ -0,0 +1,195 @@
++
++#ifndef _XMLRPCVALUE_H_
++#define _XMLRPCVALUE_H_
++//
++// XmlRpc++ Copyright (c) 2002-2003 by Chris Morley
++//
++#if defined(_MSC_VER)
++# pragma warning(disable:4786)    // identifier was truncated in debug info
++#endif
++
++#include "xmlrpcpp/XmlRpcDecl.h"
++
++#ifndef MAKEDEPEND
++# include <map>
++# include <string>
++# include <vector>
++# include <time.h>
++#endif
++
++namespace XmlRpc {
++
++  //! RPC method arguments and results are represented by Values
++  //   should probably refcount them...
++  class XMLRPCPP_DECL XmlRpcValue {
++  public:
++
++
++    enum Type {
++      TypeInvalid,
++      TypeBoolean,
++      TypeInt,
++      TypeDouble,
++      TypeString,
++      TypeDateTime,
++      TypeBase64,
++      TypeArray,
++      TypeStruct
++    };
++
++    // Non-primitive types
++    typedef std::vector<char> BinaryData;
++    typedef std::vector<XmlRpcValue> ValueArray;
++    typedef std::map<std::string, XmlRpcValue> ValueStruct;
++    typedef ValueStruct::iterator iterator;
++
++
++    //! Constructors
++    XmlRpcValue() : _type(TypeInvalid) { _value.asBinary = 0; }
++    XmlRpcValue(bool value) : _type(TypeBoolean) { _value.asBool = value; }
++    XmlRpcValue(int value)  : _type(TypeInt) { _value.asInt = value; }
++    XmlRpcValue(double value)  : _type(TypeDouble) { _value.asDouble = value; }
++
++    XmlRpcValue(std::string const& value) : _type(TypeString) 
++    { _value.asString = new std::string(value); }
++
++    XmlRpcValue(const char* value)  : _type(TypeString)
++    { _value.asString = new std::string(value); }
++
++    XmlRpcValue(struct tm* value)  : _type(TypeDateTime) 
++    { _value.asTime = new struct tm(*value); }
++
++
++    XmlRpcValue(void* value, int nBytes)  : _type(TypeBase64)
++    {
++      _value.asBinary = new BinaryData((char*)value, ((char*)value)+nBytes);
++    }
++
++    //! Construct from xml, beginning at *offset chars into the string, updates offset
++    XmlRpcValue(std::string const& xml, int* offset) : _type(TypeInvalid)
++    { if ( ! fromXml(xml,offset)) _type = TypeInvalid; }
++
++    //! Copy
++    XmlRpcValue(XmlRpcValue const& rhs) : _type(TypeInvalid) { *this = rhs; }
++
++    //! Destructor (make virtual if you want to subclass)
++    /*virtual*/ ~XmlRpcValue() { invalidate(); }
++
++    //! Erase the current value
++    void clear() { invalidate(); }
++
++    // Operators
++    XmlRpcValue& operator=(XmlRpcValue const& rhs);
++    XmlRpcValue& operator=(int const& rhs) { return operator=(XmlRpcValue(rhs)); }
++    XmlRpcValue& operator=(double const& rhs) { return operator=(XmlRpcValue(rhs)); }
++    XmlRpcValue& operator=(const char* rhs) { return operator=(XmlRpcValue(std::string(rhs))); }
++
++    bool operator==(XmlRpcValue const& other) const;
++    bool operator!=(XmlRpcValue const& other) const;
++
++    operator bool&()          { assertTypeOrInvalid(TypeBoolean); return _value.asBool; }
++    operator int&()           { assertTypeOrInvalid(TypeInt); return _value.asInt; }
++    operator double&()        { assertTypeOrInvalid(TypeDouble); return _value.asDouble; }
++    operator std::string&()   { assertTypeOrInvalid(TypeString); return *_value.asString; }
++    operator BinaryData&()    { assertTypeOrInvalid(TypeBase64); return *_value.asBinary; }
++    operator struct tm&()     { assertTypeOrInvalid(TypeDateTime); return *_value.asTime; }
++
++    XmlRpcValue const& operator[](int i) const { assertArray(i+1); return _value.asArray->at(i); }
++    XmlRpcValue& operator[](int i)             { assertArray(i+1); return _value.asArray->at(i); }
++
++    XmlRpcValue& operator[](std::string const& k) { assertStruct(); return (*_value.asStruct)[k]; }
++    XmlRpcValue& operator[](const char* k) { assertStruct(); std::string s(k); return (*_value.asStruct)[s]; }
++
++    iterator begin() {assertStruct(); return (*_value.asStruct).begin(); }
++    iterator end() {assertStruct(); return (*_value.asStruct).end(); }
++
++    // Accessors
++    //! Return true if the value has been set to something.
++    bool valid() const { return _type != TypeInvalid; }
++
++    //! Return the type of the value stored. \see Type.
++    Type const &getType() const { return _type; }
++
++    //! Return the size for string, base64, array, and struct values.
++    int size() const;
++
++    //! Specify the size for array values. Array values will grow beyond this size if needed.
++    void setSize(int size)    { assertArray(size); }
++
++    //! Check for the existence of a struct member by name.
++    bool hasMember(const std::string& name) const;
++
++    //! Decode xml. Destroys any existing value.
++    bool fromXml(std::string const& valueXml, int* offset);
++
++    //! Encode the Value in xml
++    std::string toXml() const;
++
++    //! Write the value (no xml encoding)
++    std::ostream& write(std::ostream& os) const;
++
++    // Formatting
++    //! Return the format used to write double values.
++    static std::string const& getDoubleFormat() { return _doubleFormat; }
++
++    //! Specify the format used to write double values.
++    static void setDoubleFormat(const char* f) { _doubleFormat = f; }
++
++
++  protected:
++    // Clean up
++    void invalidate();
++
++    // Type checking
++    void assertTypeOrInvalid(Type t);
++    void assertArray(int size) const;
++    void assertArray(int size);
++    void assertStruct();
++
++    // XML decoding
++    bool boolFromXml(std::string const& valueXml, int* offset);
++    bool intFromXml(std::string const& valueXml, int* offset);
++    bool doubleFromXml(std::string const& valueXml, int* offset);
++    bool stringFromXml(std::string const& valueXml, int* offset);
++    bool timeFromXml(std::string const& valueXml, int* offset);
++    bool binaryFromXml(std::string const& valueXml, int* offset);
++    bool arrayFromXml(std::string const& valueXml, int* offset);
++    bool structFromXml(std::string const& valueXml, int* offset);
++
++    // XML encoding
++    std::string boolToXml() const;
++    std::string intToXml() const;
++    std::string doubleToXml() const;
++    std::string stringToXml() const;
++    std::string timeToXml() const;
++    std::string binaryToXml() const;
++    std::string arrayToXml() const;
++    std::string structToXml() const;
++
++    // Format strings
++    static std::string _doubleFormat;
++
++    // Type tag and values
++    Type _type;
++
++    // At some point I will split off Arrays and Structs into
++    // separate ref-counted objects for more efficient copying.
++    union {
++      bool          asBool;
++      int           asInt;
++      double        asDouble;
++      struct tm*    asTime;
++      std::string*  asString;
++      BinaryData*   asBinary;
++      ValueArray*   asArray;
++      ValueStruct*  asStruct;
++    } _value;
++    
++  };
++} // namespace XmlRpc
++
++
++std::ostream& operator<<(std::ostream& os, XmlRpc::XmlRpcValue& v);
++
++
++#endif // _XMLRPCVALUE_H_
+diff --git a/utilities/xmlrpcpp/include/xmlrpcpp/base64.h b/utilities/xmlrpcpp/include/xmlrpcpp/base64.h
+new file mode 100644
+index 0000000..c239403
+--- /dev/null
++++ b/utilities/xmlrpcpp/include/xmlrpcpp/base64.h
+@@ -0,0 +1,380 @@
++
++
++//  base64.hpp 
++//  Autor Konstantin Pilipchuk
++//  mailto:lostd at ukr.net
++//
++//
++
++#if !defined(__BASE64_H_INCLUDED__)
++#define __BASE64_H_INCLUDED__ 1
++
++#ifndef MAKEDEPEND
++# include <iterator>
++#endif
++
++#include <ios>
++
++static
++int _base64Chars[]= {'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z',
++				     'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z',
++			         '0','1','2','3','4','5','6','7','8','9',
++			         '+','/' };
++
++
++#define _0000_0011 0x03
++#define _1111_1100 0xFC
++#define _1111_0000 0xF0
++#define _0011_0000 0x30
++#define _0011_1100 0x3C
++#define _0000_1111 0x0F
++#define _1100_0000 0xC0
++#define _0011_1111 0x3F
++
++#define _EQUAL_CHAR   (-1)
++#define _UNKNOWN_CHAR (-2)
++
++#define _IOS_FAILBIT   std::ios_base::failbit
++#define _IOS_EOFBIT    std::ios_base::eofbit
++#define _IOS_BADBIT    std::ios_base::badbit
++#define _IOS_GOODBIT   std::ios_base::goodbit
++
++// TEMPLATE CLASS base64_put
++template<class _E = char, class _Tr = std::char_traits<_E> >
++class base64
++{
++public:
++
++	typedef unsigned char byte_t;
++	typedef _E            char_type;
++	typedef _Tr           traits_type; 
++
++	// base64 requires max line length <= 72 characters
++	// you can fill end of line
++	// it may be crlf, crlfsp, noline or other class like it
++
++
++	struct crlf
++	{
++		template<class _OI>
++			_OI operator()(_OI _To) const{
++			*_To = _Tr::to_char_type('\r'); ++_To;
++			*_To = _Tr::to_char_type('\n'); ++_To;
++
++			return (_To);
++		}
++	};
++
++
++	struct crlfsp
++	{
++		template<class _OI>
++			_OI operator()(_OI _To) const{
++			*_To = _Tr::to_char_type('\r'); ++_To;
++			*_To = _Tr::to_char_type('\n'); ++_To;
++			*_To = _Tr::to_char_type(' '); ++_To;
++
++			return (_To);
++		}
++	};
++
++	struct noline
++	{
++		template<class _OI>
++			_OI operator()(_OI _To) const{
++			return (_To);
++		}
++	};
++
++	struct three2four
++	{
++		void zero()
++		{
++			_data[0] = 0;
++			_data[1] = 0;
++			_data[2] = 0;
++		}
++
++		byte_t get_0()	const
++		{
++			return _data[0];
++		}
++		byte_t get_1()	const
++		{
++			return _data[1];
++		}
++		byte_t get_2()	const
++		{
++			return _data[2];
++		}
++
++		void set_0(byte_t _ch)
++		{
++			_data[0] = _ch;
++		}
++
++		void set_1(byte_t _ch)
++		{
++			_data[1] = _ch;
++		}
++
++		void set_2(byte_t _ch)
++		{
++			_data[2] = _ch;
++		}
++
++		// 0000 0000  1111 1111  2222 2222
++		// xxxx xxxx  xxxx xxxx  xxxx xxxx
++		// 0000 0011  1111 2222  2233 3333
++
++		int b64_0()	const	{return (_data[0] & _1111_1100) >> 2;}
++		int b64_1()	const	{return ((_data[0] & _0000_0011) << 4) + ((_data[1] & _1111_0000)>>4);}
++		int b64_2()	const	{return ((_data[1] & _0000_1111) << 2) + ((_data[2] & _1100_0000)>>6);}
++		int b64_3()	const	{return (_data[2] & _0011_1111);}
++
++		void b64_0(int _ch)	{_data[0] = ((_ch & _0011_1111) << 2) | (_0000_0011 & _data[0]);}
++
++		void b64_1(int _ch)	{
++			_data[0] = ((_ch & _0011_0000) >> 4) | (_1111_1100 & _data[0]);
++			_data[1] = ((_ch & _0000_1111) << 4) | (_0000_1111 & _data[1]);	}
++
++		void b64_2(int _ch)	{
++			_data[1] = ((_ch & _0011_1100) >> 2) | (_1111_0000 & _data[1]);
++			_data[2] = ((_ch & _0000_0011) << 6) | (_0011_1111 & _data[2]);	}
++
++		void b64_3(int _ch){
++			_data[2] = (_ch & _0011_1111) | (_1100_0000 & _data[2]);}
++
++	private:
++		byte_t _data[3];
++
++	};
++
++
++
++
++	template<class _II, class _OI, class _State, class _Endline>
++        _II put(_II _First, _II _Last, _OI _To, _State&, _Endline)  const
++	{
++		three2four _3to4;
++		int line_octets = 0;
++
++		while(_First != _Last)
++		{
++			_3to4.zero();
++
++			_3to4.set_0(*_First);
++			_First++;
++
++			if(_First == _Last)
++			{
++				*_To = _Tr::to_char_type(_base64Chars[_3to4.b64_0()]); ++_To;
++				*_To = _Tr::to_char_type(_base64Chars[_3to4.b64_1()]); ++_To;
++				*_To = _Tr::to_char_type('='); ++_To;
++				*_To = _Tr::to_char_type('='); ++_To;
++				goto __end;
++			}
++
++			_3to4.set_1(*_First);
++			_First++;
++
++			if(_First == _Last)
++			{
++				*_To = _Tr::to_char_type(_base64Chars[_3to4.b64_0()]); ++_To;
++				*_To = _Tr::to_char_type(_base64Chars[_3to4.b64_1()]); ++_To;
++				*_To = _Tr::to_char_type(_base64Chars[_3to4.b64_2()]); ++_To;
++				*_To = _Tr::to_char_type('='); ++_To;
++				goto __end;
++			}
++
++			_3to4.set_2(*_First);
++			_First++;
++
++			*_To = _Tr::to_char_type(_base64Chars[_3to4.b64_0()]); ++_To;
++			*_To = _Tr::to_char_type(_base64Chars[_3to4.b64_1()]); ++_To;
++			*_To = _Tr::to_char_type(_base64Chars[_3to4.b64_2()]); ++_To;
++			*_To = _Tr::to_char_type(_base64Chars[_3to4.b64_3()]); ++_To;
++
++			if(line_octets == 17)
++			{
++                                //_To = _Endl(_To);
++                                *_To = '\n'; ++_To;
++                                line_octets = 0;
++			}
++			else
++				++line_octets;
++		}
++
++		__end: ;
++
++		return (_First);
++
++	}
++
++
++	template<class _II, class _OI, class _State>
++		_II get(_II _First, _II _Last, _OI _To, _State& _St) const
++	{
++		three2four _3to4;
++		int _Char;
++
++		while(_First != _Last)
++		{
++
++			// Take octet
++			_3to4.zero();
++
++			// -- 0 --
++			// Search next valid char... 
++			while((_Char =  _getCharType(*_First)) < 0 && _Char == _UNKNOWN_CHAR)
++			{
++				if(++_First == _Last)
++				{
++					_St |= _IOS_FAILBIT|_IOS_EOFBIT; return _First; // unexpected EOF
++				}
++			}
++
++			if(_Char == _EQUAL_CHAR){
++				// Error! First character in octet can't be '='
++				_St |= _IOS_FAILBIT; 
++				return _First; 
++			}
++			else
++				_3to4.b64_0(_Char);
++
++
++			// -- 1 --
++			// Search next valid char... 
++			while(++_First != _Last)
++				if((_Char = _getCharType(*_First)) != _UNKNOWN_CHAR)
++					break;
++
++			if(_First == _Last)	{
++				_St |= _IOS_FAILBIT|_IOS_EOFBIT; // unexpected EOF 
++				return _First;
++			}
++
++			if(_Char == _EQUAL_CHAR){
++				// Error! Second character in octet can't be '='
++				_St |= _IOS_FAILBIT; 
++				return _First; 
++			}
++			else
++				_3to4.b64_1(_Char);
++
++
++			// -- 2 --
++			// Search next valid char... 
++			while(++_First != _Last)
++				if((_Char = _getCharType(*_First)) != _UNKNOWN_CHAR)
++					break;
++
++			if(_First == _Last)	{
++				// Error! Unexpected EOF. Must be '=' or base64 character
++				_St |= _IOS_FAILBIT|_IOS_EOFBIT; 
++				return _First; 
++			}
++
++			if(_Char == _EQUAL_CHAR){
++				// OK!
++				_3to4.b64_2(0); 
++				_3to4.b64_3(0); 
++
++				// chek for EOF
++				if(++_First == _Last)
++				{
++					// Error! Unexpected EOF. Must be '='. Ignore it.
++					//_St |= _IOS_BADBIT|_IOS_EOFBIT;
++					_St |= _IOS_EOFBIT;
++				}
++				else 
++					if(_getCharType(*_First) != _EQUAL_CHAR)
++					{
++						// Error! Must be '='. Ignore it.
++						//_St |= _IOS_BADBIT;
++					}
++				else
++					++_First; // Skip '='
++
++				// write 1 byte to output
++				*_To = (byte_t) _3to4.get_0();
++				return _First;
++			}
++			else
++				_3to4.b64_2(_Char);
++
++
++			// -- 3 --
++			// Search next valid char... 
++			while(++_First != _Last)
++				if((_Char = _getCharType(*_First)) != _UNKNOWN_CHAR)
++					break;
++
++			if(_First == _Last)	{
++				// Unexpected EOF. It's error. But ignore it.
++				//_St |= _IOS_FAILBIT|_IOS_EOFBIT; 
++					_St |= _IOS_EOFBIT; 
++				
++				return _First; 
++			}
++
++			if(_Char == _EQUAL_CHAR)
++			{
++				// OK!
++				_3to4.b64_3(0); 
++
++				// write to output 2 bytes
++				*_To = (byte_t) _3to4.get_0();
++				*_To = (byte_t) _3to4.get_1();
++
++				++_First; // set position to next character
++
++				return _First;
++			}
++			else
++				_3to4.b64_3(_Char);
++
++
++			// write to output 3 bytes
++			*_To = (byte_t) _3to4.get_0();
++			*_To = (byte_t) _3to4.get_1();
++			*_To = (byte_t) _3to4.get_2();
++
++			++_First;
++			
++
++		} // while(_First != _Last)
++
++		return (_First);
++	}
++
++protected:
++	
++	int _getCharType(int _Ch) const
++	{
++		if(_base64Chars[62] == _Ch)
++			return 62;
++
++		if(_base64Chars[63] == _Ch)
++			return 63;
++
++		if((_base64Chars[0] <= _Ch) && (_base64Chars[25] >= _Ch))
++			return _Ch - _base64Chars[0];
++
++		if((_base64Chars[26] <= _Ch) && (_base64Chars[51] >= _Ch))
++			return _Ch - _base64Chars[26] + 26;
++
++		if((_base64Chars[52] <= _Ch) && (_base64Chars[61] >= _Ch))
++			return _Ch - _base64Chars[52] + 52;
++
++		if(_Ch == _Tr::to_int_type('='))
++			return _EQUAL_CHAR;
++
++		return _UNKNOWN_CHAR;
++	}
++
++
++};
++
++
++#endif
+diff --git a/utilities/xmlrpcpp/src/XmlRpcClient.cpp b/utilities/xmlrpcpp/src/XmlRpcClient.cpp
+index 31cda22..b533059 100644
+--- a/utilities/xmlrpcpp/src/XmlRpcClient.cpp
++++ b/utilities/xmlrpcpp/src/XmlRpcClient.cpp
+@@ -1,8 +1,8 @@
+ 
+-#include "XmlRpcClient.h"
++#include "xmlrpcpp/XmlRpcClient.h"
+ 
+-#include "XmlRpcSocket.h"
+-#include "XmlRpc.h"
++#include "xmlrpcpp/XmlRpcSocket.h"
++#include "xmlrpcpp/XmlRpc.h"
+ 
+ #include <stdio.h>
+ #include <stdlib.h>
+diff --git a/utilities/xmlrpcpp/src/XmlRpcDispatch.cpp b/utilities/xmlrpcpp/src/XmlRpcDispatch.cpp
+index 1d47836..e92dc5c 100644
+--- a/utilities/xmlrpcpp/src/XmlRpcDispatch.cpp
++++ b/utilities/xmlrpcpp/src/XmlRpcDispatch.cpp
+@@ -1,7 +1,7 @@
+ 
+-#include "XmlRpcDispatch.h"
+-#include "XmlRpcSource.h"
+-#include "XmlRpcUtil.h"
++#include "xmlrpcpp/XmlRpcDispatch.h"
++#include "xmlrpcpp/XmlRpcSource.h"
++#include "xmlrpcpp/XmlRpcUtil.h"
+ 
+ #include <math.h>
+ #include <errno.h>
+diff --git a/utilities/xmlrpcpp/src/XmlRpcServer.cpp b/utilities/xmlrpcpp/src/XmlRpcServer.cpp
+index 013c6ec..2515142 100644
+--- a/utilities/xmlrpcpp/src/XmlRpcServer.cpp
++++ b/utilities/xmlrpcpp/src/XmlRpcServer.cpp
+@@ -2,12 +2,12 @@
+ // added features: server can be opened on port 0 and you can read back
+ // what port the OS gave you
+ 
+-#include "XmlRpcServer.h"
+-#include "XmlRpcServerConnection.h"
+-#include "XmlRpcServerMethod.h"
+-#include "XmlRpcSocket.h"
+-#include "XmlRpcUtil.h"
+-#include "XmlRpcException.h"
++#include "xmlrpcpp/XmlRpcServer.h"
++#include "xmlrpcpp/XmlRpcServerConnection.h"
++#include "xmlrpcpp/XmlRpcServerMethod.h"
++#include "xmlrpcpp/XmlRpcSocket.h"
++#include "xmlrpcpp/XmlRpcUtil.h"
++#include "xmlrpcpp/XmlRpcException.h"
+ 
+ 
+ using namespace XmlRpc;
+diff --git a/utilities/xmlrpcpp/src/XmlRpcServerConnection.cpp b/utilities/xmlrpcpp/src/XmlRpcServerConnection.cpp
+index 76b2737..26c997f 100644
+--- a/utilities/xmlrpcpp/src/XmlRpcServerConnection.cpp
++++ b/utilities/xmlrpcpp/src/XmlRpcServerConnection.cpp
+@@ -1,8 +1,8 @@
+ 
+-#include "XmlRpcServerConnection.h"
++#include "xmlrpcpp/XmlRpcServerConnection.h"
+ 
+-#include "XmlRpcSocket.h"
+-#include "XmlRpc.h"
++#include "xmlrpcpp/XmlRpcSocket.h"
++#include "xmlrpcpp/XmlRpc.h"
+ #ifndef MAKEDEPEND
+ # include <stdio.h>
+ # include <stdlib.h>
+diff --git a/utilities/xmlrpcpp/src/XmlRpcServerMethod.cpp b/utilities/xmlrpcpp/src/XmlRpcServerMethod.cpp
+index 1616ff4..f40447c 100644
+--- a/utilities/xmlrpcpp/src/XmlRpcServerMethod.cpp
++++ b/utilities/xmlrpcpp/src/XmlRpcServerMethod.cpp
+@@ -1,6 +1,6 @@
+ 
+-#include "XmlRpcServerMethod.h"
+-#include "XmlRpcServer.h"
++#include "xmlrpcpp/XmlRpcServerMethod.h"
++#include "xmlrpcpp/XmlRpcServer.h"
+ 
+ namespace XmlRpc {
+ 
+diff --git a/utilities/xmlrpcpp/src/XmlRpcSocket.cpp b/utilities/xmlrpcpp/src/XmlRpcSocket.cpp
+index b3c694b..8173fc9 100644
+--- a/utilities/xmlrpcpp/src/XmlRpcSocket.cpp
++++ b/utilities/xmlrpcpp/src/XmlRpcSocket.cpp
+@@ -2,8 +2,8 @@
+ // added features: server can be opened on port 0 and you can read back
+ // what port the OS gave you
+ 
+-#include "XmlRpcSocket.h"
+-#include "XmlRpcUtil.h"
++#include "xmlrpcpp/XmlRpcSocket.h"
++#include "xmlrpcpp/XmlRpcUtil.h"
+ 
+ #ifndef MAKEDEPEND
+ 
+diff --git a/utilities/xmlrpcpp/src/XmlRpcSource.cpp b/utilities/xmlrpcpp/src/XmlRpcSource.cpp
+index 99203b0..4b44625 100644
+--- a/utilities/xmlrpcpp/src/XmlRpcSource.cpp
++++ b/utilities/xmlrpcpp/src/XmlRpcSource.cpp
+@@ -1,7 +1,7 @@
+ 
+-#include "XmlRpcSource.h"
+-#include "XmlRpcSocket.h"
+-#include "XmlRpcUtil.h"
++#include "xmlrpcpp/XmlRpcSource.h"
++#include "xmlrpcpp/XmlRpcSocket.h"
++#include "xmlrpcpp/XmlRpcUtil.h"
+ 
+ namespace XmlRpc {
+ 
+diff --git a/utilities/xmlrpcpp/src/XmlRpcUtil.cpp b/utilities/xmlrpcpp/src/XmlRpcUtil.cpp
+index 26f14b2..901ebc8 100644
+--- a/utilities/xmlrpcpp/src/XmlRpcUtil.cpp
++++ b/utilities/xmlrpcpp/src/XmlRpcUtil.cpp
+@@ -1,5 +1,5 @@
+ 
+-#include "XmlRpcUtil.h"
++#include "xmlrpcpp/XmlRpcUtil.h"
+ 
+ #ifndef MAKEDEPEND
+ # include <ctype.h>
+@@ -9,7 +9,7 @@
+ # include <string.h>
+ #endif
+ 
+-#include "XmlRpc.h"
++#include "xmlrpcpp/XmlRpc.h"
+ 
+ using namespace XmlRpc;
+ 
+diff --git a/utilities/xmlrpcpp/src/XmlRpcValue.cpp b/utilities/xmlrpcpp/src/XmlRpcValue.cpp
+index e765cfa..e6dabce 100644
+--- a/utilities/xmlrpcpp/src/XmlRpcValue.cpp
++++ b/utilities/xmlrpcpp/src/XmlRpcValue.cpp
+@@ -1,8 +1,8 @@
+ 
+-#include "XmlRpcValue.h"
+-#include "XmlRpcException.h"
+-#include "XmlRpcUtil.h"
+-#include "base64.h"
++#include "xmlrpcpp/XmlRpcValue.h"
++#include "xmlrpcpp/XmlRpcException.h"
++#include "xmlrpcpp/XmlRpcUtil.h"
++#include "xmlrpcpp/base64.h"
+ 
+ #ifndef MAKEDEPEND
+ # include <iostream>
+diff --git a/utilities/xmlrpcpp/test/FileClient.cpp b/utilities/xmlrpcpp/test/FileClient.cpp
+index 81d9f3e..58580f1 100644
+--- a/utilities/xmlrpcpp/test/FileClient.cpp
++++ b/utilities/xmlrpcpp/test/FileClient.cpp
+@@ -3,7 +3,7 @@
+ // 
+ // Link against xmlrpc lib and whatever socket libs your system needs (ws2_32.lib on windows)
+ 
+-#include "XmlRpc.h"
++#include "xmlrpcpp/XmlRpc.h"
+ #include <iostream>
+ #include <fstream>
+ #include <stdlib.h>
+diff --git a/utilities/xmlrpcpp/test/HelloClient.cpp b/utilities/xmlrpcpp/test/HelloClient.cpp
+index 576f63c..bcbf9fe 100644
+--- a/utilities/xmlrpcpp/test/HelloClient.cpp
++++ b/utilities/xmlrpcpp/test/HelloClient.cpp
+@@ -1,7 +1,7 @@
+ // HelloClient.cpp : A simple xmlrpc client. Usage: HelloClient serverHost serverPort
+ // Link against xmlrpc lib and whatever socket libs your system needs (ws2_32.lib 
+ // on windows)
+-#include "XmlRpc.h"
++#include "xmlrpcpp/XmlRpc.h"
+ #include <iostream>
+ using namespace XmlRpc;
+ 
+diff --git a/utilities/xmlrpcpp/test/HelloServer.cpp b/utilities/xmlrpcpp/test/HelloServer.cpp
+index ff81ad8..2a03c6f 100644
+--- a/utilities/xmlrpcpp/test/HelloServer.cpp
++++ b/utilities/xmlrpcpp/test/HelloServer.cpp
+@@ -1,6 +1,6 @@
+ // HelloServer.cpp : Simple XMLRPC server example. Usage: HelloServer serverPort
+ //
+-#include "XmlRpc.h"
++#include "xmlrpcpp/XmlRpc.h"
+ 
+ #include <iostream>
+ #include <stdlib.h>
+diff --git a/utilities/xmlrpcpp/test/TestBase64Client.cpp b/utilities/xmlrpcpp/test/TestBase64Client.cpp
+index de95438..b540d91 100644
+--- a/utilities/xmlrpcpp/test/TestBase64Client.cpp
++++ b/utilities/xmlrpcpp/test/TestBase64Client.cpp
+@@ -5,7 +5,7 @@
+ // Requests a png file from the specified server and saves it in outputfile.
+ // Link against xmlrpc lib and whatever socket libs your system needs (ws2_32.lib on windows)
+ 
+-#include "XmlRpc.h"
++#include "xmlrpcpp/XmlRpc.h"
+ #include <iostream>
+ #include <fstream>
+ #include <stdlib.h>
+diff --git a/utilities/xmlrpcpp/test/TestBase64Server.cpp b/utilities/xmlrpcpp/test/TestBase64Server.cpp
+index 7cb4a63..56ff3aa 100644
+--- a/utilities/xmlrpcpp/test/TestBase64Server.cpp
++++ b/utilities/xmlrpcpp/test/TestBase64Server.cpp
+@@ -11,7 +11,7 @@
+ #include <stdlib.h>
+ 
+ 
+-#include "XmlRpc.h"
++#include "xmlrpcpp/XmlRpc.h"
+ using namespace XmlRpc;
+ 
+ 
+diff --git a/utilities/xmlrpcpp/test/TestValues.cpp b/utilities/xmlrpcpp/test/TestValues.cpp
+index e770e51..bb7b0d2 100644
+--- a/utilities/xmlrpcpp/test/TestValues.cpp
++++ b/utilities/xmlrpcpp/test/TestValues.cpp
+@@ -2,7 +2,7 @@
+ 
+ #include <stdlib.h>
+ 
+-#include "XmlRpcValue.h"
++#include "xmlrpcpp/XmlRpcValue.h"
+ 
+ 
+ #include <assert.h>
+diff --git a/utilities/xmlrpcpp/test/TestValuesWin32.cpp b/utilities/xmlrpcpp/test/TestValuesWin32.cpp
+index f4cdafd..7ccd8c1 100644
+--- a/utilities/xmlrpcpp/test/TestValuesWin32.cpp
++++ b/utilities/xmlrpcpp/test/TestValuesWin32.cpp
+@@ -4,7 +4,7 @@
+ #include <stdlib.h>
+ #include <crtdbg.h>
+ 
+-#include "XmlRpcValue.h"
++#include "xmlrpcpp/XmlRpcValue.h"
+ 
+ 
+ #include <assert.h>
+diff --git a/utilities/xmlrpcpp/test/TestXml.cpp b/utilities/xmlrpcpp/test/TestXml.cpp
+index 4fa707d..16ffb4a 100644
+--- a/utilities/xmlrpcpp/test/TestXml.cpp
++++ b/utilities/xmlrpcpp/test/TestXml.cpp
+@@ -11,7 +11,7 @@
+ #include <assert.h>
+ #include <stdlib.h>
+ 
+-#include "XmlRpcUtil.h"
++#include "xmlrpcpp/XmlRpcUtil.h"
+ 
+ using namespace XmlRpc;
+ 
+diff --git a/utilities/xmlrpcpp/test/Validator.cpp b/utilities/xmlrpcpp/test/Validator.cpp
+index 2868a2d..83b3ca4 100644
+--- a/utilities/xmlrpcpp/test/Validator.cpp
++++ b/utilities/xmlrpcpp/test/Validator.cpp
+@@ -1,6 +1,6 @@
+ // Validator.cpp : XMLRPC server based on the compliancy test at validator.xmlrpc.com.
+ //
+-#include "XmlRpc.h"
++#include "xmlrpcpp/XmlRpc.h"
+ using namespace XmlRpc;
+ 
+ #include <iostream>
+diff --git a/utilities/xmlrpcpp/test/bool_test.cpp b/utilities/xmlrpcpp/test/bool_test.cpp
+index db9d414..fbec414 100644
+--- a/utilities/xmlrpcpp/test/bool_test.cpp
++++ b/utilities/xmlrpcpp/test/bool_test.cpp
+@@ -1,5 +1,5 @@
+ // bool_test.cpp : make sure bool variables copy around ok
+-#include "XmlRpc.h"
++#include "xmlrpcpp/XmlRpc.h"
+ #include <iostream>
+ #include <stdlib.h>
+ 
+diff --git a/utilities/xmlrpcpp/test/port_zero_server.cpp b/utilities/xmlrpcpp/test/port_zero_server.cpp
+index 0cb19d8..b60ab45 100644
+--- a/utilities/xmlrpcpp/test/port_zero_server.cpp
++++ b/utilities/xmlrpcpp/test/port_zero_server.cpp
+@@ -1,6 +1,6 @@
+ // HelloServer.cpp : Simple XMLRPC server example. Usage: HelloServer serverPort
+ //
+-#include "XmlRpc.h"
++#include "xmlrpcpp/XmlRpc.h"
+ 
+ #include <iostream>
+ #include <stdlib.h>
diff --git a/debian/patches/0007-xmlrpcpp-move-heaers-to-include-xmlrpcpp.patch b/debian/patches/0007-xmlrpcpp-move-heaers-to-include-xmlrpcpp.patch
deleted file mode 100644
index 9571075..0000000
--- a/debian/patches/0007-xmlrpcpp-move-heaers-to-include-xmlrpcpp.patch
+++ /dev/null
@@ -1,772 +0,0 @@
-From: Jochen Sprickerhof <git at jochen.sprickerhof.de>
-Date: Sat, 16 Jan 2016 11:56:42 +0100
-Subject: move heaers to include/xmlrpcpp
-
----
- clients/roscpp/include/ros/master.h                          |  2 +-
- clients/roscpp/include/ros/node_handle.h                     |  2 +-
- clients/roscpp/include/ros/param.h                           |  2 +-
- clients/roscpp/include/ros/publication.h                     |  2 +-
- clients/roscpp/include/ros/service_publication.h             |  2 +-
- clients/roscpp/include/ros/subscription.h                    |  2 +-
- clients/roscpp/include/ros/topic_manager.h                   |  2 +-
- clients/roscpp/include/ros/xmlrpc_manager.h                  |  2 +-
- clients/roscpp/src/libros/init.cpp                           |  2 +-
- clients/roscpp/src/libros/master.cpp                         |  2 +-
- clients/roscpp/src/libros/node_handle.cpp                    |  2 +-
- clients/roscpp/src/libros/service_manager.cpp                |  2 +-
- clients/roscpp/src/libros/topic_manager.cpp                  |  2 +-
- test/test_roscpp/test/src/check_master.cpp                   |  2 +-
- tools/rosbag/src/recorder.cpp                                |  2 +-
- utilities/xmlrpcpp/CMakeLists.txt                            |  3 +--
- utilities/xmlrpcpp/include/{ => xmlrpcpp}/XmlRpc.h           | 12 ++++++------
- utilities/xmlrpcpp/include/{ => xmlrpcpp}/XmlRpcClient.h     |  6 +++---
- utilities/xmlrpcpp/include/{ => xmlrpcpp}/XmlRpcDecl.h       |  0
- utilities/xmlrpcpp/include/{ => xmlrpcpp}/XmlRpcDispatch.h   |  2 +-
- utilities/xmlrpcpp/include/{ => xmlrpcpp}/XmlRpcException.h  |  2 +-
- utilities/xmlrpcpp/include/{ => xmlrpcpp}/XmlRpcServer.h     |  6 +++---
- .../xmlrpcpp/include/{ => xmlrpcpp}/XmlRpcServerConnection.h |  6 +++---
- .../xmlrpcpp/include/{ => xmlrpcpp}/XmlRpcServerMethod.h     |  2 +-
- utilities/xmlrpcpp/include/{ => xmlrpcpp}/XmlRpcSocket.h     |  2 +-
- utilities/xmlrpcpp/include/{ => xmlrpcpp}/XmlRpcSource.h     |  2 +-
- utilities/xmlrpcpp/include/{ => xmlrpcpp}/XmlRpcUtil.h       |  2 +-
- utilities/xmlrpcpp/include/{ => xmlrpcpp}/XmlRpcValue.h      |  2 +-
- utilities/xmlrpcpp/include/{ => xmlrpcpp}/base64.h           |  0
- utilities/xmlrpcpp/src/XmlRpcClient.cpp                      |  6 +++---
- utilities/xmlrpcpp/src/XmlRpcDispatch.cpp                    |  6 +++---
- utilities/xmlrpcpp/src/XmlRpcServer.cpp                      | 12 ++++++------
- utilities/xmlrpcpp/src/XmlRpcServerConnection.cpp            |  6 +++---
- utilities/xmlrpcpp/src/XmlRpcServerMethod.cpp                |  4 ++--
- utilities/xmlrpcpp/src/XmlRpcSocket.cpp                      |  4 ++--
- utilities/xmlrpcpp/src/XmlRpcSource.cpp                      |  6 +++---
- utilities/xmlrpcpp/src/XmlRpcUtil.cpp                        |  4 ++--
- utilities/xmlrpcpp/src/XmlRpcValue.cpp                       |  8 ++++----
- utilities/xmlrpcpp/test/FileClient.cpp                       |  2 +-
- utilities/xmlrpcpp/test/HelloClient.cpp                      |  2 +-
- utilities/xmlrpcpp/test/HelloServer.cpp                      |  2 +-
- utilities/xmlrpcpp/test/TestBase64Client.cpp                 |  2 +-
- utilities/xmlrpcpp/test/TestBase64Server.cpp                 |  2 +-
- utilities/xmlrpcpp/test/TestValues.cpp                       |  2 +-
- utilities/xmlrpcpp/test/TestValuesWin32.cpp                  |  2 +-
- utilities/xmlrpcpp/test/TestXml.cpp                          |  2 +-
- utilities/xmlrpcpp/test/Validator.cpp                        |  2 +-
- utilities/xmlrpcpp/test/bool_test.cpp                        |  2 +-
- utilities/xmlrpcpp/test/port_zero_server.cpp                 |  2 +-
- 49 files changed, 77 insertions(+), 78 deletions(-)
- rename utilities/xmlrpcpp/include/{ => xmlrpcpp}/XmlRpc.h (93%)
- rename utilities/xmlrpcpp/include/{ => xmlrpcpp}/XmlRpcClient.h (97%)
- rename utilities/xmlrpcpp/include/{ => xmlrpcpp}/XmlRpcDecl.h (100%)
- rename utilities/xmlrpcpp/include/{ => xmlrpcpp}/XmlRpcDispatch.h (98%)
- rename utilities/xmlrpcpp/include/{ => xmlrpcpp}/XmlRpcException.h (96%)
- rename utilities/xmlrpcpp/include/{ => xmlrpcpp}/XmlRpcServer.h (96%)
- rename utilities/xmlrpcpp/include/{ => xmlrpcpp}/XmlRpcServerConnection.h (96%)
- rename utilities/xmlrpcpp/include/{ => xmlrpcpp}/XmlRpcServerMethod.h (97%)
- rename utilities/xmlrpcpp/include/{ => xmlrpcpp}/XmlRpcSocket.h (98%)
- rename utilities/xmlrpcpp/include/{ => xmlrpcpp}/XmlRpcSource.h (98%)
- rename utilities/xmlrpcpp/include/{ => xmlrpcpp}/XmlRpcUtil.h (98%)
- rename utilities/xmlrpcpp/include/{ => xmlrpcpp}/XmlRpcValue.h (99%)
- rename utilities/xmlrpcpp/include/{ => xmlrpcpp}/base64.h (100%)
-
-diff --git a/clients/roscpp/include/ros/master.h b/clients/roscpp/include/ros/master.h
-index 9eefdf3..6cabd01 100644
---- a/clients/roscpp/include/ros/master.h
-+++ b/clients/roscpp/include/ros/master.h
-@@ -29,7 +29,7 @@
- #define ROSCPP_MASTER_H
- 
- #include "forwards.h"
--#include "XmlRpcValue.h"
-+#include "xmlrpcpp/XmlRpcValue.h"
- #include "common.h"
- 
- namespace ros
-diff --git a/clients/roscpp/include/ros/node_handle.h b/clients/roscpp/include/ros/node_handle.h
-index b765c62..588b9f2 100644
---- a/clients/roscpp/include/ros/node_handle.h
-+++ b/clients/roscpp/include/ros/node_handle.h
-@@ -48,7 +48,7 @@
- 
- #include <boost/bind.hpp>
- 
--#include <XmlRpcValue.h>
-+#include <xmlrpcpp/XmlRpcValue.h>
- 
- namespace ros
- {
-diff --git a/clients/roscpp/include/ros/param.h b/clients/roscpp/include/ros/param.h
-index a015043..8c236b3 100644
---- a/clients/roscpp/include/ros/param.h
-+++ b/clients/roscpp/include/ros/param.h
-@@ -30,7 +30,7 @@
- 
- #include "forwards.h"
- #include "common.h"
--#include "XmlRpcValue.h"
-+#include "xmlrpcpp/XmlRpcValue.h"
- 
- #include <vector>
- #include <map>
-diff --git a/clients/roscpp/include/ros/publication.h b/clients/roscpp/include/ros/publication.h
-index 5183e08..1ea2187 100644
---- a/clients/roscpp/include/ros/publication.h
-+++ b/clients/roscpp/include/ros/publication.h
-@@ -31,7 +31,7 @@
- #include "ros/forwards.h"
- #include "ros/advertise_options.h"
- #include "common.h"
--#include "XmlRpc.h"
-+#include "xmlrpcpp/XmlRpc.h"
- 
- #include <boost/thread/mutex.hpp>
- 
-diff --git a/clients/roscpp/include/ros/service_publication.h b/clients/roscpp/include/ros/service_publication.h
-index bd44c34..ff4f8b4 100644
---- a/clients/roscpp/include/ros/service_publication.h
-+++ b/clients/roscpp/include/ros/service_publication.h
-@@ -30,7 +30,7 @@
- 
- #include "ros/service_callback_helper.h"
- #include "common.h"
--#include "XmlRpc.h"
-+#include "xmlrpcpp/XmlRpc.h"
- 
- #include <boost/thread/mutex.hpp>
- 
-diff --git a/clients/roscpp/include/ros/subscription.h b/clients/roscpp/include/ros/subscription.h
-index 7da3219..ed726a3 100644
---- a/clients/roscpp/include/ros/subscription.h
-+++ b/clients/roscpp/include/ros/subscription.h
-@@ -35,7 +35,7 @@
- #include "ros/transport_hints.h"
- #include "ros/xmlrpc_manager.h"
- #include "ros/statistics.h"
--#include "XmlRpc.h"
-+#include "xmlrpcpp/XmlRpc.h"
- 
- #include <boost/thread.hpp>
- #include <boost/shared_ptr.hpp>
-diff --git a/clients/roscpp/include/ros/topic_manager.h b/clients/roscpp/include/ros/topic_manager.h
-index 5827e82..3a80f9c 100644
---- a/clients/roscpp/include/ros/topic_manager.h
-+++ b/clients/roscpp/include/ros/topic_manager.h
-@@ -33,7 +33,7 @@
- #include "ros/serialization.h"
- #include "rosout_appender.h"
- 
--#include "XmlRpcValue.h"
-+#include "xmlrpcpp/XmlRpcValue.h"
- 
- #include <boost/thread/mutex.hpp>
- #include <boost/thread/recursive_mutex.hpp>
-diff --git a/clients/roscpp/include/ros/xmlrpc_manager.h b/clients/roscpp/include/ros/xmlrpc_manager.h
-index 7dc55ee..2dc5034 100644
---- a/clients/roscpp/include/ros/xmlrpc_manager.h
-+++ b/clients/roscpp/include/ros/xmlrpc_manager.h
-@@ -36,7 +36,7 @@
- #include <boost/enable_shared_from_this.hpp>
- 
- #include "common.h"
--#include "XmlRpc.h"
-+#include "xmlrpcpp/XmlRpc.h"
- 
- #include <ros/time.h>
- 
-diff --git a/clients/roscpp/src/libros/init.cpp b/clients/roscpp/src/libros/init.cpp
-index 1435d02..dcc3d26 100644
---- a/clients/roscpp/src/libros/init.cpp
-+++ b/clients/roscpp/src/libros/init.cpp
-@@ -48,7 +48,7 @@
- #include "ros/subscribe_options.h"
- #include "ros/transport/transport_tcp.h"
- #include "ros/internal_timer_manager.h"
--#include "XmlRpcSocket.h"
-+#include "xmlrpcpp/XmlRpcSocket.h"
- 
- #include "roscpp/GetLoggers.h"
- #include "roscpp/SetLoggerLevel.h"
-diff --git a/clients/roscpp/src/libros/master.cpp b/clients/roscpp/src/libros/master.cpp
-index c25be66..ad63545 100644
---- a/clients/roscpp/src/libros/master.cpp
-+++ b/clients/roscpp/src/libros/master.cpp
-@@ -34,7 +34,7 @@
- #include <ros/console.h>
- #include <ros/assert.h>
- 
--#include "XmlRpc.h"
-+#include "xmlrpcpp/XmlRpc.h"
- 
- namespace ros
- {
-diff --git a/clients/roscpp/src/libros/node_handle.cpp b/clients/roscpp/src/libros/node_handle.cpp
-index 271b6c4..0d2a877 100644
---- a/clients/roscpp/src/libros/node_handle.cpp
-+++ b/clients/roscpp/src/libros/node_handle.cpp
-@@ -42,7 +42,7 @@
- #include "ros/names.h"
- #include "ros/init.h"
- #include "ros/this_node.h"
--#include "XmlRpc.h"
-+#include "xmlrpcpp/XmlRpc.h"
- 
- #include <boost/thread.hpp>
- 
-diff --git a/clients/roscpp/src/libros/service_manager.cpp b/clients/roscpp/src/libros/service_manager.cpp
-index 1f3f4bb..ad66aa7 100644
---- a/clients/roscpp/src/libros/service_manager.cpp
-+++ b/clients/roscpp/src/libros/service_manager.cpp
-@@ -42,7 +42,7 @@
- #include "ros/connection.h"
- #include "ros/file_log.h"
- 
--#include "XmlRpc.h"
-+#include "xmlrpcpp/XmlRpc.h"
- 
- #include <ros/console.h>
- 
-diff --git a/clients/roscpp/src/libros/topic_manager.cpp b/clients/roscpp/src/libros/topic_manager.cpp
-index a11fd81..1da529e 100644
---- a/clients/roscpp/src/libros/topic_manager.cpp
-+++ b/clients/roscpp/src/libros/topic_manager.cpp
-@@ -41,7 +41,7 @@
- #include "ros/file_log.h"
- #include "ros/subscribe_options.h"
- 
--#include "XmlRpc.h"
-+#include "xmlrpcpp/XmlRpc.h"
- 
- #include <ros/console.h>
- 
-diff --git a/test/test_roscpp/test/src/check_master.cpp b/test/test_roscpp/test/src/check_master.cpp
-index 9b03321..4392f2b 100644
---- a/test/test_roscpp/test/src/check_master.cpp
-+++ b/test/test_roscpp/test/src/check_master.cpp
-@@ -40,7 +40,7 @@
- 
- #include "ros/ros.h"
- 
--#include "XmlRpc.h"
-+#include "xmlrpcpp/XmlRpc.h"
- 
- using namespace XmlRpc;
- 
-diff --git a/tools/rosbag/src/recorder.cpp b/tools/rosbag/src/recorder.cpp
-index 19fc1f0..0020423 100644
---- a/tools/rosbag/src/recorder.cpp
-+++ b/tools/rosbag/src/recorder.cpp
-@@ -60,7 +60,7 @@
- 
- #include "ros/network.h"
- #include "ros/xmlrpc_manager.h"
--#include "XmlRpc.h"
-+#include "xmlrpcpp/XmlRpc.h"
- 
- #define foreach BOOST_FOREACH
- 
-diff --git a/utilities/xmlrpcpp/CMakeLists.txt b/utilities/xmlrpcpp/CMakeLists.txt
-index 67b1a4c..b2c1ef1 100644
---- a/utilities/xmlrpcpp/CMakeLists.txt
-+++ b/utilities/xmlrpcpp/CMakeLists.txt
-@@ -31,8 +31,7 @@ if(WIN32)
-   target_link_libraries(xmlrpcpp ws2_32)
- endif()
- 
--# FIXME the headers should be in a package-specific subfolder but can not be for backward compatibility
--install(DIRECTORY include/
-+install(DIRECTORY include/${PROJECT_NAME}
-   DESTINATION ${CATKIN_GLOBAL_INCLUDE_DESTINATION}
-   FILES_MATCHING PATTERN "*.h")
- 
-diff --git a/utilities/xmlrpcpp/include/XmlRpc.h b/utilities/xmlrpcpp/include/xmlrpcpp/XmlRpc.h
-similarity index 93%
-rename from utilities/xmlrpcpp/include/XmlRpc.h
-rename to utilities/xmlrpcpp/include/xmlrpcpp/XmlRpc.h
-index 6b00b18..9fd626a 100644
---- a/utilities/xmlrpcpp/include/XmlRpc.h
-+++ b/utilities/xmlrpcpp/include/xmlrpcpp/XmlRpc.h
-@@ -27,12 +27,12 @@
- # include <string>
- #endif
- 
--#include "XmlRpcClient.h"
--#include "XmlRpcException.h"
--#include "XmlRpcServer.h"
--#include "XmlRpcServerMethod.h"
--#include "XmlRpcValue.h"
--#include "XmlRpcUtil.h"
-+#include "xmlrpcpp/XmlRpcClient.h"
-+#include "xmlrpcpp/XmlRpcException.h"
-+#include "xmlrpcpp/XmlRpcServer.h"
-+#include "xmlrpcpp/XmlRpcServerMethod.h"
-+#include "xmlrpcpp/XmlRpcValue.h"
-+#include "xmlrpcpp/XmlRpcUtil.h"
- 
- #include <stdexcept>
- 
-diff --git a/utilities/xmlrpcpp/include/XmlRpcClient.h b/utilities/xmlrpcpp/include/xmlrpcpp/XmlRpcClient.h
-similarity index 97%
-rename from utilities/xmlrpcpp/include/XmlRpcClient.h
-rename to utilities/xmlrpcpp/include/xmlrpcpp/XmlRpcClient.h
-index 6f47778..2154b39 100644
---- a/utilities/xmlrpcpp/include/XmlRpcClient.h
-+++ b/utilities/xmlrpcpp/include/xmlrpcpp/XmlRpcClient.h
-@@ -13,9 +13,9 @@
- # include <string>
- #endif
- 
--#include "XmlRpcDispatch.h"
--#include "XmlRpcSource.h"
--#include "XmlRpcDecl.h"
-+#include "xmlrpcpp/XmlRpcDispatch.h"
-+#include "xmlrpcpp/XmlRpcSource.h"
-+#include "xmlrpcpp/XmlRpcDecl.h"
- 
- namespace XmlRpc {
- 
-diff --git a/utilities/xmlrpcpp/include/XmlRpcDecl.h b/utilities/xmlrpcpp/include/xmlrpcpp/XmlRpcDecl.h
-similarity index 100%
-rename from utilities/xmlrpcpp/include/XmlRpcDecl.h
-rename to utilities/xmlrpcpp/include/xmlrpcpp/XmlRpcDecl.h
-diff --git a/utilities/xmlrpcpp/include/XmlRpcDispatch.h b/utilities/xmlrpcpp/include/xmlrpcpp/XmlRpcDispatch.h
-similarity index 98%
-rename from utilities/xmlrpcpp/include/XmlRpcDispatch.h
-rename to utilities/xmlrpcpp/include/xmlrpcpp/XmlRpcDispatch.h
-index 12b01ad..5e90822 100644
---- a/utilities/xmlrpcpp/include/XmlRpcDispatch.h
-+++ b/utilities/xmlrpcpp/include/xmlrpcpp/XmlRpcDispatch.h
-@@ -8,7 +8,7 @@
- # pragma warning(disable:4786)    // identifier was truncated in debug info
- #endif
- 
--#include "XmlRpcDecl.h"
-+#include "xmlrpcpp/XmlRpcDecl.h"
- 
- #ifndef MAKEDEPEND
- # include <list>
-diff --git a/utilities/xmlrpcpp/include/XmlRpcException.h b/utilities/xmlrpcpp/include/xmlrpcpp/XmlRpcException.h
-similarity index 96%
-rename from utilities/xmlrpcpp/include/XmlRpcException.h
-rename to utilities/xmlrpcpp/include/xmlrpcpp/XmlRpcException.h
-index bff5bf2..4e8a2a6 100644
---- a/utilities/xmlrpcpp/include/XmlRpcException.h
-+++ b/utilities/xmlrpcpp/include/xmlrpcpp/XmlRpcException.h
-@@ -12,7 +12,7 @@
- # include <string>
- #endif
- 
--#include "XmlRpcDecl.h"
-+#include "xmlrpcpp/XmlRpcDecl.h"
- 
- 
- namespace XmlRpc {
-diff --git a/utilities/xmlrpcpp/include/XmlRpcServer.h b/utilities/xmlrpcpp/include/xmlrpcpp/XmlRpcServer.h
-similarity index 96%
-rename from utilities/xmlrpcpp/include/XmlRpcServer.h
-rename to utilities/xmlrpcpp/include/xmlrpcpp/XmlRpcServer.h
-index 035d383..ac16dae 100644
---- a/utilities/xmlrpcpp/include/XmlRpcServer.h
-+++ b/utilities/xmlrpcpp/include/xmlrpcpp/XmlRpcServer.h
-@@ -16,9 +16,9 @@
- # include <string>
- #endif
- 
--#include "XmlRpcDispatch.h"
--#include "XmlRpcSource.h"
--#include "XmlRpcDecl.h"
-+#include "xmlrpcpp/XmlRpcDispatch.h"
-+#include "xmlrpcpp/XmlRpcSource.h"
-+#include "xmlrpcpp/XmlRpcDecl.h"
- 
- namespace XmlRpc {
- 
-diff --git a/utilities/xmlrpcpp/include/XmlRpcServerConnection.h b/utilities/xmlrpcpp/include/xmlrpcpp/XmlRpcServerConnection.h
-similarity index 96%
-rename from utilities/xmlrpcpp/include/XmlRpcServerConnection.h
-rename to utilities/xmlrpcpp/include/xmlrpcpp/XmlRpcServerConnection.h
-index f5c224d..ed4d092 100644
---- a/utilities/xmlrpcpp/include/XmlRpcServerConnection.h
-+++ b/utilities/xmlrpcpp/include/xmlrpcpp/XmlRpcServerConnection.h
-@@ -11,9 +11,9 @@
- # include <string>
- #endif
- 
--#include "XmlRpcValue.h"
--#include "XmlRpcSource.h"
--#include "XmlRpcDecl.h"
-+#include "xmlrpcpp/XmlRpcValue.h"
-+#include "xmlrpcpp/XmlRpcSource.h"
-+#include "xmlrpcpp/XmlRpcDecl.h"
- 
- namespace XmlRpc {
- 
-diff --git a/utilities/xmlrpcpp/include/XmlRpcServerMethod.h b/utilities/xmlrpcpp/include/xmlrpcpp/XmlRpcServerMethod.h
-similarity index 97%
-rename from utilities/xmlrpcpp/include/XmlRpcServerMethod.h
-rename to utilities/xmlrpcpp/include/xmlrpcpp/XmlRpcServerMethod.h
-index 7b7ddca..90dddcd 100644
---- a/utilities/xmlrpcpp/include/XmlRpcServerMethod.h
-+++ b/utilities/xmlrpcpp/include/xmlrpcpp/XmlRpcServerMethod.h
-@@ -8,7 +8,7 @@
- # pragma warning(disable:4786)    // identifier was truncated in debug info
- #endif
- 
--#include "XmlRpcDecl.h"
-+#include "xmlrpcpp/XmlRpcDecl.h"
- 
- #ifndef MAKEDEPEND
- # include <string>
-diff --git a/utilities/xmlrpcpp/include/XmlRpcSocket.h b/utilities/xmlrpcpp/include/xmlrpcpp/XmlRpcSocket.h
-similarity index 98%
-rename from utilities/xmlrpcpp/include/XmlRpcSocket.h
-rename to utilities/xmlrpcpp/include/xmlrpcpp/XmlRpcSocket.h
-index 711a520..bc9a530 100644
---- a/utilities/xmlrpcpp/include/XmlRpcSocket.h
-+++ b/utilities/xmlrpcpp/include/xmlrpcpp/XmlRpcSocket.h
-@@ -15,7 +15,7 @@
- # include <string>
- #endif
- 
--#include "XmlRpcDecl.h"
-+#include "xmlrpcpp/XmlRpcDecl.h"
- 
- namespace XmlRpc {
- 
-diff --git a/utilities/xmlrpcpp/include/XmlRpcSource.h b/utilities/xmlrpcpp/include/xmlrpcpp/XmlRpcSource.h
-similarity index 98%
-rename from utilities/xmlrpcpp/include/XmlRpcSource.h
-rename to utilities/xmlrpcpp/include/xmlrpcpp/XmlRpcSource.h
-index f82ccb1..217f416 100644
---- a/utilities/xmlrpcpp/include/XmlRpcSource.h
-+++ b/utilities/xmlrpcpp/include/xmlrpcpp/XmlRpcSource.h
-@@ -8,7 +8,7 @@
- # pragma warning(disable:4786)    // identifier was truncated in debug info
- #endif
- 
--#include "XmlRpcDecl.h"
-+#include "xmlrpcpp/XmlRpcDecl.h"
- 
- namespace XmlRpc {
- 
-diff --git a/utilities/xmlrpcpp/include/XmlRpcUtil.h b/utilities/xmlrpcpp/include/xmlrpcpp/XmlRpcUtil.h
-similarity index 98%
-rename from utilities/xmlrpcpp/include/XmlRpcUtil.h
-rename to utilities/xmlrpcpp/include/xmlrpcpp/XmlRpcUtil.h
-index 78627f4..acde160 100644
---- a/utilities/xmlrpcpp/include/XmlRpcUtil.h
-+++ b/utilities/xmlrpcpp/include/xmlrpcpp/XmlRpcUtil.h
-@@ -11,7 +11,7 @@
- # include <string>
- #endif
- 
--#include "XmlRpcDecl.h"
-+#include "xmlrpcpp/XmlRpcDecl.h"
- 
- #if defined(_MSC_VER)
- # define snprintf	    _snprintf_s
-diff --git a/utilities/xmlrpcpp/include/XmlRpcValue.h b/utilities/xmlrpcpp/include/xmlrpcpp/XmlRpcValue.h
-similarity index 99%
-rename from utilities/xmlrpcpp/include/XmlRpcValue.h
-rename to utilities/xmlrpcpp/include/xmlrpcpp/XmlRpcValue.h
-index fe6cb8c..0d72c59 100644
---- a/utilities/xmlrpcpp/include/XmlRpcValue.h
-+++ b/utilities/xmlrpcpp/include/xmlrpcpp/XmlRpcValue.h
-@@ -8,7 +8,7 @@
- # pragma warning(disable:4786)    // identifier was truncated in debug info
- #endif
- 
--#include "XmlRpcDecl.h"
-+#include "xmlrpcpp/XmlRpcDecl.h"
- 
- #ifndef MAKEDEPEND
- # include <map>
-diff --git a/utilities/xmlrpcpp/include/base64.h b/utilities/xmlrpcpp/include/xmlrpcpp/base64.h
-similarity index 100%
-rename from utilities/xmlrpcpp/include/base64.h
-rename to utilities/xmlrpcpp/include/xmlrpcpp/base64.h
-diff --git a/utilities/xmlrpcpp/src/XmlRpcClient.cpp b/utilities/xmlrpcpp/src/XmlRpcClient.cpp
-index 31cda22..b533059 100644
---- a/utilities/xmlrpcpp/src/XmlRpcClient.cpp
-+++ b/utilities/xmlrpcpp/src/XmlRpcClient.cpp
-@@ -1,8 +1,8 @@
- 
--#include "XmlRpcClient.h"
-+#include "xmlrpcpp/XmlRpcClient.h"
- 
--#include "XmlRpcSocket.h"
--#include "XmlRpc.h"
-+#include "xmlrpcpp/XmlRpcSocket.h"
-+#include "xmlrpcpp/XmlRpc.h"
- 
- #include <stdio.h>
- #include <stdlib.h>
-diff --git a/utilities/xmlrpcpp/src/XmlRpcDispatch.cpp b/utilities/xmlrpcpp/src/XmlRpcDispatch.cpp
-index 1d47836..e92dc5c 100644
---- a/utilities/xmlrpcpp/src/XmlRpcDispatch.cpp
-+++ b/utilities/xmlrpcpp/src/XmlRpcDispatch.cpp
-@@ -1,7 +1,7 @@
- 
--#include "XmlRpcDispatch.h"
--#include "XmlRpcSource.h"
--#include "XmlRpcUtil.h"
-+#include "xmlrpcpp/XmlRpcDispatch.h"
-+#include "xmlrpcpp/XmlRpcSource.h"
-+#include "xmlrpcpp/XmlRpcUtil.h"
- 
- #include <math.h>
- #include <errno.h>
-diff --git a/utilities/xmlrpcpp/src/XmlRpcServer.cpp b/utilities/xmlrpcpp/src/XmlRpcServer.cpp
-index 013c6ec..2515142 100644
---- a/utilities/xmlrpcpp/src/XmlRpcServer.cpp
-+++ b/utilities/xmlrpcpp/src/XmlRpcServer.cpp
-@@ -2,12 +2,12 @@
- // added features: server can be opened on port 0 and you can read back
- // what port the OS gave you
- 
--#include "XmlRpcServer.h"
--#include "XmlRpcServerConnection.h"
--#include "XmlRpcServerMethod.h"
--#include "XmlRpcSocket.h"
--#include "XmlRpcUtil.h"
--#include "XmlRpcException.h"
-+#include "xmlrpcpp/XmlRpcServer.h"
-+#include "xmlrpcpp/XmlRpcServerConnection.h"
-+#include "xmlrpcpp/XmlRpcServerMethod.h"
-+#include "xmlrpcpp/XmlRpcSocket.h"
-+#include "xmlrpcpp/XmlRpcUtil.h"
-+#include "xmlrpcpp/XmlRpcException.h"
- 
- 
- using namespace XmlRpc;
-diff --git a/utilities/xmlrpcpp/src/XmlRpcServerConnection.cpp b/utilities/xmlrpcpp/src/XmlRpcServerConnection.cpp
-index 76b2737..26c997f 100644
---- a/utilities/xmlrpcpp/src/XmlRpcServerConnection.cpp
-+++ b/utilities/xmlrpcpp/src/XmlRpcServerConnection.cpp
-@@ -1,8 +1,8 @@
- 
--#include "XmlRpcServerConnection.h"
-+#include "xmlrpcpp/XmlRpcServerConnection.h"
- 
--#include "XmlRpcSocket.h"
--#include "XmlRpc.h"
-+#include "xmlrpcpp/XmlRpcSocket.h"
-+#include "xmlrpcpp/XmlRpc.h"
- #ifndef MAKEDEPEND
- # include <stdio.h>
- # include <stdlib.h>
-diff --git a/utilities/xmlrpcpp/src/XmlRpcServerMethod.cpp b/utilities/xmlrpcpp/src/XmlRpcServerMethod.cpp
-index 1616ff4..f40447c 100644
---- a/utilities/xmlrpcpp/src/XmlRpcServerMethod.cpp
-+++ b/utilities/xmlrpcpp/src/XmlRpcServerMethod.cpp
-@@ -1,6 +1,6 @@
- 
--#include "XmlRpcServerMethod.h"
--#include "XmlRpcServer.h"
-+#include "xmlrpcpp/XmlRpcServerMethod.h"
-+#include "xmlrpcpp/XmlRpcServer.h"
- 
- namespace XmlRpc {
- 
-diff --git a/utilities/xmlrpcpp/src/XmlRpcSocket.cpp b/utilities/xmlrpcpp/src/XmlRpcSocket.cpp
-index 916f41d..3f1f731 100644
---- a/utilities/xmlrpcpp/src/XmlRpcSocket.cpp
-+++ b/utilities/xmlrpcpp/src/XmlRpcSocket.cpp
-@@ -2,8 +2,8 @@
- // added features: server can be opened on port 0 and you can read back
- // what port the OS gave you
- 
--#include "XmlRpcSocket.h"
--#include "XmlRpcUtil.h"
-+#include "xmlrpcpp/XmlRpcSocket.h"
-+#include "xmlrpcpp/XmlRpcUtil.h"
- 
- #ifndef MAKEDEPEND
- 
-diff --git a/utilities/xmlrpcpp/src/XmlRpcSource.cpp b/utilities/xmlrpcpp/src/XmlRpcSource.cpp
-index 99203b0..4b44625 100644
---- a/utilities/xmlrpcpp/src/XmlRpcSource.cpp
-+++ b/utilities/xmlrpcpp/src/XmlRpcSource.cpp
-@@ -1,7 +1,7 @@
- 
--#include "XmlRpcSource.h"
--#include "XmlRpcSocket.h"
--#include "XmlRpcUtil.h"
-+#include "xmlrpcpp/XmlRpcSource.h"
-+#include "xmlrpcpp/XmlRpcSocket.h"
-+#include "xmlrpcpp/XmlRpcUtil.h"
- 
- namespace XmlRpc {
- 
-diff --git a/utilities/xmlrpcpp/src/XmlRpcUtil.cpp b/utilities/xmlrpcpp/src/XmlRpcUtil.cpp
-index 26f14b2..901ebc8 100644
---- a/utilities/xmlrpcpp/src/XmlRpcUtil.cpp
-+++ b/utilities/xmlrpcpp/src/XmlRpcUtil.cpp
-@@ -1,5 +1,5 @@
- 
--#include "XmlRpcUtil.h"
-+#include "xmlrpcpp/XmlRpcUtil.h"
- 
- #ifndef MAKEDEPEND
- # include <ctype.h>
-@@ -9,7 +9,7 @@
- # include <string.h>
- #endif
- 
--#include "XmlRpc.h"
-+#include "xmlrpcpp/XmlRpc.h"
- 
- using namespace XmlRpc;
- 
-diff --git a/utilities/xmlrpcpp/src/XmlRpcValue.cpp b/utilities/xmlrpcpp/src/XmlRpcValue.cpp
-index e765cfa..e6dabce 100644
---- a/utilities/xmlrpcpp/src/XmlRpcValue.cpp
-+++ b/utilities/xmlrpcpp/src/XmlRpcValue.cpp
-@@ -1,8 +1,8 @@
- 
--#include "XmlRpcValue.h"
--#include "XmlRpcException.h"
--#include "XmlRpcUtil.h"
--#include "base64.h"
-+#include "xmlrpcpp/XmlRpcValue.h"
-+#include "xmlrpcpp/XmlRpcException.h"
-+#include "xmlrpcpp/XmlRpcUtil.h"
-+#include "xmlrpcpp/base64.h"
- 
- #ifndef MAKEDEPEND
- # include <iostream>
-diff --git a/utilities/xmlrpcpp/test/FileClient.cpp b/utilities/xmlrpcpp/test/FileClient.cpp
-index 81d9f3e..58580f1 100644
---- a/utilities/xmlrpcpp/test/FileClient.cpp
-+++ b/utilities/xmlrpcpp/test/FileClient.cpp
-@@ -3,7 +3,7 @@
- // 
- // Link against xmlrpc lib and whatever socket libs your system needs (ws2_32.lib on windows)
- 
--#include "XmlRpc.h"
-+#include "xmlrpcpp/XmlRpc.h"
- #include <iostream>
- #include <fstream>
- #include <stdlib.h>
-diff --git a/utilities/xmlrpcpp/test/HelloClient.cpp b/utilities/xmlrpcpp/test/HelloClient.cpp
-index 576f63c..bcbf9fe 100644
---- a/utilities/xmlrpcpp/test/HelloClient.cpp
-+++ b/utilities/xmlrpcpp/test/HelloClient.cpp
-@@ -1,7 +1,7 @@
- // HelloClient.cpp : A simple xmlrpc client. Usage: HelloClient serverHost serverPort
- // Link against xmlrpc lib and whatever socket libs your system needs (ws2_32.lib 
- // on windows)
--#include "XmlRpc.h"
-+#include "xmlrpcpp/XmlRpc.h"
- #include <iostream>
- using namespace XmlRpc;
- 
-diff --git a/utilities/xmlrpcpp/test/HelloServer.cpp b/utilities/xmlrpcpp/test/HelloServer.cpp
-index ff81ad8..2a03c6f 100644
---- a/utilities/xmlrpcpp/test/HelloServer.cpp
-+++ b/utilities/xmlrpcpp/test/HelloServer.cpp
-@@ -1,6 +1,6 @@
- // HelloServer.cpp : Simple XMLRPC server example. Usage: HelloServer serverPort
- //
--#include "XmlRpc.h"
-+#include "xmlrpcpp/XmlRpc.h"
- 
- #include <iostream>
- #include <stdlib.h>
-diff --git a/utilities/xmlrpcpp/test/TestBase64Client.cpp b/utilities/xmlrpcpp/test/TestBase64Client.cpp
-index de95438..b540d91 100644
---- a/utilities/xmlrpcpp/test/TestBase64Client.cpp
-+++ b/utilities/xmlrpcpp/test/TestBase64Client.cpp
-@@ -5,7 +5,7 @@
- // Requests a png file from the specified server and saves it in outputfile.
- // Link against xmlrpc lib and whatever socket libs your system needs (ws2_32.lib on windows)
- 
--#include "XmlRpc.h"
-+#include "xmlrpcpp/XmlRpc.h"
- #include <iostream>
- #include <fstream>
- #include <stdlib.h>
-diff --git a/utilities/xmlrpcpp/test/TestBase64Server.cpp b/utilities/xmlrpcpp/test/TestBase64Server.cpp
-index 7cb4a63..56ff3aa 100644
---- a/utilities/xmlrpcpp/test/TestBase64Server.cpp
-+++ b/utilities/xmlrpcpp/test/TestBase64Server.cpp
-@@ -11,7 +11,7 @@
- #include <stdlib.h>
- 
- 
--#include "XmlRpc.h"
-+#include "xmlrpcpp/XmlRpc.h"
- using namespace XmlRpc;
- 
- 
-diff --git a/utilities/xmlrpcpp/test/TestValues.cpp b/utilities/xmlrpcpp/test/TestValues.cpp
-index e770e51..bb7b0d2 100644
---- a/utilities/xmlrpcpp/test/TestValues.cpp
-+++ b/utilities/xmlrpcpp/test/TestValues.cpp
-@@ -2,7 +2,7 @@
- 
- #include <stdlib.h>
- 
--#include "XmlRpcValue.h"
-+#include "xmlrpcpp/XmlRpcValue.h"
- 
- 
- #include <assert.h>
-diff --git a/utilities/xmlrpcpp/test/TestValuesWin32.cpp b/utilities/xmlrpcpp/test/TestValuesWin32.cpp
-index f4cdafd..7ccd8c1 100644
---- a/utilities/xmlrpcpp/test/TestValuesWin32.cpp
-+++ b/utilities/xmlrpcpp/test/TestValuesWin32.cpp
-@@ -4,7 +4,7 @@
- #include <stdlib.h>
- #include <crtdbg.h>
- 
--#include "XmlRpcValue.h"
-+#include "xmlrpcpp/XmlRpcValue.h"
- 
- 
- #include <assert.h>
-diff --git a/utilities/xmlrpcpp/test/TestXml.cpp b/utilities/xmlrpcpp/test/TestXml.cpp
-index 4fa707d..16ffb4a 100644
---- a/utilities/xmlrpcpp/test/TestXml.cpp
-+++ b/utilities/xmlrpcpp/test/TestXml.cpp
-@@ -11,7 +11,7 @@
- #include <assert.h>
- #include <stdlib.h>
- 
--#include "XmlRpcUtil.h"
-+#include "xmlrpcpp/XmlRpcUtil.h"
- 
- using namespace XmlRpc;
- 
-diff --git a/utilities/xmlrpcpp/test/Validator.cpp b/utilities/xmlrpcpp/test/Validator.cpp
-index 2868a2d..83b3ca4 100644
---- a/utilities/xmlrpcpp/test/Validator.cpp
-+++ b/utilities/xmlrpcpp/test/Validator.cpp
-@@ -1,6 +1,6 @@
- // Validator.cpp : XMLRPC server based on the compliancy test at validator.xmlrpc.com.
- //
--#include "XmlRpc.h"
-+#include "xmlrpcpp/XmlRpc.h"
- using namespace XmlRpc;
- 
- #include <iostream>
-diff --git a/utilities/xmlrpcpp/test/bool_test.cpp b/utilities/xmlrpcpp/test/bool_test.cpp
-index db9d414..fbec414 100644
---- a/utilities/xmlrpcpp/test/bool_test.cpp
-+++ b/utilities/xmlrpcpp/test/bool_test.cpp
-@@ -1,5 +1,5 @@
- // bool_test.cpp : make sure bool variables copy around ok
--#include "XmlRpc.h"
-+#include "xmlrpcpp/XmlRpc.h"
- #include <iostream>
- #include <stdlib.h>
- 
-diff --git a/utilities/xmlrpcpp/test/port_zero_server.cpp b/utilities/xmlrpcpp/test/port_zero_server.cpp
-index 0cb19d8..b60ab45 100644
---- a/utilities/xmlrpcpp/test/port_zero_server.cpp
-+++ b/utilities/xmlrpcpp/test/port_zero_server.cpp
-@@ -1,6 +1,6 @@
- // HelloServer.cpp : Simple XMLRPC server example. Usage: HelloServer serverPort
- //
--#include "XmlRpc.h"
-+#include "xmlrpcpp/XmlRpc.h"
- 
- #include <iostream>
- #include <stdlib.h>
diff --git a/debian/patches/series b/debian/patches/series
index fa2e8cc..6a73536 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -3,5 +3,5 @@
 0003-Add-default-ROS_MASTER_URI.patch
 0004-Fix-executable-not-elf-or-script.patch
 0005-Add-defaults-to-roswtf.patch
-0006-Fixup-copyrights.patch
-0007-xmlrpcpp-move-heaers-to-include-xmlrpcpp.patch
+0006-Fix-confusing-copyright-messages-dates.patch
+0007-move-heaers-to-include-xmlrpcpp.patch

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-science/packages/ros/ros-ros-comm.git



More information about the debian-science-commits mailing list