Split epee/string_tools.h and encapsulate boost::lexical_cast

This commit is contained in:
mj-xmr 2020-11-12 19:14:32 +01:00
parent e45619e61e
commit dc81e23e60
29 changed files with 733 additions and 496 deletions

View file

@ -27,14 +27,13 @@
#pragma once
#include <boost/lexical_cast.hpp>
#include <boost/regex.hpp>
#include "memwipe.h"
#include <boost/utility/string_ref.hpp>
#include <string>
#include <utility>
#include "memwipe.h"
#include "string_tools.h"
#include <list>
#undef MONERO_DEFAULT_LOG_CATEGORY
#define MONERO_DEFAULT_LOG_CATEGORY "net.http"
@ -66,34 +65,9 @@ namespace net_utils
typedef std::list<std::pair<std::string, std::string> > fields_list;
inline
std::string get_value_from_fields_list(const std::string& param_name, const net_utils::http::fields_list& fields)
{
fields_list::const_iterator it = fields.begin();
for(; it != fields.end(); it++)
if(!string_tools::compare_no_case(param_name, it->first))
break;
std::string get_value_from_fields_list(const std::string& param_name, const net_utils::http::fields_list& fields);
if(it==fields.end())
return std::string();
return it->second;
}
inline
std::string get_value_from_uri_line(const std::string& param_name, const std::string& uri)
{
std::string buff = "([\\?|&])";
buff += param_name + "=([^&]*)";
boost::regex match_param(buff.c_str(), boost::regex::icase | boost::regex::normal);
boost::smatch result;
if(boost::regex_search(uri, result, match_param, boost::match_default) && result[0].matched)
{
return result[2];
}
return std::string();
}
std::string get_value_from_uri_line(const std::string& param_name, const std::string& uri);
static inline void add_field(std::string& out, const boost::string_ref name, const boost::string_ref value)
{