rxkad: Use rxi_Alloc not osi_Alloc
[openafs.git] / src / rxkad / rxkad_server.c
index 7638482..be0abef 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * 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
 
 #include <afsconfig.h>
 #include <afs/param.h>
+#include <afs/stds.h>
 
+#include <roken.h>
 
-#include <afs/stds.h>
-#include <sys/types.h>
-#if (defined(AFS_AIX_ENV) && defined(KERNEL) && !defined(UKERNEL)) || defined(AFS_AUX_ENV) || defined(AFS_SUN5_ENV) 
+#if (defined(AFS_AIX_ENV) && defined(KERNEL) && !defined(UKERNEL)) || defined(AFS_AUX_ENV) || defined(AFS_SUN5_ENV)
 #include <sys/systm.h>
 #endif
-#include <time.h>
-#ifdef AFS_NT40_ENV
-#include <winsock2.h>
-#else
-#include <netinet/in.h>
-#endif
-#include <string.h>
+
+#include <afs/opr.h>
 #include <rx/rx.h>
 #include <rx/xdr.h>
-#include <des.h>
+#include <rx/rx_packet.h>
 #include <afs/afsutil.h>
-#include <des/stats.h>
+
+#include "stats.h"
 #include "private_data.h"
 #define XPRT_RXKAD_SERVER
 
@@ -40,7 +36,7 @@
  * Currently only used by the AFS/DFS protocol translator to recognize
  * Kerberos V5 tickets. The actual code to do that is provided externally.
  */
