e5182880effc526d643c81b8309f1473f9b1be32
[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 "rx/rxkad.h":
66     enum:
67         MAXKTCNAMELEN
68         MAXKTCREALMLEN
69     
70     struct ktc_principal:
71         char name[MAXKTCNAMELEN]
72         char instance[MAXKTCNAMELEN]
73         char cell[MAXKTCREALMLEN]
74
75 cdef extern from "afs/com_err.h":
76     char * error_message(int)
77
78 cdef extern from "afs/auth.h":
79     enum:
80         MAXKTCTICKETLEN
81     
82     # We don't look into this
83     struct ktc_encryptionKey:
84         pass
85     
86     struct ktc_token:
87         ktc_encryptionKey sessionKey
88         short kvno
89         int ticketLen
90         char ticket[MAXKTCTICKETLEN]
91     
92     int ktc_GetToken(ktc_principal *server,
93                      ktc_token *token,
94                      int tokenLen,
95                      ktc_principal *client)