[sr-dev] git:master:4acca8ad: core: add new function buf_print_ip(..) to print an IP address to an buffer

Henning Westerholt hw at skalatan.de
Mon Mar 23 14:31:53 CET 2020


Hi Daniel,

ok - I will check and if it does the same thing, use this one/remove the new one.

Cheers,

Henning

-- 
Henning Westerholt – https://skalatan.de/blog/
Kamailio services – https://gilawa.com 

-----Original Message-----
From: Daniel-Constantin Mierla <miconda at gmail.com> 
Sent: Monday, March 23, 2020 2:00 PM
To: Kamailio (SER) - Development Mailing List <sr-dev at lists.kamailio.org>; Henning Westerholt <hw at skalatan.de>
Subject: Re: [sr-dev] git:master:4acca8ad: core: add new function buf_print_ip(..) to print an IP address to an buffer

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/4acca8ad2f31f465b08f15d98c
> c4780236e2beb0
>
> 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/4acca8ad2f31f465b08f15d98c
> c4780236e2beb0.diff
> Patch: 
> https://github.com/kamailio/kamailio/commit/4acca8ad2f31f465b08f15d98c
> c4780236e2beb0.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