aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/common/util.c12
-rw-r--r--src/common/util.h2
2 files changed, 14 insertions, 0 deletions
diff --git a/src/common/util.c b/src/common/util.c
index 98930a639..c00406338 100644
--- a/src/common/util.c
+++ b/src/common/util.c
@@ -686,6 +686,18 @@ try_next_line:
return 1;
}
+int is_internal_IP(uint32_t ip) {
+
+ if (((ip & 0xff000000) == 0xa0000000) || /* 10/8 */
+ ((ip & 0xff000000) == 0x00000000) || /* 0/8 */
+ ((ip & 0xff000000) == 0x7f000000) || /* 127/8 */
+ ((ip & 0xffff0000) == 0xa9fe0000) || /* 169.254/16 */
+ ((ip & 0xfff00000) == 0xac100000) || /* 172.16/12 */
+ ((ip & 0xffff0000) == 0xc0a80000)) /* 192.168/16 */
+ return 1;
+ return 0;
+}
+
static char uname_result[256];
static int uname_result_is_set = 0;
diff --git a/src/common/util.h b/src/common/util.h
index 9f4654b92..63d55c6fe 100644
--- a/src/common/util.h
+++ b/src/common/util.h
@@ -84,6 +84,8 @@ void spawn_exit();
int tor_socketpair(int family, int type, int protocol, int fd[2]);
+int is_internal_IP(uint32_t ip);
+
const char *get_uname(void);
/* Start putting the process into daemon mode: fork and drop all resources