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

This commit is contained in:
kieron
2018-05-10 07:39:07 +00:00
parent 3bdba1d786
commit fabe8bd6eb
74 changed files with 135 additions and 36 deletions

View File

@ -5,7 +5,8 @@ interface
uses
tracer,
console,
nettypes, netutils;
nettypes, netutils,
netlog;
procedure init;
procedure registerNetworkCard(SendCallback : TNetSendCallback; _MAC : puint8);
@ -46,6 +47,7 @@ end;
procedure send(p_data : void; p_len : uint16);
begin
push_trace('net.send');
if getNetlogHWND <> 0 then writestringlnWND('net.send', getNetlogHWND);
if CBSend <> nil then CBSend(p_data, p_len);
pop_trace;
end;
@ -56,7 +58,7 @@ var
begin
push_trace('net.recv');
//console.outputln('net', 'RECV.');
if getNetlogHWND <> 0 then writestringlnWND('net.recv', getNetlogHWND);
context:= newPacketContext;
if CBNext <> nil then CBNext(p_data, p_len, context);
freePacketContext(context);

View File

@ -6,6 +6,7 @@ uses
tracer,
nettypes, netutils,
net,
netlog,
console;
procedure registerType(eType : uint16; RecvCB : TRecvCallback);
@ -34,6 +35,7 @@ var
begin
push_trace('eth2.recv');
if getNetlogHWND <> 0 then writestringlnWND('eth2.recv', getNetlogHWND);
//console.outputln('net.eth2', 'RECV.');
buf:= puint8(p_data);

View File

@ -6,6 +6,7 @@ uses
tracer,
util, lists, console,
nettypes, netutils,
netlog,
eth2;
type
@ -69,6 +70,7 @@ var
begin
push_trace('arp.recv');
if getNetlogHWND <> 0 then writestringlnWND('arp.recv', getNetlogHWND);
{ Get our converted Header }
Header:= PARPHeader(p_data);
AHeader.Hardware_Type:= (Header^.Hardware_Type_Hi SHL 8) + Header^.Hardware_Type_Lo;
@ -80,34 +82,33 @@ begin
copyIPv4(@Header^.Source_Protocol[0], @AHeader.Source_Protocol[0]);
copyMAC(@Header^.Destination_Hardware[0], @AHeader.Destination_Hardware[0]);
copyIPv4(@Header^.Destination_Protocol[0], @AHeader.Destination_Protocol[0]);
case AHeader.Operation of
$1:begin { ARP Request }
//console.writestringln('ARP Request.');
if getNetlogHWND <> 0 then writestringlnWND('arp.recv.arp.req', getNetlogHWND);
end;
$2:begin { ARP Reply }
//console.writestringln('ARP Reply.');
if getNetlogHWND <> 0 then writestringlnWND('arp.recv.arp.rep', getNetlogHWND);
end;
$3:begin { RARP Request }
if getNetlogHWND <> 0 then writestringlnWND('arp.recv.rarp.req', getNetlogHWND);
end;
$4:begin { RARP Reply }
if getNetlogHWND <> 0 then writestringlnWND('arp.recv.rarp.rep', getNetlogHWND);
end;
$5:begin { DRARP Request }
if getNetlogHWND <> 0 then writestringlnWND('arp.recv.drarp.req', getNetlogHWND);
end;
$6:begin { DRARP Reply }
if getNetlogHWND <> 0 then writestringlnWND('arp.recv.drarp.rep', getNetlogHWND);
end;
$7:begin { DRARP Error }
if getNetlogHWND <> 0 then writestringlnWND('arp.recv.drarp.err', getNetlogHWND);
end;
$8:begin { InARP Request }
if getNetlogHWND <> 0 then writestringlnWND('arp.recv.inarp.req', getNetlogHWND);
end;
$9:begin { InARP Reply }
if getNetlogHWND <> 0 then writestringlnWND('arp.recv.inarp.rep', getNetlogHWND);
end;
end;
pop_trace;

View File

@ -6,6 +6,7 @@ uses
tracer,
util, console, terminal,
net, nettypes, netutils,
netlog,
eth2;
procedure registerProtocol(Protocol_ID : uint8; recv_callback : TRecvCallback);
@ -28,7 +29,7 @@ var
begin
push_trace('ipv4.recv');
//console.outputln('net.ipv4', 'RECV.');
if getNetlogHWND <> 0 then writestringlnWND('ipv4.recv', getNetlogHWND);
Header:= PIPV4Header(p_data);
AHeader.version:= Header^.version;
AHeader.header_len:= Header^.header_len;