View | Details | Raw Unified | Return to bug 748
Collapse All | Expand All

(-)configure.ac (-4 / +69 lines)
Lines 209-218 Link Here
209
	AC_DEFINE(DISABLE_UTMP)
209
	AC_DEFINE(DISABLE_UTMP)
210
	AC_DEFINE(LOCKED_PASSWD_STRING, "*")
210
	AC_DEFINE(LOCKED_PASSWD_STRING, "*")
211
	AC_DEFINE(SPT_TYPE,SPT_PSTAT)
211
	AC_DEFINE(SPT_TYPE,SPT_PSTAT)
212
	case "$host" in
212
	AC_CHECK_FUNC(getaddrinfo, [ check_for_hpux_broken_getaddrinfo=1 ])
213
	*-*-hpux11.11*)
214
		AC_DEFINE(BROKEN_GETADDRINFO);;
215
	esac
216
	LIBS="$LIBS -lsec"
213
	LIBS="$LIBS -lsec"
217
	AC_CHECK_LIB(xnet, t_error, ,AC_MSG_ERROR([*** -lxnet needed on HP-UX - check config.log ***]))
214
	AC_CHECK_LIB(xnet, t_error, ,AC_MSG_ERROR([*** -lxnet needed on HP-UX - check config.log ***]))
218
	;;
215
	;;
Lines 980-985 Link Here
980
		[
977
		[
981
			AC_MSG_RESULT(no)
978
			AC_MSG_RESULT(no)
982
			AC_DEFINE(SSHD_ACQUIRES_CTTY)
979
			AC_DEFINE(SSHD_ACQUIRES_CTTY)
980
		]
981
	)
982
fi
983
984
if test ! -z "$check_for_hpux_broken_getaddrinfo"; then
985
	AC_MSG_CHECKING(for broken getaddrinfo)
986
	AC_TRY_RUN(
987
		[
988
#include <stdio.h>
989
#include <sys/socket.h>
990
#include <netdb.h>
991
#include <errno.h>
992
#include <netinet/in.h>
993
994
#define TEST_PORT "2222"
995
996
int
997
main(void)
998
{
999
	int err, sock;
1000
	struct addrinfo *gai_ai, *ai, hints;
1001
	char ntop[NI_MAXHOST], strport[NI_MAXSERV], *name = NULL;
1002
1003
	memset(&hints, 0, sizeof(hints));
1004
	hints.ai_family = PF_UNSPEC;
1005
	hints.ai_socktype = SOCK_STREAM;
1006
	hints.ai_flags = AI_PASSIVE;
1007
1008
	err = getaddrinfo(name, TEST_PORT, &hints, &gai_ai);
1009
	if (err != 0) {
1010
		fprintf(stderr, "getaddrinfo failed (%s)", gai_strerror(err));
1011
		exit(1);
1012
	}
1013
1014
	for (ai = gai_ai; ai != NULL; ai = ai->ai_next) {
1015
		if (ai->ai_family != AF_INET6)
1016
			continue;
1017
1018
		err = getnameinfo(ai->ai_addr, ai->ai_addrlen, ntop,
1019
		    sizeof(ntop), strport, sizeof(strport),
1020
		    NI_NUMERICHOST|NI_NUMERICSERV);
1021
1022
		if (err != 0) {
1023
			if (err == EAI_SYSTEM)
1024
				perror("getnameinfo EAI_SYSTEM");
1025
			else
1026
				fprintf(stderr, "getnameinfo failed: %s\n",
1027
				    gai_strerror(err));
1028
			exit(2);
1029
		}
1030
1031
		sock = socket(ai->ai_family, ai->ai_socktype, ai->ai_protocol);
1032
		if (sock < 0)
1033
			perror("socket");
1034
		if (bind(sock, ai->ai_addr, ai->ai_addrlen) < 0) {
1035
			if (errno == EBADF)
1036
				exit(3);
1037
		}
1038
	}
1039
	exit(0);
1040
}
1041
		],
1042
		[
1043
			AC_MSG_RESULT(yes)
1044
		],
1045
		[
1046
			AC_MSG_RESULT(no)
1047
			AC_DEFINE(BROKEN_GETADDRINFO)
983
		]
1048
		]
984
	)
1049
	)
985
fi
1050
fi

Return to bug 748