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:
@@ -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;
|
||||
}}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user