[sr-dev] git:master:4acca8ad: core: add new function buf_print_ip(..) to print an IP address to an buffer
Daniel-Constantin Mierla
miconda at gmail.com
Mon Mar 23 14:00:06 CET 2020
Hello,
if I haven't misunderstood what this function does, there is another
similar function (and few variants) for the same purpose, see
ip_addr2sbuf() inside src/core/ip_addr.h
If can be reused, then makes no sense to add this new function that uses
snprintf().
Cheers,
Daniel
On 23.03.20 12:07, Henning Westerholt wrote:
> Module: kamailio
> Branch: master
> Commit: 4acca8ad2f31f465b08f15d98cc4780236e2beb0
> URL: https://github.com/kamailio/kamailio/commit/4acca8ad2f31f465b08f15d98cc4780236e2beb0
>
> Author: Henning Westerholt <hw at skalatan.de>
> Committer: Henning Westerholt <hw at skalatan.de>
> Date: 2020-03-23T12:04:54+01:00
>
> core: add new function buf_print_ip(..) to print an IP address to an buffer
>
> ---
>
> Modified: src/core/ip_addr.c
> Modified: src/core/ip_addr.h
>
> ---
>
> Diff: https://github.com/kamailio/kamailio/commit/4acca8ad2f31f465b08f15d98cc4780236e2beb0.diff
> Patch: https://github.com/kamailio/kamailio/commit/4acca8ad2f31f465b08f15d98cc4780236e2beb0.patch
>
> ---
>
> diff --git a/src/core/ip_addr.c b/src/core/ip_addr.c
> index 9989063fff..82f746e0d6 100644
> --- a/src/core/ip_addr.c
> +++ b/src/core/ip_addr.c
> @@ -274,6 +274,35 @@ void stdout_print_ip(struct ip_addr* ip)
> }
>
>
> +void buf_print_ip(char *buf, struct ip_addr* ip, unsigned int len)
> +{
> + if (len < INET6_ADDRSTRLEN) {
> + LM_ERR("insufficent buffer length\n");
> + return;
> + }
> + switch(ip->af){
> + case AF_INET:
> + snprintf(buf, len, "%d.%d.%d.%d", ip->u.addr[0],
> + ip->u.addr[1],
> + ip->u.addr[2],
> + ip->u.addr[3]);
> + break;
> + case AF_INET6:
> + snprintf(buf, len, "%x:%x:%x:%x:%x:%x:%x:%x", htons(ip->u.addr16[0]),
> + htons(ip->u.addr16[1]),
> + htons(ip->u.addr16[2]),
> + htons(ip->u.addr16[3]),
> + htons(ip->u.addr16[4]),
> + htons(ip->u.addr16[5]),
> + htons(ip->u.addr16[6]),
> + htons(ip->u.addr16[7])
> + );
> + break;
> + default:
> + snprintf(buf, len, "warning unknown address family %d\n", ip->af);
> + }
> +}
> +
>
> void print_net(struct net* net)
> {
> diff --git a/src/core/ip_addr.h b/src/core/ip_addr.h
> index 9a7b67ac5d..896d4b757e 100644
> --- a/src/core/ip_addr.h
> +++ b/src/core/ip_addr.h
> @@ -265,6 +265,8 @@ int mk_net_str(struct net* dst, str* s);
>
> void print_ip(char* prefix, struct ip_addr* ip, char* suffix);
> void stdout_print_ip(struct ip_addr* ip);
> +void buf_print_ip(char *buf, struct ip_addr* ip, unsigned int len);
> +
> void print_net(struct net* net);
>
> char* get_proto_name(unsigned int proto);
>
>
> _______________________________________________
> Kamailio (SER) - Development Mailing List
> sr-dev at lists.kamailio.org
> https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-dev
--
Daniel-Constantin Mierla -- www.asipto.com
www.twitter.com/miconda -- www.linkedin.com/in/miconda
More information about the sr-dev
mailing list