24 lines
592 B
C
24 lines
592 B
C
#include "stack-src.h"
|
|
|
|
int is_myself(const struct stack_src_t *src, ipaddress ip, unsigned port)
|
|
{
|
|
return is_my_ip(src, ip) && is_my_port(src, port);
|
|
}
|
|
|
|
int is_my_ip(const struct stack_src_t *src, ipaddress ip)
|
|
{
|
|
switch (ip.version) {
|
|
case 4:
|
|
return src->ipv4.first <= ip.ipv4 && ip.ipv4 <= src->ipv4.last;
|
|
case 6:
|
|
return src->ipv6.first.hi == ip.ipv6.hi && src->ipv6.first.lo == ip.ipv6.lo;
|
|
default:
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
int is_my_port(const struct stack_src_t *src, unsigned port)
|
|
{
|
|
return src->port.first <= port && port <= src->port.last;
|
|
}
|