Commit Graph

4491 Commits

Author SHA1 Message Date
Aleksandar Fabijanic
238306a6ed C++11 support #1793 (#1795)
* * C++14 detection
* C++14 RWLock (disabled: std::shared_timed_mutex has separate read and write unlock)

* * C++11 Event - disable because
std::condition_variable nas no built-in concept of reset
std::condition_variable may be unblocked spuriously, must handle?

* * Fix std::condition_variable handling

* * C++11 semaphore

* * Use Semaphore max paramater

* * Implement manual reset Event and re-enable
* Disable std semaphore, C++ doesn't have native semaphore, better to use native ones for now

* * C++11 Thread (in progress)

* * Fix auto reset event

* * std::*mutex with timeout doesn't guarantee that the timeout will be respected
* Thread in unix has special member for signal handling

* * Workaround for AppleClang lack of thread_local

* * C++11 format

* * C++11 Logger

* * Fix Poco::format

* * std::function event delegate

* * Fix StdFunctionDelegate for GCC

* * C++11 move semantics

* * Fix format test

* * Add cpp11_changes files

* * Auto detect compiler C++11/14 support
* Option to force disable C++11/14

* * GCC/Clang need to enable C++11/14 support via command line switches

* * Fixes for VS2013 C++11 support

* * Makefile C++11/14 compiler detection (in progress)

* * Simple GCC version detection

* AppleClang version detection

* Fix gcc c++11 build script
Update c++11 status document

* Use predefined constant instead of --version

* Fix CC & CXX to gcc 4.8 for all matrix rows.

Signed-off-by: FrancisANDRE <zosrothko@orange.fr>

* Restore apt-get update -qq

Signed-off-by: FrancisANDRE <zosrothko@orange.fr>

* Display g++ version and full g++ command line

* Fix typo

* Use command line/environment variables for CC & CXX

* Display GCCVERSION

* Use $(CXX) for setting GCCVERSION

* Do not use <cstdint>, otherwise NumberFormatter wo'nt compile

* restore silent mode on make

* Use predefined constants __clang_major__ and __clang_minor__

* Reverse clang++ options

* Add c++11/14 detection

* -std=c++14 is not valid for clang 3.4

* Run tests for both gcc 4.6 & gcc 4.8

* Restore Apple clang setup

* Align setup of std=c++11 from CLANGVERSION with check of clang version in Platform_POSIX.h

On Linux ubuntu at Travis, clang 3.4 does not support std=c++14

* Add OSX run with clang

* Add forgetted Linux guard on install

* Display clang's predefined constants on OSX

* Comment out Apple temporarly

Signed-off-by: FrancisANDRE <zosrothko@orange.fr>

* export CC & CXX for OSX

* Test when clang is from Apple

Signed-off-by: FrancisANDRE <zosrothko@orange.fr>

* Remove typo

Signed-off-by: FrancisANDRE <zosrothko@orange.fr>

* Align test with comment

Signed-off-by: FrancisANDRE <zosrothko@orange.fr>

* Add Cygwin-clang

Signed-off-by: FrancisANDRE <zosrothko@orange.fr>

* Install CppUnit for running the unit tests on OSX. 

Signed-off-by: FrancisANDRE <zosrothko@orange.fr>

* Looking for libCppUnit.1.dylib

* Install libCppUnit*.

Signed-off-by: FrancisANDRE <zosrothko@orange.fr>

* Exclude Redis for OSX. To be restored later on.

Signed-off-by: FrancisANDRE <zosrothko@orange.fr>

* Remove some display lines

* Reenable tests

* Add run tests on cmake build with ctest -VV

* Split runtests.sh into ignored.sh and excluded.sh. ignored.sh will be
used for excluding tests from ctest.

Signed-off-by: FrancisANDRE <zosrothko@orange.fr>

* Add ignored.sh to exclude CPPUNIT_IGNORE test on ctest

* Set proper path

Signed-off-by: FrancisANDRE <zosrothko@orange.fr>

* Exclude Data* from CTest. Run tests on ARM

* Add POCO_BASE for tests using test files under $POCO_BASE/component/testsuite

* Replace MB by KB otherwise Travis & AppVeyor are timing out.

Signed-off-by: FrancisANDRE <zosrothko@orange.fr>

* Specialize runtests.sh & excluded.sh according to OSX or Linux

* Split OSX/Linux runtests.sh

Signed-off-by: FrancisANDRE <zosrothko@orange.fr>

* Removed invalid comment

* Make runtests.sh executable

* c++11 atomic<> default constructor is never initialized

* Initialize to 0 in any case.

* Comment out set -ev for now

* Comment out set -ev for now

* reset verbose mode

* reset verbose mode

*  catch SIGPIPE as returnfrom testrunner to avoid failure in networking tests

* Use source for export ignored tests to avoid the permission denied problem

* chmod 775

* Apply patches from @RangeIReale

Signed-off-by: FrancisANDRE <zosrothko@orange.fr>

* Add cpp11-appleclang

Signed-off-by: FrancisANDRE <zosrothko@orange.fr>

* Initialize AtomicCounter to 0 since the c++11 default constructor don't
do it.

Signed-off-by: FrancisANDRE <zosrothko@orange.fr>

* avoid SIGPIPE on send

* fix WbeSocketServer

* Remove SIGPIPE workaround

Signed-off-by: FrancisANDRE <zosrothko@orange.fr>

* Fix WebSocketServer

* Restore set -ev

* Restore set -ev

* Fix WebSocketServer responding loop

Signed-off-by: FrancisANDRE <zosrothko@orange.fr>

* Cleanup the exit test.

Signed-off-by: FrancisANDRE <zosrothko@orange.fr>

* Add important comment.

Signed-off-by: FrancisANDRE <zosrothko@orange.fr>

* Copy also cpp11-* so that mkrelease works!

Signed-off-by: FrancisANDRE <zosrothko@orange.fr>

* Avoid PocoDoc preprocessisng error.

Signed-off-by: FrancisANDRE <zosrothko@orange.fr>

* * Sync script and Platform_POSIX.h compiler versions

* VS2013 & VS2015 fixups.

Signed-off-by: Francis ANDRE <zosrothko@orange.fr>

* Backport to c++03 so that Travis and Appveyor be ok

Signed-off-by: Francis ANDRE <zosrothko@orange.fr>

* Add Copyright (c) 2016, Applied Informatics Software Engineering GmbH.
and Contributors.

Signed-off-by: FrancisANDRE <zosrothko@orange.fr>

* VS2013 fixup

Signed-off-by: FrancisANDRE <zosrothko@orange.fr>

* Backport to c++03

Signed-off-by: FrancisANDRE <zosrothko@orange.fr>

* VS2013 fixup

Signed-off-by: FrancisANDRE <zosrothko@orange.fr>

* Backport to c++03

Signed-off-by: FrancisANDRE <zosrothko@orange.fr>

* VS2013 fixup

Signed-off-by: FrancisANDRE <zosrothko@orange.fr>

* BAckport c++03

Signed-off-by: FrancisANDRE <zosrothko@orange.fr>

* OSX: clang++ rejects return (*static_cast<Derived*>(this));
cannot cast protected base class 'cpp_ex4::StoplightContext<cpp_ex4::Stoplight>' to 'cpp_ex4::Stoplight'


Signed-off-by: FrancisANDRE <zosrothko@orange.fr>

* BAckport to c++03

Signed-off-by: FrancisANDRE <zosrothko@orange.fr>

* Add generated file for now

Signed-off-by: FrancisANDRE <zosrothko@orange.fr>

* deleted as source file name in lowercase.

Signed-off-by: FrancisANDRE <zosrothko@orange.fr>

* Rename stoplight_sm.h to Stoplight_sm.h

Signed-off-by: FrancisANDRE <zosrothko@orange.fr>

* Rename stoplight_sm.h to Stoplight_sm.h

Signed-off-by: FrancisANDRE <zosrothko@orange.fr>

* Rename stoplight_sm.h to Stoplight_sm.h

Signed-off-by: FrancisANDRE <zosrothko@orange.fr>

* Put cmake and ctest on the DOS PATH

Signed-off-by: FrancisANDRE <zosrothko@orange.fr>

* Cygwin does not support timed_mutex

* Put installed CMake /CTest on the DOS PATH.

* Repackaging

* Build VS2013 & VS2014 first.

* Add std::string Foundation_API format(const std::string& fmt, const Any& value);

Signed-off-by: FrancisANDRE <zosrothko@orange.fr>

* Restore INLINES macros when compiling with c++03

Signed-off-by: FrancisANDRE <zosrothko@orange.fr>

* Rename stoplight_sm.h to Stoplight_sm.h

Signed-off-by: FrancisANDRE <zosrothko@orange.fr>

* VS2013 fixup.

Signed-off-by: FrancisANDRE <zosrothko@orange.fr>

* Baclport to c++03

Signed-off-by: FrancisANDRE <zosrothko@orange.fr>

* cpp_ex4::StoplightContext<cpp_ex4::Stoplight> is an inaccessible base of ˜cpp_ex4::Stoplight

Signed-off-by: FrancisANDRE <zosrothko@orange.fr>

* Undef _XOPEN_SOURCE under Cygwin otherwise ulong is undefined.
usr/include/mysql/my_global.h:997:9: error: 'ulong' does not name a type
 typedef ulong nesting_map;  /* Used for flags of nesting constructs */
         ^
In file included from src/SQLExecutor.cpp:38:0:

Signed-off-by: FrancisANDRE <zosrothko@orange.fr>

* Fix merge failure. Set -ev option on shell.

Signed-off-by: FrancisANDRE <zosrothko@orange.fr>

* Removed

Signed-off-by: FrancisANDRE <zosrothko@orange.fr>

* Undefine _XOPEN_SOURCE so that typedef unsigned long ulong be defined.

Signed-off-by: FrancisANDRE <zosrothko@orange.fr>

* Remove __*VISIBLE defines as GNU forbids their usage outside the system includes

Signed-off-by: Francis ANDRE <zosrothko@orange.fr>

* Use c++03 as last c++ version.

Signed-off-by: Francis ANDRE <zosrothko@orange.fr>

* MySQL needs ulong which are not visible when compiling with
c++11 and above.

Signed-off-by: Francis ANDRE <zosrothko@orange.fr>

* Add BUILD_CC=gcc to avoid strip issue

* Remove reference to FSM

* make ?= operator does not work with

* Remove BUILD_CC

* Remove FSM since it is now in its own branch

* Don't build Cygwin64 with std=c++14 until this issue be fixed https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77441

* enable c++11

* remove changes tracking file (moved to project)

