Esempio n. 1
0
    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)
Esempio n. 2
0
    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)
Esempio n. 3
0
 def getData(self, soFar=0):
     if self['pTriggers'] != 0:
         self['cTriggers'] = len(self['pTriggers'])
     return NDR.getData(self, soFar)
Esempio n. 4
0
 def getData(self, soFar=0):
     if self['pDataItems'] != 0:
         self['cDataItems'] = len(self['pDataItems'])
     return NDR.getData(self, soFar)
Esempio n. 5
0
 def getData(self, soFar=0):
     self['cbRequiredPrivileges'] = len(self['pRequiredPrivileges'])
     return NDR.getData(self, soFar=0)
Esempio n. 6
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)
Esempio n. 7
0
 def __getitem__(self, key):
     if key == 'Data':
         return self.fields[key].decode('utf-16le')
     else:
         return NDR.__getitem__(self, key)