def __getitem__(self, key): if key == 'Data': try: return ''.join([chr(i) for i in self.fields[key]]) except ValueError: # We might have Unicode chars in here, let's use unichr instead LOG.debug('ValueError exception on %s' % self.fields[key]) LOG.debug('Switching to unichr()') return ''.join([chr(i) for i in self.fields[key]]) else: return NDR.__getitem__(self, key)
def __setitem__(self, key, value): if key == 'Data': try: self.fields[key] = value.encode('utf-16le') except UnicodeDecodeError: import sys self.fields[key] = value.decode( sys.getfilesystemencoding()).encode('utf-16le') self.data = None # force recompute else: return NDR.__setitem__(self, key, value)
def getData(self, soFar=0): if self['pTriggers'] != 0: self['cTriggers'] = len(self['pTriggers']) return NDR.getData(self, soFar)
def getData(self, soFar=0): if self['pDataItems'] != 0: self['cDataItems'] = len(self['pDataItems']) return NDR.getData(self, soFar)
def getData(self, soFar=0): self['cbRequiredPrivileges'] = len(self['pRequiredPrivileges']) return NDR.getData(self, soFar=0)
def __init__(self, data=None, isNDR64=False): NDR.__init__(self, None, isNDR64) self.fields['Data'].item = SC_ACTION if data is not None: self.fromString(data)
def __getitem__(self, key): if key == 'Data': return self.fields[key].decode('utf-16le') else: return NDR.__getitem__(self, key)