822caf5011ea709247fb5c1478acebaf39c79c3a
[invirt/packages/python-afs.git] / afs / _pts.pyx
1 cimport afs as a
2
3 cdef class PTS:
4     cdef a.ubik_client * client
5     
6     def __cinit__(self, cell=None, sec=1):
7         cdef a.afs_int32 code
8         cdef a.afsconf_dir *cdir
9         cdef a.afsconf_cell info
10         cdef char * c_cell
11         
12         if cell is None:
13             c_cell = NULL
14         else:
15             c_cell = cell
16         
17         self.client = NULL
18         
19         code = a.rx_Init(0)
20         if code != 0:
21             raise Exception(code, "Error initializing Rx")
22         
23         cdir = a.afsconf_Open(a.AFSDIR_CLIENT_ETC_DIRPATH)
24         if cdir is NULL:
25             raise OSError(a.errno,
26                           "Error opening configuration directory (%s): %s" % \
27                               (a.AFSDIR_CLIENT_ETC_DIRPATH, a.strerror(a.errno)))
28         code = a.afsconf_GetCellInfo(cdir, c_cell, "afsprot", &info)
29         if code != 0:
30             raise Exception(code, "GetCellInfo: %s" % a.error_message(code))
31     
32     def __dealloc__(self):
33         a.rx_Finalize()