Correctie lange antwoorden (1500).

- Extra check op '\r' in recv en loop totdat die gevonden is.
 - decode verplaats naar recv functie.
This commit is contained in:
Marcel Nijenhof
2019-02-15 15:35:47 +01:00
parent 3479166321
commit a5e7d09aa5
2 changed files with 13 additions and 10 deletions

View File

@@ -107,7 +107,10 @@ send a sip command to the server
recieve a answer from the sip server recieve a answer from the sip server
""" """
return(self._socket.recv(4096)) buf=""
while re.search("\r$", buf) == None:
buf += self._socket.recv(4096).decode('utf-8')
return(buf)
def login(self): def login(self):
"""login() """login()
@@ -118,8 +121,8 @@ Raises a LmwLoginFailure exception on failure
li="LI " + self.user + "," + self.password + "\r" li="LI " + self.user + "," + self.password + "\r"
self.send(li) self.send(li)
d = self.recv() d = self.recv()
if (d.decode('ascii')[0] != '!'): if (d[0] != '!'):
raise LmwLoginFailure(self.user + ":" + d.decode('ascii')) raise LmwLoginFailure(self.user + ":" + d)
def ti(self): def ti(self):
"""ti() """ti()
@@ -131,9 +134,9 @@ Raises a LmwCmdWarn of failure
ti="TI " + self.meetnet + "\r" ti="TI " + self.meetnet + "\r"
self.send(ti) self.send(ti)
d = self.recv() d = self.recv()
if (d.decode('ascii')[0] != '!'): if (d('ascii')[0] != '!'):
raise LmwCmdWarn("TI " + self.meetnet +":" + d.decode('ascii')) raise LmwCmdWarn("TI " + self.meetnet +":" + d)
return (d.decode('ascii')[2:-1]) return (d[2:-1])
def cmd(self, process, location, parameter, time_delta, day, def cmd(self, process, location, parameter, time_delta, day,
time_of_day, cmd_type="DATA"): time_of_day, cmd_type="DATA"):
@@ -166,9 +169,9 @@ Returns:
self.send(cmdstr) self.send(cmdstr)
d = self.recv() d = self.recv()
if (d.decode('ascii')[0] != '!'): if (d[0] != '!'):
raise LmwCmdWarn(d.decode('ascii')) raise LmwCmdWarn(d)
return (d.decode('ascii')[2:-1]) return (d[2:-1])
def value(self, process, location, parameter, day = None, def value(self, process, location, parameter, day = None,
time_of_day = None): time_of_day = None):

2
siprun
View File

@@ -63,7 +63,7 @@ def main():
cmd = cmd.replace('\n', '\r') cmd = cmd.replace('\n', '\r')
print("> [%s]" % (cmd.strip('\r'))) print("> [%s]" % (cmd.strip('\r')))
lmwsip.send(cmd) lmwsip.send(cmd)
print("< [%s]" % (lmwsip.recv().decode('utf-8').strip('\r'))) print("< [%s]" % (lmwsip.recv().strip('\r')))
f.close() f.close()
if __name__ == "__main__": if __name__ == "__main__":