2
0

StaticInterface.Mod 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. MODULE StaticInterface; (** AUTHOR "Timothée Martiel"; PURPOSE "Static IP interface configuration"; *)
  2. IMPORT KernelLog := Trace, Kernel, Plugins, Network, IP, IPv4;
  3. VAR
  4. interface: IPv4.Interface;
  5. res: LONGINT;
  6. local, gateway, mask: IP.Adr;
  7. p: Plugins.Plugin;
  8. (*l4header, data: ARRAY 32 OF CHAR;
  9. connection: TCP.Connection;*)
  10. t: Kernel.Timer;
  11. BEGIN
  12. NEW(t);
  13. (*t.Sleep(10 * 1000);*)
  14. KernelLog.String("Creating Static Interface"); KernelLog.Ln;
  15. p := Network.registry.Get("XEmac");
  16. IF p = NIL THEN
  17. KernelLog.String("Could not find network device");
  18. KernelLog.Ln;
  19. HALT(100)
  20. ELSIF ~(p IS Network.LinkDevice) THEN
  21. KernelLog.String("Device found is not a link device");
  22. KernelLog.Ln;
  23. HALT(100)
  24. END;
  25. NEW(interface, "Static IPv4 Interface", p(Network.LinkDevice), res);
  26. IF res # IP.Ok THEN
  27. KernelLog.Hex(res, 0);
  28. KernelLog.String(" -- Error in Static IPv4 Interface creation");
  29. KernelLog.Ln;
  30. TRACE(res, p);
  31. HALT(100)
  32. END;
  33. local := IP.StrToAdr("10.3.34.8");
  34. gateway := IP.StrToAdr("10.3.34.145");
  35. mask := IP.StrToAdr("255.255.0.0");
  36. (*TRACE(local.ipv4Adr, gateway.ipv4Adr, mask.ipv4Adr);*)
  37. interface.SetAdrs(local, mask, gateway, res);
  38. IF res # IP.Ok THEN
  39. TRACE(res);
  40. KernelLog.Address(res);
  41. KernelLog.String(" -- Error in Static IPv4 Interface addresses");
  42. KernelLog.Ln;
  43. HALT(100)
  44. END;
  45. END StaticInterface.