diff --git a/Asuro.iso b/Asuro.iso index 4de97c15..79dd7ac0 100644 Binary files a/Asuro.iso and b/Asuro.iso differ diff --git a/bin/kernel.bin b/bin/kernel.bin index 7742fc66..59285ac6 100755 Binary files a/bin/kernel.bin and b/bin/kernel.bin differ diff --git a/iso/boot/asuro.bin b/iso/boot/asuro.bin index 7742fc66..59285ac6 100755 Binary files a/iso/boot/asuro.bin and b/iso/boot/asuro.bin differ diff --git a/lib/arp.ppu b/lib/arp.ppu index 1b4ccef5..ccab5a66 100644 Binary files a/lib/arp.ppu and b/lib/arp.ppu differ diff --git a/lib/asuro.ppu b/lib/asuro.ppu index 73596195..41494c46 100644 Binary files a/lib/asuro.ppu and b/lib/asuro.ppu differ diff --git a/lib/eth2.ppu b/lib/eth2.ppu index aa2bf86e..b08cbecd 100644 Binary files a/lib/eth2.ppu and b/lib/eth2.ppu differ diff --git a/lib/ipv4.ppu b/lib/ipv4.ppu index 4f681517..f7d78327 100644 Binary files a/lib/ipv4.ppu and b/lib/ipv4.ppu differ diff --git a/lib/libpconsole.a b/lib/libpconsole.a index 14a9ac86..cb0c3d3f 100644 Binary files a/lib/libpconsole.a and b/lib/libpconsole.a differ diff --git a/lib/libpmultiboot.a b/lib/libpmultiboot.a index 046f1ae5..ce48f076 100644 Binary files a/lib/libpmultiboot.a and b/lib/libpmultiboot.a differ diff --git a/lib/libpsystem.a b/lib/libpsystem.a index 2f298495..69f6bbd4 100644 Binary files a/lib/libpsystem.a and b/lib/libpsystem.a differ diff --git a/lib/net.ppu b/lib/net.ppu index 773402f0..6eba62df 100644 Binary files a/lib/net.ppu and b/lib/net.ppu differ diff --git a/lib/shell.ppu b/lib/shell.ppu index e2b23d83..ab1dbe9d 100644 Binary files a/lib/shell.ppu and b/lib/shell.ppu differ diff --git a/lib/terminal.ppu b/lib/terminal.ppu index c92b9a35..82dc2472 100644 Binary files a/lib/terminal.ppu and b/lib/terminal.ppu differ diff --git a/src/driver/net/l2/eth2.pas b/src/driver/net/l2/eth2.pas index 043c0322..8905ccb9 100644 --- a/src/driver/net/l2/eth2.pas +++ b/src/driver/net/l2/eth2.pas @@ -10,7 +10,7 @@ uses netlog, console; -procedure send(p_data : void; p_len : uint16; p_context : PPacketContext); +procedure send(p_data : void; p_len : uint16; eth_type : uint16; p_context : PPacketContext); procedure registerType(eType : uint16; RecvCB : TRecvCallback); procedure register; @@ -32,7 +32,7 @@ begin pop_trace; end; -procedure send(p_data : void; p_len : uint16; p_context : PPacketContext); +procedure send(p_data : void; p_len : uint16; eth_type : uint16; p_context : PPacketContext); var buffer : void; hdr : TEthernetHeader; @@ -44,8 +44,8 @@ begin buffer:= kalloc(p_len + sizeof(TEthernetHeader)); copyMAC(@p_context^.MAC.Source[0], @hdr.src[0]); copyMAC(@p_context^.MAC.Destination[0], @hdr.dst[0]); - hdr.EthTypeHi:= 0; - hdr.EthTypeLo:= 1; + hdr.EthTypeHi:= eth_type SHR 8; + hdr.EthTypeLo:= eth_type AND $FF; memcpy(uint32(@hdr), uint32(buffer), sizeof(TEthernetHeader)); memcpy(uint32(p_data), uint32(buffer+sizeof(TEthernetHeader)), p_len); net.send(buffer, p_len + sizeof(TEthernetHeader)); diff --git a/src/driver/net/l3/arp.pas b/src/driver/net/l3/arp.pas index 0a249c4a..82c5084e 100644 --- a/src/driver/net/l3/arp.pas +++ b/src/driver/net/l3/arp.pas @@ -101,7 +101,7 @@ begin if MACEqual(@p_context^.MAC.Destination[0], @NULL_MAC[0]) then begin CopyMAC(@BROADCAST_MAC[0], @p_context^.MAC.Destination[0]); end; - eth2.send(buf, sizeof(TARPHeader), p_context); + eth2.send(buf, sizeof(TARPHeader), $0806, p_context); end; kfree(buf); end; diff --git a/src/include/asuro.pas b/src/include/asuro.pas index c824620d..b9cee907 100644 --- a/src/include/asuro.pas +++ b/src/include/asuro.pas @@ -16,7 +16,7 @@ const NASM_VERSION = '2.10.09'; MAKE_VERSION = '3.81'; COMPILE_DATE = '10/05/18'; - COMPILE_TIME = '13:17:01'; + COMPILE_TIME = '13:39:16'; implementation