diff --git a/Asuro.iso b/Asuro.iso index 23211f92..ee7b1bb2 100644 Binary files a/Asuro.iso and b/Asuro.iso differ diff --git a/bin/kernel.bin b/bin/kernel.bin index 9f122623..3492cfbf 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 9f122623..3492cfbf 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 72fa6239..a9104844 100644 Binary files a/lib/arp.ppu and b/lib/arp.ppu differ diff --git a/lib/asuro.ppu b/lib/asuro.ppu index 6df5755e..6d11550b 100644 Binary files a/lib/asuro.ppu and b/lib/asuro.ppu differ diff --git a/lib/libpconsole.a b/lib/libpconsole.a index cbdddf65..4ca2793a 100644 Binary files a/lib/libpconsole.a and b/lib/libpconsole.a differ diff --git a/lib/libpmultiboot.a b/lib/libpmultiboot.a index 49754735..32853958 100644 Binary files a/lib/libpmultiboot.a and b/lib/libpmultiboot.a differ diff --git a/lib/libpsystem.a b/lib/libpsystem.a index 1e512fa8..c3ab83b3 100644 Binary files a/lib/libpsystem.a and b/lib/libpsystem.a differ diff --git a/lib/shell.ppu b/lib/shell.ppu index e9d36371..b17ea1c9 100644 Binary files a/lib/shell.ppu and b/lib/shell.ppu differ diff --git a/lib/terminal.ppu b/lib/terminal.ppu index d3e9978f..e118f1db 100644 Binary files a/lib/terminal.ppu and b/lib/terminal.ppu differ diff --git a/src/driver/net/l3/arp.pas b/src/driver/net/l3/arp.pas index 4211acfc..0f729a49 100644 --- a/src/driver/net/l3/arp.pas +++ b/src/driver/net/l3/arp.pas @@ -127,13 +127,16 @@ end; procedure sendRequest(ip : puint8); var context : PPacketContext; + CacheRecord : PARPCacheRecord; begin context:= newPacketContext; CopyIPv4(ip, @context^.IP.Destination[0]); CopyIPv4(@getIPv4Config^.Address[0], @context^.IP.Source[0]); CopyMAC(GetMAC, @context^.MAC.Source[0]); - CopyMAC(@NULL_MAC[0], @context^.MAC.Destination[0]); + CacheRecord:= findCacheRecordByIP(@getIPv4Config^.Gateway[0]); + if CacheRecord <> nil then CopyMAC(@CacheRecord^.MAC[0], @context^.MAC.Destination[0]) + else CopyMAC(@NULL_MAC[0], @context^.MAC.Destination[0]); arp.send($1, $0800, $1, context); freePacketContext(context); end; diff --git a/src/include/asuro.pas b/src/include/asuro.pas index 7aa511dc..20631ab7 100644 --- a/src/include/asuro.pas +++ b/src/include/asuro.pas @@ -9,14 +9,14 @@ const VERSION_SUB = '1'; REVISION = '677'; RELEASE = 'ia'; - LINE_COUNT = 28046; + LINE_COUNT = 28049; FILE_COUNT = 90; DRIVER_COUNT = 32; FPC_VERSION = '2.6.4'; NASM_VERSION = '2.10.09'; MAKE_VERSION = '3.81'; COMPILE_DATE = '11/05/18'; - COMPILE_TIME = '10:10:37'; + COMPILE_TIME = '10:15:31'; implementation