提交 4bbecf70 编写于 作者: D Dmitry Kozlov

move build_ip6_addr function to ipdb.c

上级 ec3d2f29
......@@ -408,16 +408,6 @@ static void print_ip6_dp(struct ap_session *ses, char *buf)
sprintf(ptr, "/%i", a->prefix_len);
}
static void build_ip6_addr(struct ipv6db_addr_t *a, uint64_t intf_id, struct in6_addr *addr)
{
memcpy(addr, &a->addr, sizeof(*addr));
if (a->prefix_len <= 64)
*(uint64_t *)(addr->s6_addr + 8) = intf_id;
else
*(uint64_t *)(addr->s6_addr + 8) |= intf_id & ((1 << (128 - a->prefix_len)) - 1);
}
static void print_ip6(struct ap_session *ses, char *buf)
{
struct ipv6db_addr_t *a;
......
#include <string.h>
#include "triton.h"
#include "ipdb.h"
......@@ -71,6 +73,15 @@ void __export ipdb_put_ipv6_prefix(struct ap_session *ses, struct ipv6db_prefix_
it->owner->put_ipv6_prefix(ses, it);
}
void __export build_ip6_addr(struct ipv6db_addr_t *a, uint64_t intf_id, struct in6_addr *addr)
{
memcpy(addr, &a->addr, sizeof(*addr));
if (a->prefix_len <= 64)
*(uint64_t *)(addr->s6_addr + 8) = intf_id;
else
*(uint64_t *)(addr->s6_addr + 8) |= intf_id & ((1 << (128 - a->prefix_len)) - 1);
}
void __export ipdb_register(struct ipdb_t *ipdb)
{
......
......@@ -61,5 +61,7 @@ void ipdb_put_ipv6_prefix(struct ap_session *ses, struct ipv6db_prefix_t *it);
void ipdb_register(struct ipdb_t *);
void build_ip6_addr(struct ipv6db_addr_t *a, uint64_t intf_id, struct in6_addr *addr);
#endif
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册