Fix env buffer parsing

pull/3/head
remittor 3 years ago
parent 8915461e5a
commit 3cf3782aea

@ -24,16 +24,15 @@ class EnvBuffer():
self.delim = delim self.delim = delim
self.crc_prefix = crc_prefix self.crc_prefix = crc_prefix
self.var = {} self.var = {}
if data is None: if data is not None:
return prefix_len = 4 if crc_prefix else 0
prefix_len = 4 if crc_prefix else 0 if isinstance(data, str):
if isinstance(data, str): self.var = self.parse_env(data, delim)
self.var = self.parse_env(data, delim) else:
else: end = data.find((delim + delim).encode(encoding), prefix_len)
end = data.find((delim + delim).encode(encoding), prefix_len) if (end > prefix_len):
if (end > prefix_len): data = data[prefix_len:end+1]
data = data[prefix_len:end+1] self.var = self.parse_env_b(data, delim, encoding)
self.var = self.parse_env_b(data, delim, encoding)
def parse_env_b(self, data, delim, encoding = 'ascii'): def parse_env_b(self, data, delim, encoding = 'ascii'):
dict = {} dict = {}
@ -67,9 +66,9 @@ class EnvBuffer():
if x == 0: if x == 0:
continue continue
if x >= 1: if x >= 1:
key = s[0:x] key = (s[0:x]).strip()
val = s[x+1:] if key:
dict[key.strip()] = val.strip() dict[key] = (s[x+1:]).strip()
else: else:
dict[s.strip()] = None dict[s.strip()] = None
return dict return dict

Loading…
Cancel
Save