Skip to content
Snippets Groups Projects
Commit 4b2159d1 authored by root's avatar root
Browse files

appliance_setup: fix some 8888 bugs

parent 9cb2b133
No related branches found
No related tags found
No related merge requests found
......@@ -225,16 +225,17 @@ import re
class Ether8888Packet:
ethHeaderFmt = "!6s6sH"
headerFmt = "<2s2s2sHH"
localAddr="\x00\x00\x00\x00\x00\x00"
localAddr="\0\0\0\0\0\0"
remoteAddr="\xff\xff\xff\xff\xff\xff"
proto = 0x8888
zero = "\0\0"
def __init__ (self, localAddr="\x00\x00\x00\x00\x00\x00", remoteAddr="\xff\xff\xff\xff\xff\xff", proto=0x8888):
self.proto = proto
self.localAddr = localAddr
self.remoteAddr = remoteAddr
def decode (self, data):
self.dstAddr, self.srcAddr, self.proto = struct.unpack(self.ethHeaderFmt,data[:14])
self.localAddr, self.remoteAddr, self.proto = struct.unpack(self.ethHeaderFmt,data[:14])
if self.proto != 0x8888:
# FIXME: Error message about invalid packet
return False
......@@ -250,7 +251,9 @@ class Ether8888Packet:
def encode (self, cmd, unknown, nrPackets, dataLen, data):
# Ethernet II header
d = struct.pack(self.ethHeaderFmt, self.dstAddr, self.srcAddr, self.proto)
(self.cmd, self.unknown, self.nrPackets, self.dataLen,self.payload) = (cmd, unknown, nrPackets, dataLen, data)
d = struct.pack(self.ethHeaderFmt, self.remoteAddr, self.localAddr, self.proto)
d += struct.pack (self.headerFmt, self.cmd, self.unknown, self.zero,
self.nrPackets, self.dataLen)
d += data
......@@ -296,9 +299,9 @@ class Ether8888DeviceFactory (DeviceFactory):
for sock in sread:
rxFrame = sock.recv (1500)
pack = Ether8888Packet()
if pack.decode (rxFrame) and (not pack.dstAddr == bcAddr):
if pack.decode (rxFrame) and (not pack.remoteAddr == bcAddr):
ifName,ifProto,pktType,hwType,hwAddr = sock.getsockname()
devices.append (Ether8888Device (ui, ifName, ifProto, pack.srcAddr, "Vonets VAP11G wireless bridge"));
devices.append (Ether8888Device (ui, ifName, ifProto, pack.localAddr, "Vonets VAP11G wireless bridge"));
for s in sockets:
s.close ();
......@@ -365,7 +368,7 @@ class Ether8888Device (Device):
def bulk_data_write (self, data, length):
packet = Ether8888Packet (localAddr = self.localAddr, remoteAddr = self.remoteAddr)
request = packet.encode ("\x01\x01", "\0\0", "\0\0", 0, length, data)
request = packet.encode ("\x01\x01", "\0\0", 0, length, data)
self.ui.debug ("Request: " + request)
res = None
try:
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment