1
0
mirror of https://github.com/nmap/nmap.git synced 2025-12-24 08:29:04 +00:00

Move sockadd_storage helpers functions to appropriate files

This commit is contained in:
gio
2015-07-30 06:27:13 +00:00
parent e090e0901d
commit 15840e1793
3 changed files with 61 additions and 49 deletions

View File

@@ -910,3 +910,45 @@ char *executable_path(const char *argv0) {
return path;
}
int sockaddr_storage_inet_pton(const char * ip_str, struct sockaddr_storage * addr)
{
#if HAVE_IPV6
struct sockaddr_in6 * addrv6p = (struct sockaddr_in6 *) addr;
if ( 1 == inet_pton(AF_INET6, ip_str, &(addrv6p->sin6_addr)) )
{
addr->ss_family = AF_INET6;
return 1;
}
#endif // HAVE_IPV6
struct sockaddr_in * addrv4p = (struct sockaddr_in *) addr;
if ( 1 == inet_pton(AF_INET, ip_str, &(addrv4p->sin_addr)) )
{
addr->ss_family = AF_INET;
return 1;
}
return 0;
}
const char *sockaddr_storage_iptop(const struct sockaddr_storage * addr, char * dst)
{
switch (addr->ss_family){
case AF_INET:
{
const struct sockaddr_in * ipv4_ptr = (const struct sockaddr_in *) addr;
return inet_ntop(addr->ss_family, &(ipv4_ptr->sin_addr), dst, INET_ADDRSTRLEN);
}
#if HAVE_IPV6
case AF_INET6:
{
const struct sockaddr_in6 * addrv6p = (struct sockaddr_in6 *) addr;
return inet_ntop(addr->ss_family, &(addrv6p->sin6_addr), dst, INET6_ADDRSTRLEN);
}
#endif
default:
{
return NULL;
}}
}