vpi: cleanup (thanks sb)
This commit is contained in:
parent
98cf103c65
commit
76302d7aa6
|
@ -190,21 +190,22 @@ class Initiator:
|
||||||
def send(self, message):
|
def send(self, message):
|
||||||
self.conn.send(_pack(message))
|
self.conn.send(_pack(message))
|
||||||
|
|
||||||
def recv(self):
|
def recv_packet(self, maxlen):
|
||||||
maxlen = 2048
|
|
||||||
if sys.platform == "win32":
|
if sys.platform == "win32":
|
||||||
def recv_packet():
|
while len(self.ipc_rxbuffer) < header_len:
|
||||||
while len(self.ipc_rxbuffer) < header_len:
|
self.ipc_rxbuffer += self.conn.recv(maxlen)
|
||||||
self.ipc_rxbuffer += self.conn.recv(maxlen)
|
packet_len = struct.unpack("<H", self.ipc_rxbuffer[:header_len])[0]
|
||||||
packet_len = struct.unpack("<H", self.ipc_rxbuffer[:header_len])[0]
|
while len(self.ipc_rxbuffer) < packet_len:
|
||||||
while len(self.ipc_rxbuffer) < packet_len:
|
self.ipc_rxbuffer += self.conn.recv(maxlen)
|
||||||
self.ipc_rxbuffer += self.conn.recv(maxlen)
|
packet = self.ipc_rxbuffer[header_len:packet_len]
|
||||||
packet = self.ipc_rxbuffer[header_len:packet_len]
|
self.ipc_rxbuffer = self.ipc_rxbuffer[packet_len:]
|
||||||
self.ipc_rxbuffer = self.ipc_rxbuffer[packet_len:]
|
|
||||||
return packet
|
|
||||||
packet = recv_packet()
|
|
||||||
else:
|
else:
|
||||||
packet = self.conn.recv(maxlen)
|
packet = self.conn.recv(maxlen)
|
||||||
|
return packet
|
||||||
|
|
||||||
|
def recv(self):
|
||||||
|
maxlen = 2048
|
||||||
|
packet = self.recv_packet(maxlen)
|
||||||
if len(packet) < 1:
|
if len(packet) < 1:
|
||||||
return None
|
return None
|
||||||
if len(packet) >= maxlen:
|
if len(packet) >= maxlen:
|
||||||
|
|
12
vpi/ipc.c
12
vpi/ipc.c
|
@ -132,17 +132,17 @@ static int ipc_receive_packet(struct ipc_softc *sc, unsigned char *buffer) {
|
||||||
int len;
|
int len;
|
||||||
int packet_len;
|
int packet_len;
|
||||||
/* ensure we have packet header */
|
/* ensure we have packet header */
|
||||||
while (ipc_rxlen < WIN32_HEADER_LEN) {
|
while(ipc_rxlen < WIN32_HEADER_LEN) {
|
||||||
len = recv(sc->socket, (char *)&ipc_rxbuffer[ipc_rxlen], MAX_LEN, 0);
|
len = recv(sc->socket, (char *)&ipc_rxbuffer[ipc_rxlen], MAX_LEN, 0);
|
||||||
if (len)
|
if(len)
|
||||||
ipc_rxlen += len;
|
ipc_rxlen += len;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* compute packet length and ensure we have the payload */
|
/* compute packet length and ensure we have the payload */
|
||||||
packet_len = ((ipc_rxbuffer[1] << 8) | (ipc_rxbuffer[0]));
|
packet_len = (ipc_rxbuffer[1] << 8) | ipc_rxbuffer[0];
|
||||||
while (ipc_rxlen < packet_len) {
|
while(ipc_rxlen < packet_len) {
|
||||||
len = recv(sc->socket, (char *) &ipc_rxbuffer[ipc_rxlen], MAX_LEN, 0);
|
len = recv(sc->socket, (char *)&ipc_rxbuffer[ipc_rxlen], MAX_LEN, 0);
|
||||||
if (len)
|
if(len)
|
||||||
ipc_rxlen += len;
|
ipc_rxlen += len;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue