--- a/src/web/random_device.cpp +++ b/src/web/random_device.cpp @@ -39,16 +39,6 @@ #endif #ifdef USE_URANDOM -#ifndef BOOST_NO_INCLASS_MEMBER_INITIALIZATION -// A definition is required even for integral static constants -const bool boost::random_device::has_fixed_range; -const boost::random_device::result_type boost::random_device::min_value; -const boost::random_device::result_type boost::random_device::max_value; -#endif - -// the default is the unlimited capacity device, using some secure hash -// try "/dev/random" for blocking when the entropy pool has drained -const char * const boost::random_device::default_token = "/dev/urandom"; /* * This uses the POSIX interface for unbuffered reading. @@ -119,7 +109,6 @@ #include #include #include -const char * const boost::random_device::default_token = ""; // Note about thread-safety: according to my reading of the MSDN page // 'Threading Issues with Cryptographic Service Providers', both the @@ -156,6 +145,10 @@ }; #endif +BOOST_RANDOM_DECL boost::random::random_device::random_device() + : pimpl(new impl("/dev/urandom")) +{} + boost::random_device::random_device(const std::string& token) : pimpl(new impl(token)) {