git-svn-id: https://spexeah.com:8443/svn/Asuro@713 6dbc8c32-bb84-406f-8558-d1cf31a0ab0c

This commit is contained in:
kieron
2018-05-10 17:17:29 +00:00
parent 47f6c2325b
commit cbb37f4e5a
16 changed files with 34 additions and 10 deletions

View File

@ -20,6 +20,7 @@ procedure register;
function IPv4ToMAC(ip : puint8) : puint8;
function MACToIIPv4(mac : puint8) : puint8;
procedure sendGratuitous;
procedure sendRequest(ip : puint8);
procedure send(hType : uint16; pType : uint16; op : uint16; p_context : PPacketContext);
implementation
@ -123,6 +124,20 @@ begin
freePacketContext(context);
end;
procedure sendRequest(ip : puint8);
var
context : PPacketContext;
begin
context:= newPacketContext;
CopyIPv4(ip, @context^.IP.Destination[0]);
CopyIPv4(@getIPv4Config^.Address[0], @context^.IP.Source[0]);
CopyMAC(GetMAC, @context^.MAC.Source[0]);
CopyMAC(@BROADCAST_MAC[0], @context^.MAC.Destination[0]);
arp.send($1, $0800, $1, context);
freePacketContext(context);
end;
procedure recv(p_data : void; p_len : uint16; p_context : PPacketContext);
var
Header : PARPHeader;

View File

@ -81,7 +81,9 @@ procedure terminal_command_ifconfig(params : PParamList);
var
Command, Sub, Address, Gateway, Netmask : pchar;
_Address, _Gateway, _Netmask : puint8;
Target : TIPv4Address;
context : PPacketContext;
i : uint32;
begin
push_trace('ipv4.terminal_command_ifconfig');
@ -115,14 +117,21 @@ begin
end;
end;
arp.sendGratuitous;
context:= newPacketContext;
CopyIPv4(@Config.Gateway[0], @context^.IP.Destination[0]);
CopyIPv4(@Config.Address[0], @context^.IP.Source[0]);
CopyMAC(GetMAC, @context^.MAC.Source[0]);
//copyMAC(@FORCE_MAC[0], @context^.MAC.Source[0]);
CopyMAC(@BROADCAST_MAC[0], @context^.MAC.Destination[0]);
arp.send($1, $0800, $1, context);
freePacketContext(context);
CopyIPv4(@Config.Address[0], @Target[0]);
for i:=1 to 255 do begin
Target[3]:= i;
arp.sendRequest(@Target[0]);
end;
// context:= newPacketContext;
// CopyIPv4(@Config.Gateway[0], @context^.IP.Destination[0]);
// CopyIPv4(@Config.Address[0], @context^.IP.Source[0]);
// CopyMAC(GetMAC, @context^.MAC.Source[0]);
// //copyMAC(@FORCE_MAC[0], @context^.MAC.Source[0]);
// CopyMAC(@BROADCAST_MAC[0], @context^.MAC.Destination[0]);
// arp.send($1, $0800, $1, context);
// freePacketContext(context);
end else begin
writestringWND(' MAC: ', getTerminalHWND);
writeMACAddress(net.GetMAC, getTerminalHWND);

View File

@ -9,14 +9,14 @@ const
VERSION_SUB = '1';
REVISION = '677';
RELEASE = 'ia';
LINE_COUNT = 28014;
LINE_COUNT = 28038;
FILE_COUNT = 90;
DRIVER_COUNT = 32;
FPC_VERSION = '2.6.4';
NASM_VERSION = '2.10.09';
MAKE_VERSION = '3.81';
COMPILE_DATE = '10/05/18';
COMPILE_TIME = '18:05:58';
COMPILE_TIME = '18:17:20';
implementation