def __init__(self, data=''): self.set_netname(0) self.set_remark(0) self.set_path(0) self.set_passwd(0) if data: p_netname, self._type, p_remark, self._permissions, self._max_uses, \ self._current_uses, p_path, p_passwd = unpack('<LLLLLLLL', data[: 8 * 4]) data = data[8 * 4:] if p_netname: self.set_netname(ndrutils.NDRString(data)) dlen = self.get_netname().get_max_len() * 2 pad = 0 if dlen % 4: pad = 4 - dlen % 4 data = data[12 + dlen + pad:] if p_remark: self.set_remark(ndrutils.NDRString(data)) dlen = self.get_remark().get_max_len() * 2 pad = 0 if dlen % 4: pad = 4 - dlen % 4 data = data[12 + dlen + pad:] if p_path: self.set_path(ndrutils.NDRString(data)) dlen = self.get_path().get_max_len() * 2 pad = 0 if dlen % 4: pad = 4 - dlen % 4 data = data[12 + dlen + pad:] if p_passwd: self.set_passwd(ndrutils.NDRString(data)) dlen = self.get_passwd().get_max_len() * 2 pad = 0 if dlen % 4: pad = 4 - dlen % 4 data = data[12 + dlen + pad:]
def set_server(self, name): ss = ndrutils.NDRString() ss.set_string(name) self.__sptr.set_pointer(ss) data = self.__sptr.rawData() self.get_bytes()[:-4] = array.array('B', data)