diff --git a/Makefile.in b/Makefile.in index 44404ce..508003f 100644 --- a/Makefile.in +++ b/Makefile.in @@ -2,7 +2,7 @@ prefix = @prefix@ exec_prefix = @exec_prefix@ libdir = @libdir@ bindir = @bindir@ -LIBS="-lpopt" +LIBS=-lpopt @LIBS@ CC=gcc CFLAGS=-g -O2 -fPIC -Wall -W -I. -I./include "-D_U_=__attribute__((unused))" LIBISCSI_OBJ = lib/connect.o lib/crc32c.o lib/discovery.o lib/init.o lib/login.o lib/md5.o lib/nop.o lib/pdu.o lib/scsi-command.o lib/scsi-lowlevel.o lib/socket.o lib/sync.o diff --git a/configure.ac b/configure.ac index a98cce4..73460c5 100644 --- a/configure.ac +++ b/configure.ac @@ -15,9 +15,13 @@ fi case `uname` in Linux*) + AC_DEFINE(HAVE_GETHOSTBYNAME2,1,[Whether we have gethostbyname2 or not]) ;; AIX*) ;; + SunOS) + LIBS="$LIBS -lsocket -lnsl" + ;; *) ;; esac diff --git a/lib/socket.c b/lib/socket.c index 31bf755..ef71706 100644 --- a/lib/socket.c +++ b/lib/socket.c @@ -84,7 +84,11 @@ iscsi_connect_async(struct iscsi_context *iscsi, const char *portal, if (inet_pton(AF_INET, addr, &sin->sin_addr) != 1) { struct hostent *he; +#ifdef HAVE_GETHOSTBYNAME2 he = gethostbyname2(addr, AF_INET); +#else + he = gethostbyname(addr); +#endif if (he == NULL) { iscsi_set_error(iscsi, "Invalid target:%s " "Failed to resolve hostname.", addr);