From 1b7318b23f6f0ea98708d98d3e89fc702be20445 Mon Sep 17 00:00:00 2001
From: Lazlo Westerhof <l.r.westerhof@uu.nl>
Date: Wed, 23 Aug 2017 13:40:34 +0200
Subject: [PATCH] Parse input parameters and add missing includes.

---
 src/msiRegisterDataCiteDOI.cc | 19 +++++++++++++------
 1 file changed, 13 insertions(+), 6 deletions(-)

diff --git a/src/msiRegisterDataCiteDOI.cc b/src/msiRegisterDataCiteDOI.cc
index 5cfb3e6..1de832d 100644
--- a/src/msiRegisterDataCiteDOI.cc
+++ b/src/msiRegisterDataCiteDOI.cc
@@ -27,13 +27,15 @@
 #include "reGlobalsExtern.hpp"
 
 #include <string>
+#include <fstream>
+#include <streambuf>
 #include <curl/curl.h>
 
 extern "C" {
-  int msiRegisterDataCiteDOI(msParam_t* url,
-			     msParam_t* username,
-			     msParam_t* password,
-			     msParam_t* xml,
+  int msiRegisterDataCiteDOI(msParam_t* urlIn,
+			     msParam_t* usernameIn,
+			     msParam_t* passwordIn,
+			     msParam_t* xmlIn,
 			     ruleExecInfo_t *rei)
   {
     CURL *curl;
@@ -58,9 +60,14 @@ extern "C" {
       return SYS_INVALID_INPUT_PARAM;
     }
 
+    /* Parse input paramaters. */
+    std::string url      = parseMspForStr(urlIn);
+    std::string username = parseMspForStr(usernameIn);
+    std::string password = parseMspForStr(passwordIn);
+    std::string xml      = parseMspForStr(xmlIn);
+
     /* Read XML file. */
-    std::string xmlFile = parseMspForStr(xml);
-    std::ifstream t(xmlFile);
+    std::ifstream t(xmlFile.c_str());
     std::string xmlStream((std::istreambuf_iterator<char>(t)),
                            std::istreambuf_iterator<char>());
 
-- 
GitLab