diff options
| author | Jelmer Vernooij <jelmer@jelmer.uk> | 2016-12-28 13:50:14 +0000 | 
|---|---|---|
| committer | dx <dx@dxzone.com.ar> | 2016-12-31 17:40:09 -0300 | 
| commit | 2e8523b30bafa86685655001457a2615936b646a (patch) | |
| tree | 4e0c9c6509d1b3aeca395bc17e258f4a38b48325 /lib | |
| parent | 7801298f6a855cda0c62433d45ec717d2773ef73 (diff) | |
Use NI_MAXHOST rather than HOST_NAME_MAX for host lengths.
This constant is always available and meant to be used with
getnameinfo().
This fixes the build on Debian GNU/kFreeBSD.
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/ftutil.c | 14 | ||||
| -rw-r--r-- | lib/ftutil.h | 12 | 
2 files changed, 8 insertions, 18 deletions
| diff --git a/lib/ftutil.c b/lib/ftutil.c index 3c79ba1f..8da88de9 100644 --- a/lib/ftutil.c +++ b/lib/ftutil.c @@ -62,13 +62,13 @@ int ft_listen(struct sockaddr_storage *saddr_ptr, char *host, char *port, int co  		if (scolon) {  			if (for_bitlbee_client) {  				*scolon = '\0'; -				strncpy(host, ftlisten, HOST_NAME_MAX); +				strncpy(host, ftlisten, NI_MAXHOST);  				*scolon = ';';  			} else { -				strncpy(host, scolon + 1, HOST_NAME_MAX); +				strncpy(host, scolon + 1, NI_MAXHOST);  			}  		} else { -			strncpy(host, ftlisten, HOST_NAME_MAX); +			strncpy(host, ftlisten, NI_MAXHOST);  		}  		if ((colon = strchr(host, ':'))) { @@ -77,13 +77,13 @@ int ft_listen(struct sockaddr_storage *saddr_ptr, char *host, char *port, int co  		}  	} else if (copy_fd >= 0 && getsockname(copy_fd, (struct sockaddr*) &saddrs, &ssize) == 0 &&  	           (saddrs.ss_family == AF_INET || saddrs.ss_family == AF_INET6) && -	           getnameinfo((struct sockaddr*) &saddrs, ssize, host, HOST_NAME_MAX, +	           getnameinfo((struct sockaddr*) &saddrs, ssize, host, NI_MAXHOST,  	                       NULL, 0, NI_NUMERICHOST) == 0) {  		/* We just took our local address on copy_fd, which is likely to be a  		   sensible address from which we can do a file transfer now - the  		   most sensible we can get easily. */  	} else { -		ASSERTSOCKOP(gethostname(host, HOST_NAME_MAX + 1), "gethostname()"); +		ASSERTSOCKOP(gethostname(host, NI_MAXHOST), "gethostname()");  	}  	memset(&hints, 0, sizeof(struct addrinfo)); @@ -108,7 +108,7 @@ int ft_listen(struct sockaddr_storage *saddr_ptr, char *host, char *port, int co  	if (!inet_ntop(saddr->ss_family, saddr->ss_family == AF_INET ?  	               ( void * ) &(( struct sockaddr_in * ) saddr)->sin_addr.s_addr :  	               ( void * ) &(( struct sockaddr_in6 * ) saddr)->sin6_addr.s6_addr, -	               host, HOST_NAME_MAX)) { +	               host, NI_MAXHOST)) {  		strcpy(errmsg, "inet_ntop failed on listening socket");  		return -1;  	} @@ -127,7 +127,7 @@ int ft_listen(struct sockaddr_storage *saddr_ptr, char *host, char *port, int co  	}  	/* I hate static-length strings.. */ -	host[HOST_NAME_MAX - 1] = '\0'; +	host[NI_MAXHOST - 1] = '\0';  	port[5] = '\0';  	return fd; diff --git a/lib/ftutil.h b/lib/ftutil.h index d8317b2f..054d6534 100644 --- a/lib/ftutil.h +++ b/lib/ftutil.h @@ -25,17 +25,7 @@  #define AI_NUMERICSERV 0x0400   /* Don't use name resolution.  */  #endif -/* Some ifdefs for ulibc and apparently also BSD (Thanks to Whoopie) */ -#ifndef HOST_NAME_MAX -#include <sys/param.h> -#ifdef MAXHOSTNAMELEN -#define HOST_NAME_MAX MAXHOSTNAMELEN -#else -#define HOST_NAME_MAX 255 -#endif -#endif -  /* This function should be used with care. host should be AT LEAST a -   char[HOST_NAME_MAX+1] and port AT LEAST a char[6]. */ +   char[NI_MAXHOST+1] and port AT LEAST a char[6]. */  int ft_listen(struct sockaddr_storage *saddr_ptr, char *host, char *port, int copy_fd, int for_bitlbee_client,                char **errptr); | 
