[PVFS2-CVS] commit by rbross in pvfs2/src/io/bmi/bmi_tcp: sockio.c

CVS commit program cvs at parl.clemson.edu
Wed Feb 9 16:43:08 EST 2005


Update of /projects/cvsroot/pvfs2/src/io/bmi/bmi_tcp
In directory parlweb:/tmp/cvs-serv30457/src/io/bmi/bmi_tcp

Modified Files:
	sockio.c 
Log Message:
Added workaround for missing gethostbyname.


Index: sockio.c
===================================================================
RCS file: /projects/cvsroot/pvfs2/src/io/bmi/bmi_tcp/sockio.c,v
diff -p -u -r1.15 -r1.16
--- sockio.c	9 Feb 2005 21:00:20 -0000	1.15
+++ sockio.c	9 Feb 2005 21:43:08 -0000	1.16
@@ -19,6 +19,9 @@
 #ifdef HAVE_NETDB_H
 #include <netdb.h>
 #endif
+#ifdef HAVE_ARPA_INET_H
+#include <arpa/inet.h>
+#endif
 #include <sys/poll.h>
 #include <sys/uio.h>
 
@@ -75,9 +78,11 @@ int BMI_sockio_connect_sock(int sockd,
     return (sockd);
 }
 
+#ifdef HAVE_GETHOSTBYNAME
+/* gethostbyname version */
 int BMI_sockio_init_sock(struct sockaddr *saddrp,
-	      const char *name,
-	      int service)
+			 const char *name,
+			 int service)
 {
     struct hostent *hep;
 
@@ -99,6 +104,35 @@ int BMI_sockio_init_sock(struct sockaddr
 	  hep->h_length);
     return (0);
 }
+#else
+/* inet_aton version */
+int BMI_sockio_init_sock(struct sockaddr *saddrp,
+			 const char *name,
+			 int service)
+{
+    int ret;
+    struct in_addr addr;
+
+    bzero((char *) saddrp, sizeof(struct sockaddr_in));
+    if (name == NULL)
+    {
+	ret = inet_aton("127.0.0.1", &addr);
+    }
+    else
+    {
+	ret = inet_aton(name, &addr);
+    }
+
+    if (ret) return -1;
+
+    ((struct sockaddr_in *) saddrp)->sin_family = AF_INET;
+    ((struct sockaddr_in *) saddrp)->sin_port = htons((u_short) service);
+    bcopy(&addr, (char *) &(((struct sockaddr_in *) saddrp)->sin_addr),
+	  sizeof(addr));
+
+    return 0;
+}
+#endif
 
 
 /* blocking receive */



More information about the PVFS2-CVS mailing list