diff options
author | Oliver Smith <osmith@sysmocom.de> | 2023-07-24 15:02:23 +0200 |
---|---|---|
committer | Oliver Smith <osmith@sysmocom.de> | 2023-07-24 15:06:03 +0200 |
commit | 4963d1c2eafef2f7dfe65b21e456c70bcd5f26c6 (patch) | |
tree | 5bdcb5642cfbcfc62aec0ca6fbeb683d03660a53 | |
parent | 37daa5d003cce9da22d6480bbee38f4dc3d12680 (diff) |
lib/in46_addr: add in46a_from_gsna
Prepare to use it in gtp-kernel.c in a future patch.
Related: OS#6096
Change-Id: I3e76eb7ee89ba338f085c617662d15cffa2a62d5
-rw-r--r-- | ggsn/ggsn_vty.c | 5 | ||||
-rw-r--r-- | lib/in46_addr.c | 7 | ||||
-rw-r--r-- | lib/in46_addr.h | 2 |
3 files changed, 10 insertions, 4 deletions
diff --git a/ggsn/ggsn_vty.c b/ggsn/ggsn_vty.c index 2d49a94..7414b6a 100644 --- a/ggsn/ggsn_vty.c +++ b/ggsn/ggsn_vty.c @@ -814,10 +814,7 @@ static const char *print_gsnaddr(const struct ul16_t *in) { struct in46_addr in46; - in46.len = in->l; - OSMO_ASSERT(in->l <= sizeof(in46.v6)); - memcpy(&in46.v6, in->v, in->l); - + in46a_from_gsna(in, &in46); return in46a_ntoa(&in46); } diff --git a/lib/in46_addr.c b/lib/in46_addr.c index 2562c71..648fe7e 100644 --- a/lib/in46_addr.c +++ b/lib/in46_addr.c @@ -375,3 +375,10 @@ default_to_dyn_v4: dst->v4.s_addr = 0; return 1; } + +void in46a_from_gsna(const struct ul16_t *in, struct in46_addr *dst) +{ + dst->len = in->l; + OSMO_ASSERT(in->l <= sizeof(dst->v6)); + memcpy(&dst->v6, in->v, in->l); +} diff --git a/lib/in46_addr.h b/lib/in46_addr.h index 153df00..5589f94 100644 --- a/lib/in46_addr.h +++ b/lib/in46_addr.h @@ -39,3 +39,5 @@ static inline bool in46a_is_v6(const struct in46_addr *addr) { static inline bool in46a_is_v4(const struct in46_addr *addr) { return addr->len == sizeof(struct in_addr); } + +void in46a_from_gsna(const struct ul16_t *in, struct in46_addr *dst); |