From ceab28a3b461ae9e5e54be3628aeb32115171831 Mon Sep 17 00:00:00 2001 From: Evan Broder Date: Sun, 21 Dec 2008 15:21:13 -0600 Subject: [PATCH] Setup the rx connections for the Ubik client. Signed-off-by: Evan Broder --- afs/_pts.pyx | 10 ++++++++++ afs/afs.pxd | 30 ++++++++++++++++++++++-------- 2 files changed, 32 insertions(+), 8 deletions(-) diff --git a/afs/_pts.pyx b/afs/_pts.pyx index 66fefd9..df7397c 100644 --- a/afs/_pts.pyx +++ b/afs/_pts.pyx @@ -11,6 +11,8 @@ cdef class PTS: cdef ktc_principal prin cdef ktc_token token cdef rx_securityClass *sc + cdef rx_connection *serverconns[MAXSERVERS] + cdef int i if cell is None: c_cell = NULL @@ -57,6 +59,14 @@ cdef class PTS: else: sec = 2 + memset(serverconns, 0, sizeof(serverconns)) + for 0 <= i < info.numServers: + serverconns[i] = rx_NewConnection(info.hostAddr[i].sin_addr.s_addr, + info.hostAddr[i].sin_port, + PRSRV, + sc, + sec) + code = rxs_Release(sc) def __dealloc__(self): diff --git a/afs/afs.pxd b/afs/afs.pxd index 36ab76c..06cf0d7 100644 --- a/afs/afs.pxd +++ b/afs/afs.pxd @@ -7,6 +7,7 @@ cdef extern from "errno.h": cdef extern from "string.h": char * strerror(int errnum) char * strncpy(char *s1, char *s2, size_t n) + void * memset(void *b, int c, size_t n) cdef extern from "netinet/in.h": struct in_addr: @@ -18,6 +19,7 @@ cdef extern from "netinet/in.h": char sin_zero[8] cdef extern from "afs/stds.h": + ctypedef unsigned long afs_uint32 ctypedef long afs_int32 cdef extern from "afs/dirpath.h": @@ -58,14 +60,6 @@ cdef extern from "ubik.h": struct ubik_client: pass -cdef extern from "rx/rx.h": - int rx_Init(int port) - void rx_Finalize() - -cdef extern from *: - struct ktc_encryptionKey: - pass - cdef extern from "rx/rxkad.h": ctypedef char rxkad_level @@ -77,6 +71,9 @@ cdef extern from "rx/rxkad.h": rxkad_clear rxkad_crypt + struct ktc_encryptionKey: + pass + struct ktc_principal: char name[MAXKTCNAMELEN] char instance[MAXKTCNAMELEN] @@ -94,6 +91,19 @@ cdef extern from "rx/rxkad.h": int rxs_Release(rx_securityClass *aobj) +cdef extern from "rx/rx.h": + int rx_Init(int port) + void rx_Finalize() + + struct rx_connection: + pass + + rx_connection *rx_NewConnection(afs_uint32 shost, + unsigned short sport, + unsigned short sservice, + rx_securityClass *securityObject, + int serviceSecurityIndex) + cdef extern from "afs/auth.h": enum: MAXKTCTICKETLEN @@ -109,5 +119,9 @@ cdef extern from "afs/auth.h": int tokenLen, ktc_principal *client) +cdef extern from "afs/prclient.h": + enum: + PRSRV + cdef extern from "afs/com_err.h": char * error_message(int) -- 1.7.9.5