/packages/fcl-net/src/unix/resolve.inc

https://github.com/slibre/freepascal · Pascal · 86 lines · 62 code · 19 blank · 5 comment · 0 complexity · 572f4b2bab06b0392d820af000432d4a MD5 · raw file

  1. uses
  2. initc;
  3. const
  4. { Net type }
  5. socklib = 'c';
  6. AF_INET = 2;
  7. { Error constants. Returned by LastError method of THost, TNet}
  8. NETDB_INTERNAL= -1; { see errno }
  9. NETDB_SUCCESS = 0; { no problem }
  10. HOST_NOT_FOUND= 1; { Authoritative Answer Host not found }
  11. TRY_AGAIN = 2; { Non-Authoritive Host not found, or SERVERFAIL }
  12. NO_RECOVERY = 3; { Non recoverable errors, FORMERR, REFUSED, NOTIMP }
  13. NO_DATA = 4; { Valid name, no data record of requested type }
  14. NO_ADDRESS = NO_DATA; { no address, look for MX record }
  15. Type
  16. { THostEnt Object }
  17. THostEnt = record
  18. H_Name : pchar; { Official name }
  19. H_Aliases : ppchar; { Null-terminated list of aliases}
  20. H_Addrtype : longint; { Host address type }
  21. H_length : longint; { Length of address }
  22. H_Addr : ppchar; { null-terminated list of adresses }
  23. end;
  24. PHostEntry = ^THostEnt;
  25. { TNetEnt object }
  26. TNetEnt = record
  27. N_Name : pchar; { Official name }
  28. N_Aliases : ppchar; { Nill-terminated alias list }
  29. N_AddrType : longint; { Net address type }
  30. N_net : Cardinal; { Network number }
  31. end;
  32. PNetEntry = ^TNetEnt;
  33. TServEnt = record
  34. s_name : pchar; { Service name }
  35. s_aliases : ppchar; { Null-terminated alias list }
  36. s_port : longint; { Port number }
  37. s_proto : pchar; { Protocol to use }
  38. end;
  39. PServEntry = ^TServEnt;
  40. { C style calls, linked in from Libc }
  41. function gethostent : PHostEntry; cdecl; external socklib;
  42. procedure sethostent (stayopen : longint); cdecl; external socklib;
  43. procedure endhostent; cdecl; external socklib;
  44. function getnetent : PNetEntry; cdecl; external socklib;
  45. procedure setnetent ( Stayopen : Longint); cdecl; external socklib;
  46. procedure endnetent; cdecl; external socklib;
  47. function getservent : PServEntry; cdecl; external socklib;
  48. procedure setservent (StayOpen : longint); cdecl; external socklib;
  49. procedure endservent; cdecl; external socklib;
  50. function getnetbyaddr ( Net : Longint; nettype : Longint) : PNetEntry; cdecl; external socklib;
  51. function gethostbyname ( Name : Pchar) : PHostEntry; cdecl; external socklib;
  52. function gethostbyaddr ( Addr : PChar; Len : Longint; HType : Longint) : PHostentry ; cdecl; external socklib;
  53. function getnetbyname ( Name : pchar) : PNetEntry; cdecl; external socklib;
  54. function getservbyname (name : pchar ; protocol : pchar) : PServEntry; cdecl; external socklib;
  55. function getservbyport (port : longint; protocol : pchar) : PServEntry; cdecl; external socklib;
  56. function GetDNSError : libcint;
  57. begin
  58. GetDNSError:=fpgetCerrno;
  59. end;
  60. Function InitResolve : Boolean;
  61. begin
  62. Result:=True;
  63. end;
  64. Function FinalResolve : Boolean;
  65. begin
  66. Result:=True;
  67. end;