Setup the rx connections for the Ubik client.
[invirt/packages/python-afs.git] / afs / afs.pxd
index e518288..06cf0d7 100644 (file)
@@ -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,31 +60,54 @@ 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 "rx/rxkad.h":
+    ctypedef char rxkad_level
+    
     enum:
         MAXKTCNAMELEN
         MAXKTCREALMLEN
     
+    enum:
+        rxkad_clear
+        rxkad_crypt
+    
+    struct ktc_encryptionKey:
+        pass
+
     struct ktc_principal:
         char name[MAXKTCNAMELEN]
         char instance[MAXKTCNAMELEN]
         char cell[MAXKTCREALMLEN]
+    
+    struct rx_securityClass:
+        pass
+    
+    rx_securityClass *rxkad_NewClientSecurityObject(rxkad_level level,
+                                                    ktc_encryptionKey *sessionKey,
+                                                    afs_int32 kvno,
+                                                    int ticketLen,
+                                                    char *ticket)
+    rx_securityClass *rxnull_NewClientSecurityObject()
+    
+    int rxs_Release(rx_securityClass *aobj)
 
-cdef extern from "afs/com_err.h":
-    char * error_message(int)
+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
     
-    # We don't look into this
-    struct ktc_encryptionKey:
-        pass
-    
     struct ktc_token:
         ktc_encryptionKey sessionKey
         short kvno
@@ -93,3 +118,10 @@ cdef extern from "afs/auth.h":
                      ktc_token *token,
                      int tokenLen,
                      ktc_principal *client)
+
+cdef extern from "afs/prclient.h":
+    enum:
+        PRSRV
+
+cdef extern from "afs/com_err.h":
+    char * error_message(int)