osmith has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ggsn/+/33907 )
Change subject: lib/in46_addr: add in46a_from_gsna ......................................................................
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 --- M ggsn/ggsn_vty.c M lib/in46_addr.c M lib/in46_addr.h 3 files changed, 22 insertions(+), 4 deletions(-)
Approvals: Jenkins Builder: Verified pespin: Looks good to me, but someone else must approve laforge: Looks good to me, approved
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 @@ { 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 @@ 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_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);