included librouteros library to avoid conflicts with other integrations #2

This commit is contained in:
tomaae 2019-12-08 08:57:10 +01:00
parent c58184b0f7
commit b70bb9db92
9 changed files with 590 additions and 4 deletions

View file

@ -0,0 +1,31 @@
# -*- coding: UTF-8 -*-
from librouteros.exceptions import ConnectionClosed
class SocketTransport:
def __init__(self, sock):
self.sock = sock
def write(self, data):
"""
Write given bytes to socket. Loop as long as every byte in
string is written unless exception is raised.
"""
self.sock.sendall(data)
def read(self, length):
"""
Read as many bytes from socket as specified in length.
Loop as long as every byte is read unless exception is raised.
"""
data = bytearray()
while len(data) != length:
data += self.sock.recv((length - len(data)))
if not data:
raise ConnectionClosed('Connection unexpectedly closed.')
return data
def close(self):
self.sock.close()