* C++11: fixes for Travis CI (#1798)

* Use c++11 compliant compiler: g++ 5 & clang 3.5.0

* Fix typo on IntType

* Use Linux-clang config instead of Linux

* Check arm-linux-gnueabi-g++ version. Dump compiler constants

* Fix missing namespace qualifier

* Ignore ltdl for Cygwin platform

* Fix typo

* Commented out arm-linux-gnueabi-g++ since the version 4.7.0 which does
not support c++11 standard.

* Restore logic as in develop branch

* Add CXXFLAGS for launching the CXX compilation. CXXFLAGS defaulted to
-std=c++11

* Replace auto_ptr by unique_ptr

* Comment out failing tests until be fixed

* C++11: Fix AppVeyor CI yaml (#1812)

* C++11 support #1793: It's time. g++4.9, clang3.3 and VS2015 will become
minimum compiler versions.

* Comment out image with VS2017 since it crashes.

* New release of OpenSSL: 1_1_0f

* Refactor the download steps of OpenSSL

* C++11 support: Add VS2017 Win32 & x64 (#1816)

* Add VS2017.

* Use VSSetup to get VS150COMNTOOLS

* Fix VS150COMNTOOLS value

* Ignore Install-Module

* Install VSSetUp PS module.

* Fix typo missing $

* Split InstallPath againt "="

* Adjust VS150COMMONTOOLS path.

* Exit failed is VS commontools is undefined.

* Get the InstalledPath property value

* Replace mysql-5.7.17 by mysql-5.7.18

* Replace mysql-5.7.17 by mysql-5.7.18

* c++11 thread priority and affinity, and more (#1811)

* * c++11 thread priority and affinity
* AtomicCounter wasn't using std::atomic
* Buffer wasn't setting all fields on move
* Poco::Event is not directly available in c++11, keep using the native versions
* UnWindows.h define NOMINMAX to reduce conflicts
* Remove "-static" from Linux GCC parameters, this conflicts with c++11 classes (https://stackoverflow.com/questions/7090623/c0x-thread-static-linking-problem)
* Link "-lrt" before "-lpthread" on Linux, otherwise won't build on GCC 5+

* * Fixed std::thread POSIX handle

* * Fix OSX compilation

* raise cmake min version to 3.2.0

* Remove CMake jobs since it is already tested on Travis (#1832)

* Remove CMake jobs since it is already tested on Travis

* Add clang-3.7

* Ubuntu Trusty LLVM repo for gettign clang versions.

* Remove 3.3 & 3.4

* Add clang 3.8, clang 3.9 & clang 4.0

* Add CXXFLAGS=-stdlib=libc++

* use libstdc++ instead of libc++

* Remove for now -g compiler option to avoid this spurious error on clang
error: debug information for auto is not yet supported

* Use -ftemplate-backtrace-limit=0 to dump the recursive template stack.

* Cleanup

* Use good gcc version

* Fix gcc-5 & g++-5 name

* Use libc++ instead of libstdc++

* Restore installation of gcc-5

* Readd agt-get update for gcc-5/g++-5

* Reswitch from libc++ to libstdc++

* Increase template evaluation stack size up to 340 to avoid a stack
overflow in parsing 
TupleType t = std::make_tuple(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14...

* Add clang 3.4, 3.5, 3.6

* Adjust template evaluation stack for clang  3.4, 3.5, 3.6, 3.7

* Update notifications

* Add gcc-4.9

* Backport Travis CXXFLAGS to config/Linux-clang

* Remove CXXFLAGS from clang tests

* Test g++ first, then clang++ and then arm

* remove all non-c++11 code and POCO_ENABLE_CPP11 (default now)

* remove old file

* windows c++11 fixes

* fix conversion warning

* C++11: Use Mutex_POSIX for Cygwin since it does not support std::timed_mutex (#1864)

* Use Mutex_POSIX for Cygwin since it does not support std::timed_mutex

* Use Mutex_POSIX for Cygwin since it does not support std::timed_mutex

* Add Mutext_POSIX.cpp

* Json/parser (#1858)

* move parser implementation in separate file

* parser replacement, first attempt (wip)

* making tests pass (mostly done, 3 to go)

* add missing headers

* honor no-null-byte-in-string setting

* few more fixes

* add -std=c99

* fix cmake JSON build and formatting

* accept utf-8, fix tests

* skip calling isdigit()

* #740, #1860, license update, a warning fix

* var emtpy()->clear(); json array and object tidy up

* vs 2015 32-bit project update

* update VS2017 projects

* remove ProGen and all VS files older than 2015

* fixed GH #1865: AbstractEvent::hasDelegates() is not thread-safe

* merge develop

* add missing files

* add VS generated dir to gitignore

* add WEC2013.cmake

* fix exception message

* fix VS2017 ODBC project filter

* integrate PageCompiler changes from poco-1.7.9

* vs2015 openssl build

* added POCO_DEPRECATED macro

* added POCO_NO_DEPRECATED to disarm POCO_DEPRECATED macro

* PageCompiler: support <%@ include file="<path>" %> syntax for includes.

* remove '$Id$' headers

* remove '$Id$' headers

* remove old VMS and VxWorks build support

* Poco::NamedMutex and Poco::NamedEvent (System V Semaphores implementation): files are now opened with O_RDONLY | O_CREAT instead of O_WRONLY | O_CREAT, allowing sharing between different users. Furthermore, ftok() is called with 'p' as project ID argument.

* C++11 (#1887)

* Use Mutex_POSIX for Cygwin since it does not support std::timed_mutex

* Use Mutex_POSIX for Cygwin since it does not support std::timed_mutex

* Add Mutext_POSIX.cpp

* Remove clang 3.4, 3.5, 3.6, 3.7, 3.8, 3.9 since LLVM does not provide
anymore their packages for Ubuntu Trusy

* Remove ubuntu-toolchain-r/test/ubuntu since it is already installed

* Comment our the llvl-toolchain-trusty since its checksum is buggy
See https://bugs.llvm.org/show_bug.cgi?id=34572

* Display g++ version (#1889)

* merge change from develop|

* Support for PKCS#12 (#1876)

* rebuild openssl binaries; warning and stlye fixes

* fix vs2015 projects and openssl linking

* add PKCS12Container

* remove comments

* style

* add ECKey* and CryptoException

* EC key, unify RSA and EC under same inheritance, add constructor from PKCS12, couple of EC key tests

* simplify EVPPKey, ad EC tests

* EVPPKey test and fixes

* fix linux build

* PKCS12 tests and fixes

* linux build, fix crash

* fix leaks

* uncomment ifstream tests, some minor fixes

* fix stream tests and some tidy-up

* remove $Id

* add ECDSA

* update makefile

* align PKCS12 constructors signatures with X509

* EVPPKey EC curve name constructor

* ECDSA fixes and tests

* linux build, wrap tests in try/catch to get full exception message

* style

* update VS projects

* remove openssl, modify VS projects for git submodule directories

* add openssl submodule

* add _CRT_SECURE_NO_WARNINGS

* port crypto dev fixes from 1.8

* lock whole Event:set()

* fix openssl include path

* Add <memory> for std::unique_ptr (#1891)

* Missing include <iostream> (#1893)

* add file/stream load/save capabilities to EVPPKey

* add EVPTest

* add #include <typeinfo>

* fix posix compile

* update samples VS projects

* fix g++ test compile error
2017-09-20 22:13:19 -05:00
Günter Obiltschnig
d9a6954950 fixed double-used local variable name 2017-09-16 11:35:12 +02:00
Günter Obiltschnig
c5263c1499 Merge pull request #1394 from pocoproject/revert-1086-xml-wshadow-fixes
Revert "GH #1050 XML: fix gcc -Wshadow warnings"
2017-09-16 11:00:33 +02:00
Günter Obiltschnig
b50e355c70 Merge branch 'develop' into revert-1086-xml-wshadow-fixes 2017-09-16 11:00:04 +02:00
Conor Burgess
16414e4fbf If openssl > 1.0.2, use it to verify hostnames against certificates, with test (#1885) 2017-09-13 09:32:52 -05:00
Günter Obiltschnig
33bc8b5011 Poco::NamedMutex and Poco::NamedEvent (System V Semaphores implementation): files are now opened with O_RDONLY | O_CREAT instead of O_WRONLY | O_CREAT, allowing sharing between different users. Furthermore, ftok() is called with 'p' as project ID argument. 2017-09-11 21:12:12 +02:00
Günter Obiltschnig
7896a1b7dd remove old VMS and VxWorks build support 2017-09-09 11:07:39 +02:00
Günter Obiltschnig
d07dd731f3 Merge branch 'develop' of https://github.com/pocoproject/poco into develop 2017-09-09 10:51:19 +02:00
Günter Obiltschnig
06373b5d0c remove '$Id$' headers 2017-09-09 10:50:32 +02:00
Günter Obiltschnig
965468593a remove '' headers 2017-09-09 10:41:06 +02:00
Günter Obiltschnig
42f824d83f PageCompiler: support <%@ include file="<path>" %> syntax for includes. 2017-09-08 20:54:56 +02:00
Günter Obiltschnig
64a733f27f added POCO_NO_DEPRECATED to disarm POCO_DEPRECATED macro 2017-09-08 12:18:39 +02:00
Günter Obiltschnig
5ff8bdafdd added POCO_DEPRECATED macro 2017-09-08 11:46:59 +02:00
zosrothko
6ec6932f34 Pocodoc on windows (#1877)
* PocoDoc: support generation on Windows

* Replace hard code path with variables:
VC should be set to the path of the C++ compiler (cl.exe)
WDK should be set to the Windows Development Kit

* Update CHANGELOG with the latest 1.7.8p4 one

* Fix missing end tag

Signed-off-by: zosrothko <zosrothko@orange.fr>

* Add XHTML 1.0 Transitional DOCTYPE.
Fix unbalanced <li> tags in the TOC generation.
Use '\'' insteadof '"' as string delimiter to simplify the code.
Use &#xxxx instead of &copy; &mdash; &nbsp; entities as recommended by the W3C

Signed-off-by: zosrothko <zosrothko@orange.fr>
2017-09-06 15:28:07 -05:00
Guenter Obiltschnig
e4014e88b7 integrate PageCompiler changes from poco-1.7.9 2017-09-04 19:39:48 +02:00
Erbengi
fe7230a6d5 Implement extraction of Dynamic::Var and Any in MySQL extractor (#1863) (#1872)
* Implement extraction of Dynamic::Var and Any in MySQL extractor (#1863)

* Remove probably unnecessary include <my_global.h> from SQLExecutor
2017-09-04 10:59:13 -05:00
Alex Fabijanic
e59fba4ddd fix exception message 2017-09-04 10:47:03 -05:00
Alex Fabijanic
b4c62584c7 fix exception message 2017-09-04 10:38:04 -05:00
Yasuhiro Horimoto
9ea7000533 Modify validation check in Poco::DateTime (#1859)
* Modify validation check in Poco::DateTime

* Modify exception message
2017-09-04 10:30:57 -05:00
Günter Obiltschnig
6689e3d7c9 fixes for QNX from 1.7.9 2017-09-01 20:41:52 +02:00
Günter Obiltschnig
f176c46a24 upgrade bundled SQLite to 3.20.1 2017-09-01 20:36:23 +02:00
Günter Obiltschnig
ed518115d7 style fixes 2017-09-01 20:35:43 +02:00
Günter Obiltschnig
1c639d6c2c merge LayeredConfiguration changes (labels) from 1.7.9 2017-09-01 20:35:22 +02:00
Alex Fabijanic
c81de1d34b fix FTPS win build, license, header guards; fix few warnings 2017-08-31 12:20:49 -05:00
micheleselea
dd573b98d8 Add FTPS (FTP over explicit SSL) implementation (#1866)
* FTPSClientSession

Add class to support FTPS (explicit FTP over SSL). Testcase done but just  TestSuite_x64_vs140.vcxproj modified

* FTPS project file

Added FTPS files to v140 project

* FTPS makefile

Added FTPS file to makefile

* testsuit compile

Fix compile of testsuite

* comment misspelled

checked misspelled comment, and re-add WebSocket testsuite

* remove warning

reorder constructor inizializzations in order to remove gcc -Wreorder warning

* testsuite compile

Correct Makefile in testsuite

* Makefile testsuite

add DialogServer to testsuite makefile

* test build

fix build of testsuite

* add FTPSStreamFactory

* vs140 32bit

* build and test for vs150
2017-08-31 07:30:10 -05:00
Günter Obiltschnig
96ca6e865d fixed GH #1865: AbstractEvent::hasDelegates() is not thread-safe 2017-08-31 08:35:27 +02:00
kapcino
0aec1e162f Add password field for Redis Client (#1838)
* Add password field for Redis Client

* Revert change for constructor and add property for authenticated result

* Correct createObject when no password

* Fix compile problem and add type check before return object

* Remove password property in Redis pool factory

* Remove validate for no password case

* Correct return value for empty password
2017-08-30 12:23:23 -05:00
Robin Lee
6714322122 Remove redundant memmove call in BasicFIFOBuffer::advance() (#1862)
The memmove call is redundant since begin() is always the same as
_buffer.begin().

And since the call to begin() is removed, this function will not move
the data to the start of the buffer.
2017-08-28 14:24:09 -05:00
zosrothko
0f6c528435 PocoDoc: support generation on Windows (#1854)
* PocoDoc: support generation on Windows

* Replace hard code path with variables:
VC should be set to the path of the C++ compiler (cl.exe)
WDK should be set to the Windows Development Kit

* Update CHANGELOG with the latest 1.7.8p4 one
2017-08-23 09:52:00 -05:00
Jochen Sprickerhof
9ab7295108 Add support for m68000 (#1856)
Originally taken from

da11179623
2017-08-23 09:50:51 -05:00
zosrothko
59e2043652 Add missing parenthesis (#1855) 2017-08-20 16:15:38 -05:00
zosrothko
f6d201cfba Remove CMake build since it is already done on Travis (#1852) 2017-08-16 14:12:59 -05:00
Alexander B
b94ffc7211 fix : rename test testExpandUnix to testExpandVariableFromPath, add usecases for windows (#1850) 2017-08-15 13:36:58 -05:00
Alex Fabijanic
e99e6126f4 solaris macros fix 2017-08-14 20:21:35 -05:00
Cosmin Cremarenco
0e3230aabf statfs not available on Solaris, replace with statvfs (#1428) 2017-08-14 20:13:37 -05:00
Cosmin Cremarenco
bba77c11a0 Activate 64bit by default on solaris, remove link with stlport which conflicts with c++11 (#1427) 2017-08-14 19:54:46 -05:00
Hampus Tågerud
7a172f9d2d CMake properly detects PostgreSQL, fixes #1671 (#1672) 2017-08-14 19:52:35 -05:00
zosrothko
88634c0c1e Restore HOME/Path::home() in testExpandUnix (#1846) 2017-08-14 16:23:12 -05:00
Rangel Reale
6cd8f3f73c * Emscripten build support (#1845) 2017-08-14 14:03:07 -05:00
Alex Fabijanic
8cdd129d7e use TMPDIR for unix path expansion test 2017-08-14 12:58:30 -05:00
Alex Fabijanic
900426e52b fix sqlite close logic 2017-08-13 21:29:11 -05:00
Yasuhiro Horimoto
e144a1ffbc Fix issues #1373 for ODBC (#1837)
* Fix issues #1373 for ODBC

* Fix coding style and typo in `SessionImpl::close()`
2017-08-11 20:50:16 +02:00
Günter Obiltschnig
66a7fc6652 fixed GH #1826: XPath query error 2017-08-11 19:28:59 +02:00
Günter Obiltschnig
f8b7681f78 fixed GH #1813: xmlparse.cpp doesn't compile in WinCE (poco 1.7.8p3) 2017-08-10 16:58:44 +02:00
Günter Obiltschnig
88684a182f revert naming changes 2017-08-10 13:06:13 +02:00
Günter Obiltschnig
be90443748 use random salt in NamePool hash table 2017-08-10 13:05:38 +02:00
Günter Obiltschnig
1bcf8f1011 upgrade bundled expat to 2.2.3 2017-08-10 13:04:59 +02:00
sebastien-guay
a9982e68ba "SocketReactor::addEventHandler" and "SocketReactor::removeEventHandler" must protect the access to "NotifierPtr pNotifier" (#1709)
Those two methods already use FastMutex::ScopedLock lock(_mutex), but
the scope is not large enough to protect "NotifierPtr pNotifier" that is
accessed by calling SocketNotifier::addObserver() and
SocketNotifier::removeObserver().

It is mentioned in SocketReator.h that it is safe to call
addEventHandler() and removeEventHandler() from another thread while the
SocketReactor is running. My current use of the SocketReactor
encountered an issue where the SocketNotifier::_events has been
corrupted by a concurent write access done by
SocketReactor::addEventHandler() and
SocketReactor::removeEventHandler().
The call stack show that the SocketReactor::addEventHandler is stuck in
a while loop in gcc/libstdc++/tree.cc Rb_tree_insert_and_rebalance()

I clearly see in my logs that it happened while my
SocketConnector::unregisterConnector() and
SocketConnector::registerConnector() were called by two different
threads.

#0 0x00a80a7b in std::_Rb_tree_insert_and_rebalance () from
/usr/lib/libstdc++.so.6
#1 0x06ccb430 in std::_Rb_tree<Poco::Net::SocketNotification*,
Poco::Net::SocketNotification*,
std::_IdentityPoco::Net::SocketNotification*,
std::lessPoco::Net::SocketNotification*,
std::allocatorPoco::Net::SocketNotification* >::_M_insert
(this=0xac75dc90, __x=0x0, __p=0xac7ed0c8, __v=@0xb5fb0c40) at
/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_tree.h:816
#2 0x06ccb15d in std::_Rb_tree<Poco::Net::SocketNotification*,
Poco::Net::SocketNotification*,
std::_IdentityPoco::Net::SocketNotification*,
std::lessPoco::Net::SocketNotification*,
std::allocatorPoco::Net::SocketNotification* >::insert_equal
(this=0xac75dc90, __v=@0xb5fb0c40) at
/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_tree.h:858
#3 0x06ccad86 in std::multiset<Poco::Net::SocketNotification*,
std::lessPoco::Net::SocketNotification*,
std::allocatorPoco::Net::SocketNotification* >::insert (this=0xac75dc90,
__x=@0xb5fb0c40)
at
/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_multiset.h:306
#4 0x06cca72b in Poco::Net::SocketNotifier::addObserver
(this=0xac75dc70, pReactor=0x8d27958, observer=@0xb5fb0cd0) at
src/SocketNotifier.cpp:45
#5 0x06cd060f in Poco::Net::SocketReactor::addEventHandler
(this=0x8d27958, socket=@0xac7f5a74, observer=@0xb5fb0cd0) at
src/SocketReactor.cpp:178

SocketReactor::run() is already protecting the access to the
SocketNotifier.
2017-08-10 10:10:09 +02:00
TimTim
5b7d9d2b18 avoid multipart boundary conflict (#1753)
when nesting multipart, descendant parts currently may have the same boundary as the top-level multipart.
2017-08-10 10:07:19 +02:00
Alexander B
453d5248f1 Poco Path and simbol $ (#1800)
* fix : loop on sessionimpl->close if impl is sqlite and sqlite_close return SQLITE_BUSY

* fix : loop on sessionimpl->close if impl is sqlite and sqlite_close return SQLITE_BUSY, try 50 times with 100ms sleeping

* bug : into current implementation od path_unix.cpp I can't use simbol $ like a simbol, not a variable prefix, for example,
I need to use path /home/user/O1$$/folder. I propose to use escape sequence for this, for ex., if I want to use Poco::Glob, I can do
std::set<std::string> files;
std::string path = "/home/user/O1$$/folder"
Poco::replaceInPlace(path, "$", "\\$");
Poco::Glob::glob(path, files);

* fix : loop on sessionimpl->close if impl is sqlite and sqlite_close return SQLITE_BUSY, try 50 times with 100ms sleeping (fix code style)

bug : into current implementation od path_unix.cpp I can't use simbol $ like a simbol, not a variable prefix, for example,
I need to use path /home/user/O1$$/folder. I propose to use escape sequence for this, for ex., if I want to use Poco::Glob, I can do
std::set<std::string> files;
std::string path = "/home/user/O1$$/folder"
Poco::replaceInPlace(path, "$", "\\$");
Poco::Glob::glob(path, files);

add test

* fix : try to finalize stmt if its busy (on close session)

* fix : try to finalize stmt if its busy (on close session)
2017-08-10 10:00:06 +02:00