Commit 01afa2bc authored by Juliusz Chroboczek's avatar Juliusz Chroboczek

Implement martian_prefix.

parent 959387fe
...@@ -201,3 +201,12 @@ wait_for_fd(int direction, int fd, int msecs) ...@@ -201,3 +201,12 @@ wait_for_fd(int direction, int fd, int msecs)
return rc; return rc;
} }
int
martian_prefix(const unsigned char *prefix, int plen)
{
return
(plen >= 8 && prefix[0] == 0xFF) ||
(plen >= 10 && prefix[0] == 0xFE && (prefix[1] & 0xC0) == 0x80) ||
(plen >= 128 && memcmp(prefix, zeroes, 16) == 0);
}
...@@ -37,6 +37,7 @@ const char *format_address(const unsigned char *address); ...@@ -37,6 +37,7 @@ const char *format_address(const unsigned char *address);
int parse_address(const char *address, unsigned char *addr_r); int parse_address(const char *address, unsigned char *addr_r);
int parse_net(const char *net, unsigned char *prefix_r, unsigned short *plen_r); int parse_net(const char *net, unsigned char *prefix_r, unsigned short *plen_r);
int wait_for_fd(int direction, int fd, int msecs); int wait_for_fd(int direction, int fd, int msecs);
int martian_prefix(const unsigned char *prefix, int plen);
/* If debugging is disabled, we want to avoid calling format_address /* If debugging is disabled, we want to avoid calling format_address
for every omitted debugging message. So debug is a macro. But for every omitted debugging message. So debug is a macro. But
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment