rx-provide-binding-version-of-init-20040728
[openafs.git] / src / rx / LINUX / rx_knet.c
index 148422b..800ca02 100644 (file)
@@ -30,20 +30,24 @@ RCSID
  * open and bind RX socket
  */
 struct osi_socket *
-rxk_NewSocket(short aport)
+rxk_NewSocketHost(afs_uint32 ahost, short aport)
 {
     struct socket *sockp;
     struct sockaddr_in myaddr;
     int code;
 
 
+#ifdef LINUX_KERNEL_IS_SELINUX
+    code = sock_create(AF_INET, SOCK_DGRAM, IPPROTO_UDP, &sockp, 0);
+#else
     code = sock_create(AF_INET, SOCK_DGRAM, IPPROTO_UDP, &sockp);
+#endif
     if (code < 0)
        return NULL;
 
     /* Bind socket */
     myaddr.sin_family = AF_INET;
-    myaddr.sin_addr.s_addr = htonl(INADDR_ANY);
+    myaddr.sin_addr.s_addr = ahost;
     myaddr.sin_port = aport;
     code =
        sockp->ops->bind(sockp, (struct sockaddr *)&myaddr, sizeof(myaddr));
@@ -60,6 +64,11 @@ rxk_NewSocket(short aport)
     return (struct osi_socket *)sockp;
 }
 
+struct osi_socket *
+rxk_NewSocket(short aport)
+{
+    return rxk_NewSocketHost(htonl(INADDR_ANY), aport);
+}
 
 /* free socket allocated by osi_NetSocket */
 int