linux24-shutdown-listener-cleanly-20010119
[openafs.git] / src / rx / LINUX / rx_knet.c
index 6b7af08..e7307e2 100644 (file)
@@ -1,5 +1,13 @@
-/* Copyright 1998 Transarc Corporation - All Rights Reserved.
- *
+/*
+ * Copyright 2000, International Business Machines Corporation and others.
+ * All Rights Reserved.
+ * 
+ * This software has been released under the terms of the IBM Public
+ * License.  For details, see the LICENSE file in the top-level source
+ * directory or online at http://www.openafs.org/dl/license10.html
+ */
+
+/*
  * rx_knet.c - RX kernel send, receive and timer routines.
  *
  * Linux implementation.
@@ -7,6 +15,9 @@
 #include "../afs/param.h"
 #ifdef AFS_LINUX22_ENV
 #include "../rx/rx_kcommon.h"
+#if defined(AFS_LINUX24_ENV)
+#include "../h/smp_lock.h"
+#endif
 #include <asm/uaccess.h>
 
 /* rxk_NewSocket
@@ -30,7 +41,11 @@ struct osi_socket *rxk_NewSocket(short aport)
     code = sockp->ops->bind(sockp, (struct sockaddr*)&myaddr, sizeof(myaddr));
 
     if (code<0) {
+#if defined(AFS_LINUX24_ENV)
+       printk("sock_release(rx_socket) FIXME\n");
+#else
        sock_release(sockp);
+#endif
        return NULL;
     }
 
@@ -161,7 +176,11 @@ void osi_StopListener(void)
 
     if (rxk_ListenerPid) {
        (void) (*sys_killp)(rxk_ListenerPid, 9);
+#ifdef AFS_LINUX24_ENV
+       afs_osi_Sleep(&rxk_ListenerPid);
+#else
        rxk_ListenerPid = 0;
+#endif
     }
     sock_release(rx_socket);
     rx_socket = NULL;