*/
/*
- $Revision: 1.41 $
- $Date: 2010/11/03 10:26:30 $
+ $Revision: 1.42 $
+ $Date: 2010/11/08 10:11:19 $
$Author: faust $
*/
#include <sys/socket.h>
#endif*/
+#ifdef FREE_BSD
+#include <sys/types.h>
+#endif
+
+#ifdef WIN32
+#include <winsock2.h>
+#else
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
+#endif
+
#include <iconv.h>
#include <cstdlib>
}
struct in_addr in;
- if (!inet_aton(p1, &in))
+ if (inet_pton(AF_INET, p1, &in) != 1)
{
//printf("INADDR_NONE\n");
return EINVAL;
{
x = strtoul(str.c_str(), NULL, 10);
+if (errno == ERANGE)
+ return -1;
+
+return 0;
+}
+//---------------------------------------------------------------------------
+int str2x(const std::string & str, long & x)
+{
+x = strtol(str.c_str(), NULL, 10);
+
+if (errno == ERANGE)
+ return -1;
+
+return 0;
+}
+//---------------------------------------------------------------------------
+int str2x(const std::string & str, unsigned long & x)
+{
+x = strtoul(str.c_str(), NULL, 10);
+
if (errno == ERANGE)
return -1;
return unsigned2str(x, s);
}
//---------------------------------------------------------------------------
+const std::string & x2str(unsigned long x, std::string & s)
+{
+return unsigned2str(x, s);
+}
+//---------------------------------------------------------------------------
const std::string & x2str(unsigned long long x, std::string & s)
{
return unsigned2str(x, s);