diff options
Diffstat (limited to 'server/src/utilities.cpp')
-rw-r--r-- | server/src/utilities.cpp | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/server/src/utilities.cpp b/server/src/utilities.cpp index ab10e30..c8510c9 100644 --- a/server/src/utilities.cpp +++ b/server/src/utilities.cpp @@ -20,6 +20,10 @@ #include <boost/log/trivial.hpp> +#include <boost/random.hpp> +#include <boost/nondet_random.hpp> + + #include "utilities.h" #include "../../protocol/udm.pb.h" @@ -56,3 +60,21 @@ std::shared_ptr<char*> pack_msg(server_msg *msg, int *size_) msg->SerializeToString(&msg_buf); return pack_data(msg_buf, size_); } + +std::string random_string(int length) +{ + BOOST_LOG_TRIVIAL(debug)<<__FILE__<<":"<<__LINE__<<"\t"<<__func__; + std::string chars("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890"); + std::string data; + boost::random_device rng; + boost::variate_generator<boost::random_device&, boost::uniform_int<>> gen(rng, boost::uniform_int<>(0, (int)chars.length()-1)); + for(int i = 0; i < length; ++i) + data += chars[gen()]; + return data; +} + +std::string generate_auth_token() +{ + return random_string(64); +} + |