diff --git a/Asuro.iso b/Asuro.iso index f662712d..eb783cac 100644 Binary files a/Asuro.iso and b/Asuro.iso differ diff --git a/bin/kernel.bin b/bin/kernel.bin index fc0ac39b..f8c3ce53 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 fc0ac39b..f8c3ce53 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 29b6182e..973b83cc 100644 Binary files a/lib/arp.ppu and b/lib/arp.ppu differ diff --git a/lib/asuro.ppu b/lib/asuro.ppu index 292d9dd2..95c73da1 100644 Binary files a/lib/asuro.ppu and b/lib/asuro.ppu differ diff --git a/lib/eth2.ppu b/lib/eth2.ppu index e870da8f..b73ba1f2 100644 Binary files a/lib/eth2.ppu and b/lib/eth2.ppu differ diff --git a/lib/libpconsole.a b/lib/libpconsole.a index 10e8193f..9e6f54e0 100644 Binary files a/lib/libpconsole.a and b/lib/libpconsole.a differ diff --git a/lib/libpmultiboot.a b/lib/libpmultiboot.a index 3025a1e3..82185242 100644 Binary files a/lib/libpmultiboot.a and b/lib/libpmultiboot.a differ diff --git a/lib/libpsystem.a b/lib/libpsystem.a index 2c153c13..b8bd105a 100644 Binary files a/lib/libpsystem.a and b/lib/libpsystem.a differ diff --git a/lib/shell.ppu b/lib/shell.ppu index 0613b3a0..cbe941db 100644 Binary files a/lib/shell.ppu and b/lib/shell.ppu differ diff --git a/lib/terminal.ppu b/lib/terminal.ppu index 3055aaa9..e2e90637 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 a6771bf4..a1723f9d 100644 --- a/src/driver/net/l2/eth2.pas +++ b/src/driver/net/l2/eth2.pas @@ -47,7 +47,7 @@ begin push_trace('eth2.send'); writeToLogLn(' L2: eth2.send'); if p_context <> nil then begin - size:= sizeof(TEthernetHeader) + p_len + pad + 4; + size:= sizeof(TEthernetHeader) + p_len {+ pad} + 4; buffer:= kalloc(size); copyMAC(@p_context^.MAC.Source[0], @hdr.src[0]); copyMAC(@p_context^.MAC.Destination[0], @hdr.dst[0]); @@ -57,9 +57,7 @@ begin memcpy(uint32(p_data), uint32(buffer)+sizeof(TEthernetHeader), p_len); FCS:= puint32((uint32(buffer) + size) - 4); FCS^:= crc32(puint8(buffer), size - 4); - //writehexlnWND(FCS^, getTerminalHWND); net.send(buffer, size); - //printmemoryWND(uint32(buffer), size, 16, ' ', true, getTerminalHWND); kfree(buffer); end; end; diff --git a/src/driver/net/l3/arp.pas b/src/driver/net/l3/arp.pas index 45da3122..5221918f 100644 --- a/src/driver/net/l3/arp.pas +++ b/src/driver/net/l3/arp.pas @@ -220,19 +220,28 @@ procedure terminal_command_arp(Params : PParamList); var i : uint32; elm : PARPCacheRecord; + sIP : pchar; + _IP : puint8; begin - if LL_Size(Cache) > 0 then begin - writestringlnWND('MAC IPv4', getTerminalHWND); - For i:=0 to LL_Size(Cache)-1 do begin - elm:= PARPCacheRecord(LL_Get(Cache, i)); - writeMACAddressEx(@elm^.MAC[0], getTerminalHWND); - writestringWND(' ', getTerminalHWND); - writeIPv4AddressEx(@elm^.IP[0], getTerminalHWND); - writestringlnWND(' ', getTerminalHWND); - end; + if ParamCount(Params) > 0 then begin + sIP:= getParam(0, Params); + _IP:= stringToIPv4(sIP); + sendRequest(_IP); + writestringlnWND('ARP Request Sent.', getTerminalHWND); end else begin - writestringlnWND('No entries in ARP table.', getTerminalHWND); + if LL_Size(Cache) > 0 then begin + writestringlnWND('MAC IPv4', getTerminalHWND); + For i:=0 to LL_Size(Cache)-1 do begin + elm:= PARPCacheRecord(LL_Get(Cache, i)); + writeMACAddressEx(@elm^.MAC[0], getTerminalHWND); + writestringWND(' ', getTerminalHWND); + writeIPv4AddressEx(@elm^.IP[0], getTerminalHWND); + writestringlnWND(' ', getTerminalHWND); + end; + end else begin + writestringlnWND('No entries in ARP table.', getTerminalHWND); + end; end; end; diff --git a/src/include/asuro.pas b/src/include/asuro.pas index 733a2186..abad7e7d 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 = 28025; + LINE_COUNT = 28032; 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 = '08:34:35'; + COMPILE_TIME = '09:12:36'; implementation