36ab76c38e9e201c69abf38d884e658aec6b398c
[invirt/packages/python-afs.git] / afs / afs.pxd
1 cdef extern from *:
2     ctypedef long size_t
3
4 cdef extern from "errno.h":
5     int errno
6
7 cdef extern from "string.h":
8     char * strerror(int errnum)
9     char * strncpy(char *s1, char *s2, size_t n)
10
11 cdef extern from "netinet/in.h":
12     struct in_addr:
13         int s_addr
14     struct sockaddr_in:
15         short sin_family
16         unsigned short sin_port
17         in_addr sin_addr
18         char sin_zero[8]
19
20 cdef extern from "afs/stds.h":
21     ctypedef long afs_int32
22
23 cdef extern from "afs/dirpath.h":
24     char * AFSDIR_CLIENT_ETC_DIRPATH
25
26 cdef extern from "afs/cellconfig.h":
27     enum:
28         MAXCELLCHARS
29         MAXHOSTSPERCELL
30         MAXHOSTCHARS
31     
32     # We just pass afsconf_dir structs around to other AFS functions,
33     # so this can be treated as opaque
34     struct afsconf_dir:
35         pass
36     
37     # For afsconf_cell, on the other hand, we care about everything
38     struct afsconf_cell:
39         char name[MAXCELLCHARS]
40         short numServers
41         short flags
42         sockaddr_in hostAddr[MAXHOSTSPERCELL]
43         char hostName[MAXHOSTSPERCELL][MAXHOSTCHARS]
44         char *linkedCell
45         int timeout
46      
47     afsconf_dir *afsconf_Open(char *adir)
48     int afsconf_GetCellInfo(afsconf_dir *adir,
49                             char *acellName,
50                             char *aservice,
51                             afsconf_cell *acellInfo)
52
53 cdef extern from "ubik.h":
54     enum:
55         MAXSERVERS
56     
57     # ubik_client is an opaque struct, so we don't care about its members
58     struct ubik_client:
59         pass
60
61 cdef extern from "rx/rx.h":
62     int rx_Init(int port)
63     void rx_Finalize()
64
65 cdef extern from *:
66     struct ktc_encryptionKey:
67         pass
68
69 cdef extern from "rx/rxkad.h":
70     ctypedef char rxkad_level
71     
72     enum:
73         MAXKTCNAMELEN
74         MAXKTCREALMLEN
75     
76     enum:
77         rxkad_clear
78         rxkad_crypt
79     
80     struct ktc_principal:
81         char name[MAXKTCNAMELEN]
82         char instance[MAXKTCNAMELEN]
83         char cell[MAXKTCREALMLEN]
84     
85     struct rx_securityClass:
86         pass
87     
88     rx_securityClass *rxkad_NewClientSecurityObject(rxkad_level level,
89                                                     ktc_encryptionKey *sessionKey,
90                                                     afs_int32 kvno,
91                                                     int ticketLen,
92                                                     char *ticket)
93     rx_securityClass *rxnull_NewClientSecurityObject()
94     
95     int rxs_Release(rx_securityClass *aobj)
96
97 cdef extern from "afs/auth.h":
98     enum:
99         MAXKTCTICKETLEN
100     
101     struct ktc_token:
102         ktc_encryptionKey sessionKey
103         short kvno
104         int ticketLen
105         char ticket[MAXKTCTICKETLEN]
106     
107     int ktc_GetToken(ktc_principal *server,
108                      ktc_token *token,
109                      int tokenLen,
110                      ktc_principal *client)
111
112 cdef extern from "afs/com_err.h":
113     char * error_message(int)