From 525daee195c5593f077d837a689f2c5d26f91fb0 Mon Sep 17 00:00:00 2001 From: Stefan Radomski Date: Tue, 8 Oct 2013 21:47:41 +0200 Subject: Fixed x-www-form-urlencoded post parsing --- README.md | 1 - contrib/ctest/hosts/buildslave-centos-5-32.ctest | 2 +- contrib/ctest/hosts/buildslave-centos-6-64.ctest | 2 +- contrib/ctest/hosts/buildslave-fedora-16-64.ctest | 2 +- contrib/ctest/hosts/buildslave-opensuse-12-32.ctest | 2 +- contrib/ctest/hosts/buildslave-ubuntu-1204-32.ctest | 2 +- contrib/ctest/hosts/centos6x64-vii.ctest | 2 +- contrib/ctest/hosts/debian64.ctest | 2 +- contrib/ctest/hosts/epikur-win7-64.ctest | 2 +- contrib/ctest/hosts/epikur.local.ctest | 2 +- src/uscxml/Factory.h | 4 ++++ src/uscxml/server/HTTPServer.cpp | 11 ++++++----- test/src/test-w3c.cpp | 3 +++ 13 files changed, 22 insertions(+), 15 deletions(-) diff --git a/README.md b/README.md index e52be77..08bd3ff 100644 --- a/README.md +++ b/README.md @@ -61,7 +61,6 @@ uSCXML still fails the following ecmascript tests: - 518 519 520 531 diff --git a/contrib/ctest/hosts/buildslave-centos-5-32.ctest b/contrib/ctest/hosts/buildslave-centos-5-32.ctest index dfc4434..80434c1 100644 --- a/contrib/ctest/hosts/buildslave-centos-5-32.ctest +++ b/contrib/ctest/hosts/buildslave-centos-5-32.ctest @@ -8,7 +8,7 @@ set(CTEST_BUILD_NAME "linux-x86_64 gcc 4.1.2 - ECMA datamodel") include("tests/ecma.ctest") include("common.ctest.inc") -set(RETAIN_BUILD_DIR ON) +set(RETAIN_BUILD_DIR OFF) set(REMOVE_PREBUILDS OFF) set(CTEST_BUILD_NAME "linux-x86_64 gcc 4.1.2 - XPath datamodel") include("tests/xpath.ctest") diff --git a/contrib/ctest/hosts/buildslave-centos-6-64.ctest b/contrib/ctest/hosts/buildslave-centos-6-64.ctest index 1636078..b068b75 100644 --- a/contrib/ctest/hosts/buildslave-centos-6-64.ctest +++ b/contrib/ctest/hosts/buildslave-centos-6-64.ctest @@ -8,7 +8,7 @@ set(CTEST_BUILD_NAME "linux-x86_64 gcc 4.4.6") include("tests/ecma.ctest") include("common.ctest.inc") -set(RETAIN_BUILD_DIR ON) +set(RETAIN_BUILD_DIR OFF) set(REMOVE_PREBUILDS OFF) set(CTEST_BUILD_NAME "linux-x86_64 gcc 4.4.6") include("tests/xpath.ctest") diff --git a/contrib/ctest/hosts/buildslave-fedora-16-64.ctest b/contrib/ctest/hosts/buildslave-fedora-16-64.ctest index f00af2b..c84fa3f 100644 --- a/contrib/ctest/hosts/buildslave-fedora-16-64.ctest +++ b/contrib/ctest/hosts/buildslave-fedora-16-64.ctest @@ -8,7 +8,7 @@ set(CTEST_BUILD_NAME "linux-x86_64 gcc 4.6.3") include("tests/ecma.ctest") include("common.ctest.inc") -set(RETAIN_BUILD_DIR ON) +set(RETAIN_BUILD_DIR OFF) set(REMOVE_PREBUILDS OFF) set(CTEST_BUILD_NAME "linux-x86_64 gcc 4.6.3") include("tests/xpath.ctest") diff --git a/contrib/ctest/hosts/buildslave-opensuse-12-32.ctest b/contrib/ctest/hosts/buildslave-opensuse-12-32.ctest index 0d56b13..8b49d1a 100644 --- a/contrib/ctest/hosts/buildslave-opensuse-12-32.ctest +++ b/contrib/ctest/hosts/buildslave-opensuse-12-32.ctest @@ -8,7 +8,7 @@ set(CTEST_BUILD_NAME "linux-x86 gcc 4.7.2") include("tests/ecma.ctest") include("common.ctest.inc") -set(RETAIN_BUILD_DIR ON) +set(RETAIN_BUILD_DIR OFF) set(REMOVE_PREBUILDS OFF) set(CTEST_BUILD_NAME "linux-x86 gcc 4.7.2") include("tests/xpath.ctest") diff --git a/contrib/ctest/hosts/buildslave-ubuntu-1204-32.ctest b/contrib/ctest/hosts/buildslave-ubuntu-1204-32.ctest index ed37664..8636679 100644 --- a/contrib/ctest/hosts/buildslave-ubuntu-1204-32.ctest +++ b/contrib/ctest/hosts/buildslave-ubuntu-1204-32.ctest @@ -8,7 +8,7 @@ set(CTEST_BUILD_NAME "linux-x86 gcc 4.6.3") include("tests/ecma.ctest") include("common.ctest.inc") -set(RETAIN_BUILD_DIR ON) +set(RETAIN_BUILD_DIR OFF) set(REMOVE_PREBUILDS OFF) set(CTEST_BUILD_NAME "linux-x86 gcc 4.6.3") include("tests/xpath.ctest") diff --git a/contrib/ctest/hosts/centos6x64-vii.ctest b/contrib/ctest/hosts/centos6x64-vii.ctest index 5249ee2..db42577 100644 --- a/contrib/ctest/hosts/centos6x64-vii.ctest +++ b/contrib/ctest/hosts/centos6x64-vii.ctest @@ -8,7 +8,7 @@ set(CTEST_BUILD_NAME "linux-x86_64 gcc") include("tests/ecma.ctest") include("common.ctest.inc") -set(RETAIN_BUILD_DIR ON) +set(RETAIN_BUILD_DIR OFF) set(REMOVE_PREBUILDS OFF) set(CTEST_BUILD_NAME "linux-x86_64 gcc") include("tests/xpath.ctest") diff --git a/contrib/ctest/hosts/debian64.ctest b/contrib/ctest/hosts/debian64.ctest index 2809e0b..06fb6bd 100644 --- a/contrib/ctest/hosts/debian64.ctest +++ b/contrib/ctest/hosts/debian64.ctest @@ -8,7 +8,7 @@ set(CTEST_BUILD_NAME "darwin-x86_64 llvm") include("tests/ecma.ctest") include("common.ctest.inc") -set(RETAIN_BUILD_DIR ON) +set(RETAIN_BUILD_DIR OFF) set(REMOVE_PREBUILDS OFF) set(CTEST_BUILD_NAME "darwin-x86_64 llvm") include("tests/xpath.ctest") diff --git a/contrib/ctest/hosts/epikur-win7-64.ctest b/contrib/ctest/hosts/epikur-win7-64.ctest index 95914cb..ba58a6b 100644 --- a/contrib/ctest/hosts/epikur-win7-64.ctest +++ b/contrib/ctest/hosts/epikur-win7-64.ctest @@ -7,7 +7,7 @@ set(CTEST_BUILD_NAME "win7-x86_64 msvc") include("tests/ecma.ctest") include("common.ctest.inc") -set(RETAIN_BUILD_DIR ON) +set(RETAIN_BUILD_DIR OFF) set(CTEST_BUILD_NAME "win7-x86_64 msvc") include("tests/xpath.ctest") include("common.ctest.inc") diff --git a/contrib/ctest/hosts/epikur.local.ctest b/contrib/ctest/hosts/epikur.local.ctest index f0409e9..2eae8ce 100644 --- a/contrib/ctest/hosts/epikur.local.ctest +++ b/contrib/ctest/hosts/epikur.local.ctest @@ -7,7 +7,7 @@ set(CTEST_BUILD_NAME "darwin-x86_64 llvm") include("tests/ecma.ctest") include("common.ctest.inc") -set(RETAIN_BUILD_DIR ON) +set(RETAIN_BUILD_DIR OFF) set(CTEST_BUILD_NAME "darwin-x86_64 llvm") include("tests/xpath.ctest") include("common.ctest.inc") diff --git a/src/uscxml/Factory.h b/src/uscxml/Factory.h index 617e461..d4c7601 100644 --- a/src/uscxml/Factory.h +++ b/src/uscxml/Factory.h @@ -302,6 +302,10 @@ public: return *this; } + virtual std::set getNames() { + return _impl->getNames(); + } + virtual bool validate(const std::string& location, const std::string& schema) { return _impl->validate(location, schema); } diff --git a/src/uscxml/server/HTTPServer.cpp b/src/uscxml/server/HTTPServer.cpp index 28b3ba4..58a614e 100644 --- a/src/uscxml/server/HTTPServer.cpp +++ b/src/uscxml/server/HTTPServer.cpp @@ -344,14 +344,15 @@ void HTTPServer::httpRecvReqCallback(struct evhttp_request *req, void *callbackD std::string item; std::string key; std::string value; - while(std::getline(ss, item, '=')) { + while(std::getline(ss, item, '&')) { if (item.length() == 0) continue; - if (key.length() == 0) { - key = item; + size_t equalPos = item.find('='); + if (equalPos == std::string::npos) continue; - } - value = item; + + key = item.substr(0, equalPos); + value = item.substr(equalPos + 1, item.length() - (equalPos + 1)); char* keyCStr = evhttp_decode_uri(key.c_str()); char* valueCStr = evhttp_decode_uri(value.c_str()); request.data.compound["content"].compound[keyCStr] = Data(valueCStr, Data::VERBATIM); diff --git a/test/src/test-w3c.cpp b/test/src/test-w3c.cpp index 94cafa4..db8c764 100644 --- a/test/src/test-w3c.cpp +++ b/test/src/test-w3c.cpp @@ -137,6 +137,9 @@ int main(int argc, char** argv) { W3CStatusMonitor* vm = new W3CStatusMonitor(); interpreter.addMonitor(vm); +// if (interpreter.getDataModel().getNames().find("ecmascript") != interpreter.getDataModel().getNames().end()) { +// } + interpreter.start(); while(interpreter.runOnMainThread(25)); } -- cgit v0.12