get rid of strlcpy.h

Don't use hand-rolled string manipulation routine with a fixed
buffer in the bitcoin core, instead make use of c++ strings and boost.
This commit is contained in:
Wladimir J. van der Laan
2012-10-02 21:36:39 +02:00
parent ee0b648536
commit 6032e4f4e7
7 changed files with 30 additions and 129 deletions

View File

@@ -10,8 +10,8 @@
#include <sys/fcntl.h>
#endif
#include "strlcpy.h"
#include <boost/algorithm/string/case_conv.hpp> // for to_lower()
#include <boost/algorithm/string/predicate.hpp> // for startswith() and endswith()
using namespace std;
@@ -118,18 +118,16 @@ bool static LookupIntern(const char *pszName, std::vector<CNetAddr>& vIP, unsign
bool LookupHost(const char *pszName, std::vector<CNetAddr>& vIP, unsigned int nMaxSolutions, bool fAllowLookup)
{
if (pszName[0] == 0)
std::string str(pszName);
std::string strHost = str;
if (str.empty())
return false;
char psz[256];
char *pszHost = psz;
strlcpy(psz, pszName, sizeof(psz));
if (psz[0] == '[' && psz[strlen(psz)-1] == ']')
if (boost::algorithm::starts_with(str, "[") && boost::algorithm::ends_with(str, "]"))
{
pszHost = psz+1;
psz[strlen(psz)-1] = 0;
strHost = str.substr(1, str.size() - 2);
}
return LookupIntern(pszHost, vIP, nMaxSolutions, fAllowLookup);
return LookupIntern(strHost.c_str(), vIP, nMaxSolutions, fAllowLookup);
}
bool LookupHostNumeric(const char *pszName, std::vector<CNetAddr>& vIP, unsigned int nMaxSolutions)