]> git.stg.codes - stg.git/blobdiff - include/user_ips.h
Виправлено помилку що призводила до падіння системи при спробі
[stg.git] / include / user_ips.h
index d3e640c16e3754fd7fd9c0ad17e1f44835c40455..250520b28f7eca14cc353020166f9d7ac0048956 100644 (file)
 #ifndef USER_IPS_H
 #define USER_IPS_H
 
+#ifdef FREE_BSD
+#include <sys/types.h>
+#endif
+
+#include <sys/socket.h>
+#include <netinet/in.h>
+#include <arpa/inet.h>
+
+#include <cstring>
 #include <vector>
-//#include <algorithm>
 #include <string>
 #include <iostream>
 #include <sstream>
-#include <cstring>
-/////////////////////////
-#include <sys/socket.h>
-#include <netinet/in.h>
-#include <arpa/inet.h>
 
 #include "common.h"
 #include "os_int.h"
@@ -202,8 +205,7 @@ std::vector<std::string> ipMask;
 std::string err;
 if (ipsStr.empty())
     {
-    err = "Incorrect IP address.";
-    throw(err);
+    return ips;
     }
 
 if (ipsStr[0] == '*' && ipsStr.size() == 1)
@@ -235,7 +237,7 @@ for (unsigned int i = 0; i < ipMask.size(); i++)
     if (strIp == NULL)
         {
         err = "Incorrect IP address " + ipsStr;
-        throw(err);
+        return ips;
         }
     strMask = strtok(NULL, "/");
 
@@ -243,7 +245,7 @@ for (unsigned int i = 0; i < ipMask.size(); i++)
     if (im.ip == INADDR_NONE)
         {
         err = "Incorrect IP address: " + std::string(strIp);
-        throw(err);
+        return ips;
         }
 
     im.mask = 32;
@@ -253,20 +255,20 @@ for (unsigned int i = 0; i < ipMask.size(); i++)
         if (str2x(strMask, m) != 0)
             {
             err = "Incorrect mask: " + std::string(strMask);
-            throw(err);
+            return ips;
             }
         im.mask = m;
 
         if (im.mask > 32)
             {
             err = "Incorrect mask: " + std::string(strMask);
-            throw(err);
+            return ips;
             }
 
         if ((im.ip & ips.CalcMask(im.mask)) != im.ip)
             {
             err = "Address does'n match mask: " + std::string(strIp) + "/" + std::string(strMask);
-            throw(err);
+            return ips;
             }
         }
     ips.ips.push_back(im);
@@ -276,5 +278,3 @@ return ips;
 }
 //-------------------------------------------------------------------------
 #endif //USER_IPS_H
-
-