| 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 |     void * memset(void *b, int c, size_t n) | 
|---|
| 11 |     void * memcpy(void *s1, void *s2, size_t n) | 
|---|
| 12 |     size_t strlen(char *s) | 
|---|
| 13 |  | 
|---|
| 14 | cdef extern from "stdlib.h": | 
|---|
| 15 |      void * malloc(size_t size) | 
|---|
| 16 |      void free(void *) | 
|---|
| 17 |  | 
|---|
| 18 | cdef extern from "netinet/in.h": | 
|---|
| 19 |     struct in_addr: | 
|---|
| 20 |         int s_addr | 
|---|
| 21 |     struct sockaddr_in: | 
|---|
| 22 |         short sin_family | 
|---|
| 23 |         unsigned short sin_port | 
|---|
| 24 |         in_addr sin_addr | 
|---|
| 25 |         char sin_zero[8] | 
|---|
| 26 |  | 
|---|
| 27 | cdef extern from "afs/stds.h": | 
|---|
| 28 |     ctypedef unsigned long afs_uint32 | 
|---|
| 29 |     ctypedef long afs_int32 | 
|---|
| 30 |  | 
|---|
| 31 | cdef extern from "afs/dirpath.h": | 
|---|
| 32 |     char * AFSDIR_CLIENT_ETC_DIRPATH | 
|---|
| 33 |  | 
|---|
| 34 | cdef extern from "afs/cellconfig.h": | 
|---|
| 35 |     enum: | 
|---|
| 36 |         MAXCELLCHARS | 
|---|
| 37 |         MAXHOSTSPERCELL | 
|---|
| 38 |         MAXHOSTCHARS | 
|---|
| 39 |  | 
|---|
| 40 |     # We just pass afsconf_dir structs around to other AFS functions, | 
|---|
| 41 |     # so this can be treated as opaque | 
|---|
| 42 |     struct afsconf_dir: | 
|---|
| 43 |         pass | 
|---|
| 44 |  | 
|---|
| 45 |     # For afsconf_cell, on the other hand, we care about everything | 
|---|
| 46 |     struct afsconf_cell: | 
|---|
| 47 |         char name[MAXCELLCHARS] | 
|---|
| 48 |         short numServers | 
|---|
| 49 |         short flags | 
|---|
| 50 |         sockaddr_in hostAddr[MAXHOSTSPERCELL] | 
|---|
| 51 |         char hostName[MAXHOSTSPERCELL][MAXHOSTCHARS] | 
|---|
| 52 |         char *linkedCell | 
|---|
| 53 |         int timeout | 
|---|
| 54 |  | 
|---|
| 55 |     afsconf_dir *afsconf_Open(char *adir) | 
|---|
| 56 |     int afsconf_GetCellInfo(afsconf_dir *adir, | 
|---|
| 57 |                             char *acellName, | 
|---|
| 58 |                             char *aservice, | 
|---|
| 59 |                             afsconf_cell *acellInfo) | 
|---|
| 60 |  | 
|---|
| 61 | cdef extern from "rx/rxkad.h": | 
|---|
| 62 |     ctypedef char rxkad_level | 
|---|
| 63 |  | 
|---|
| 64 |     enum: | 
|---|
| 65 |         MAXKTCNAMELEN | 
|---|
| 66 |         MAXKTCREALMLEN | 
|---|
| 67 |  | 
|---|
| 68 |     enum: | 
|---|
| 69 |         rxkad_clear | 
|---|
| 70 |         rxkad_crypt | 
|---|
| 71 |  | 
|---|
| 72 |     struct ktc_encryptionKey: | 
|---|
| 73 |         pass | 
|---|
| 74 |  | 
|---|
| 75 |     struct ktc_principal: | 
|---|
| 76 |         char name[MAXKTCNAMELEN] | 
|---|
| 77 |         char instance[MAXKTCNAMELEN] | 
|---|
| 78 |         char cell[MAXKTCREALMLEN] | 
|---|
| 79 |  | 
|---|
| 80 |     struct rx_securityClass: | 
|---|
| 81 |         pass | 
|---|
| 82 |  | 
|---|
| 83 |     rx_securityClass *rxkad_NewClientSecurityObject(rxkad_level level, | 
|---|
| 84 |                                                     ktc_encryptionKey *sessionKey, | 
|---|
| 85 |                                                     afs_int32 kvno, | 
|---|
| 86 |                                                     int ticketLen, | 
|---|
| 87 |                                                     char *ticket) | 
|---|
| 88 |     rx_securityClass *rxnull_NewClientSecurityObject() | 
|---|
| 89 |  | 
|---|
| 90 |     int rxs_Release(rx_securityClass *aobj) | 
|---|
| 91 |  | 
|---|
| 92 | cdef extern from "rx/rx.h": | 
|---|
| 93 |     int rx_Init(int port) | 
|---|
| 94 |     void rx_Finalize() | 
|---|
| 95 |  | 
|---|
| 96 |     struct rx_connection: | 
|---|
| 97 |         pass | 
|---|
| 98 |  | 
|---|
| 99 |     rx_connection *rx_NewConnection(afs_uint32 shost, | 
|---|
| 100 |                                     unsigned short sport, | 
|---|
| 101 |                                     unsigned short sservice, | 
|---|
| 102 |                                     rx_securityClass *securityObject, | 
|---|
| 103 |                                     int serviceSecurityIndex) | 
|---|
| 104 |  | 
|---|
| 105 | cdef extern from "afs/auth.h": | 
|---|
| 106 |     enum: | 
|---|
| 107 |         MAXKTCTICKETLEN | 
|---|
| 108 |  | 
|---|
| 109 |     struct ktc_token: | 
|---|
| 110 |         ktc_encryptionKey sessionKey | 
|---|
| 111 |         short kvno | 
|---|
| 112 |         int ticketLen | 
|---|
| 113 |         char ticket[MAXKTCTICKETLEN] | 
|---|
| 114 |  | 
|---|
| 115 |     int ktc_GetToken(ktc_principal *server, | 
|---|
| 116 |                      ktc_token *token, | 
|---|
| 117 |                      int tokenLen, | 
|---|
| 118 |                      ktc_principal *client) | 
|---|
| 119 |  | 
|---|
| 120 | cdef extern from "afs/prclient.h": | 
|---|
| 121 |     enum: | 
|---|
| 122 |         PRSRV | 
|---|
| 123 |  | 
|---|
| 124 | cdef extern from "ubik.h": | 
|---|
| 125 |     enum: | 
|---|
| 126 |         MAXSERVERS | 
|---|
| 127 |  | 
|---|
| 128 |     # ubik_client is an opaque struct, so we don't care about its members | 
|---|
| 129 |     struct ubik_client: | 
|---|
| 130 |         pass | 
|---|
| 131 |  | 
|---|
| 132 |     int ubik_ClientInit(rx_connection **serverconns, | 
|---|
| 133 |                         ubik_client **aclient) | 
|---|
| 134 |     afs_int32 ubik_ClientDestroy(ubik_client *aclient) | 
|---|
| 135 |  | 
|---|
| 136 | cdef extern from "afs/com_err.h": | 
|---|
| 137 |     char * afs_error_message(int) | 
|---|
| 138 |  | 
|---|
| 139 | # All AFS error tables | 
|---|
| 140 | cdef extern from "afs/auth.h": | 
|---|
| 141 |     void initialize_KTC_error_table() | 
|---|
| 142 | cdef extern from "afs/cellconfig.h": | 
|---|
| 143 |     void initialize_ACFG_error_table() | 
|---|
| 144 | cdef extern from "afs/pterror.h": | 
|---|
| 145 |     void initialize_PT_error_table() | 
|---|
| 146 | cdef extern from "rx/rxkad.h": | 
|---|
| 147 |     void initialize_RXK_error_table() | 
|---|
| 148 | cdef extern from "ubik.h": | 
|---|
| 149 |     void initialize_U_error_table() | 
|---|
| 150 |  | 
|---|
| 151 | cdef extern from "afs/vice.h": | 
|---|
| 152 |     struct ViceIoctl: | 
|---|
| 153 |         void *cin "in" | 
|---|
| 154 |         void *out | 
|---|
| 155 |         unsigned short out_size | 
|---|
| 156 |         unsigned short in_size | 
|---|
| 157 |  | 
|---|
| 158 | cdef extern from "afs/venus.h": | 
|---|
| 159 |     enum: | 
|---|
| 160 |         # PIOCTLS to Venus that we use | 
|---|
| 161 |         VIOCGETAL, VIOC_GETVCXSTATUS2, VIOCSETAL, VIOC_FILE_CELL_NAME | 
|---|
| 162 |  | 
|---|
| 163 | # pioctl doesn't actually have a header, so we have to define it here | 
|---|
| 164 | cdef extern int pioctl(char *, afs_int32, ViceIoctl *, afs_int32) | 
|---|
| 165 | cdef int pioctl_read(char *, afs_int32, void *, unsigned short, afs_int32) except -1 | 
|---|
| 166 | cdef int pioctl_write(char *, afs_int32, char *, afs_int32) except -1 | 
|---|
| 167 |  | 
|---|