-afs_int32(*rxkad_AlternateTicketDecoder) (afs_int32, char *, afs_int32, 
+afs_int32(*rxkad_AlternateTicketDecoder) (afs_int32, char *, afs_int32,
                                          char *, char *, char *,
                                          struct ktc_encryptionKey *,
                                          afs_int32 *, afs_uint32 *,
@@ -77,14 +73,13 @@ static fc_KeySchedule random_int32_schedule;
  * seed
  */
 
-#include <assert.h>
 pthread_mutex_t rxkad_random_mutex
 #ifdef PTHREAD_MUTEX_INITIALIZER
 = PTHREAD_MUTEX_INITIALIZER
 #endif
 ;
-#define LOCK_RM assert(pthread_mutex_lock(&rxkad_random_mutex)==0)
-#define UNLOCK_RM assert(pthread_mutex_unlock(&rxkad_random_mutex)==0)
+#define LOCK_RM opr_Verify(pthread_mutex_lock(&rxkad_random_mutex)==0)
+#define UNLOCK_RM opr_Verify(pthread_mutex_unlock(&rxkad_random_mutex)==0)
 #else
 #define LOCK_RM
 #define UNLOCK_RM
@@ -144,16 +139,18 @@ rxkad_NewServerSecurityObject(rxkad_level level, void *get_key_rock,
     struct rxkad_sprivate *tsp;
     int size;
 
+    rxkad_Init();
+
     if (!get_key)
        return 0;
 
     size = sizeof(struct rx_securityClass);
-    tsc = (struct rx_securityClass *)osi_Alloc(size);
+    tsc = rxi_Alloc(size);
     memset(tsc, 0, size);
     tsc->refCount = 1;         /* caller has one reference */
     tsc->ops = &rxkad_server_ops;
     size = sizeof(struct rxkad_sprivate);
-    tsp = (struct rxkad_sprivate *)osi_Alloc(size);
+    tsp = rxi_Alloc(size);
     memset(tsp, 0, size);
     tsc->privateData = (char *)tsp;
 
@@ -174,13 +171,12 @@ int
 rxkad_CheckAuthentication(struct rx_securityClass *aobj,
                          struct rx_connection *aconn)
 {
-    struct rxkad_sconn *sconn;
+    struct rxkad_sconn *sconn = rx_GetSecurityData(aconn);
 
     /* first make sure the object exists */
-    if (!aconn->securityData)
+    if (!sconn)
        return RXKADINCONSISTENCY;
 
-    sconn = (struct rxkad_sconn *)aconn->securityData;
     return !sconn->authenticated;
 }
 
@@ -191,10 +187,9 @@ int
 rxkad_CreateChallenge(struct rx_securityClass *aobj,
                      struct rx_connection *aconn)
 {
-    struct rxkad_sconn *sconn;
+    struct rxkad_sconn *sconn = rx_GetSecurityData(aconn);
     struct rxkad_sprivate *tsp;
 
-    sconn = (struct rxkad_sconn *)aconn->securityData;
     sconn->challengeID = get_random_int32();
     sconn->authenticated = 0;  /* conn unauth. 'til we hear back */
     /* initialize level from object's minimum acceptable level */
@@ -209,13 +204,12 @@ int
 rxkad_GetChallenge(struct rx_securityClass *aobj, struct rx_connection *aconn,
                   struct rx_packet *apacket)
 {
-    struct rxkad_sconn *sconn;
+    struct rxkad_sconn *sconn = rx_GetSecurityData(aconn);
     char *challenge;
     int challengeSize;
     struct rxkad_v2Challenge c_v2;     /* version 2 */
     struct rxkad_oldChallenge c_old;   /* old style */
 
-    sconn = (struct rxkad_sconn *)aconn->securityData;
     if (rx_IsUsingPktCksum(aconn))
        sconn->cksumSeen = 1;
 
@@ -272,7 +266,7 @@ rxkad_CheckResponse(struct rx_securityClass *aobj,
     unsigned int pos;
     struct rxkad_serverinfo *rock;
 
-    sconn = (struct rxkad_sconn *)aconn->securityData;
+    sconn = rx_GetSecurityData(aconn);
     tsp = (struct rxkad_sprivate *)aobj->privateData;
 
     if (sconn->cksumSeen) {
@@ -333,7 +327,7 @@ rxkad_CheckResponse(struct rx_securityClass *aobj,
        code =
            tkt_DecodeTicket5(tix, tlen, tsp->get_key, tsp->get_key_rock,
                              kvno, client.name, client.instance, client.cell,
-                             &sessionkey, &host, &start, &end, 
+                             &sessionkey, &host, &start, &end,
                              tsp->flags & RXS_CONFIG_FLAGS_DISABLE_DOTCHECK);
        if (code)
            return code;
@@ -356,7 +350,7 @@ rxkad_CheckResponse(struct rx_securityClass *aobj,
            return code;
     }
     code = tkt_CheckTimes(start, end, time(0));
-    if (code == 0) 
+    if (code == 0)
        return RXKADNOAUTH;
     else if (code == -1)
        return RXKADEXPIRED;
@@ -422,7 +416,7 @@ rxkad_CheckResponse(struct rx_securityClass *aobj,
            return RXKADNOAUTH;
     } else {                   /* save the info for later retreival */
        int size = sizeof(struct rxkad_serverinfo);
-       rock = (struct rxkad_serverinfo *)osi_Alloc(size);
+       rock = rxi_Alloc(size);
        memset(rock, 0, size);
        rock->kvno = kvno;
        memcpy(&rock->client, &client, sizeof(rock->client));
@@ -440,7 +434,7 @@ rxkad_GetServerInfo(struct rx_connection * aconn, rxkad_level * level,
 {
     struct rxkad_sconn *sconn;
 
-    sconn = (struct rxkad_sconn *)aconn->securityData;
+    sconn = rx_GetSecurityData(aconn);
     if (sconn && sconn->authenticated && sconn->rock
        && (time(0) < sconn->expirationTime)) {
        if (level)
@@ -462,18 +456,18 @@ rxkad_GetServerInfo(struct rx_connection * aconn, rxkad_level * level,
 
 /* Set security object configuration variables */
 afs_int32 rxkad_SetConfiguration(struct rx_securityClass *aobj,
-                                 struct rx_connection *aconn, 
+                                 struct rx_connection *aconn,
                                  rx_securityConfigVariables atype,
                                         void * avalue, void **currentValue)
 {
-    struct rxkad_sprivate *private = 
+    struct rxkad_sprivate *private =
     (struct rxkad_sprivate *) aobj->privateData;
 
     switch (atype) {
     case RXS_CONFIG_FLAGS:
         if (currentValue) {
             *((afs_uint32 *)currentValue) = private->flags;
-        } else { 
+        } else {
             private->flags = (intptr_t)avalue;
         }
         break;