summaryrefslogtreecommitdiff
path: root/fpcsrc/packages/fcl-net/src/unix/resolve.inc
blob: 64125bffed12c3db22785d6284853cda842bea5d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
uses
  initc;

const
  { Net type }
  socklib = 'c';
  AF_INET = 2;

  { Error constants. Returned by LastError method of THost, TNet}

  NETDB_INTERNAL= -1;       { see errno }
  NETDB_SUCCESS = 0;        { no problem }
  HOST_NOT_FOUND= 1;        { Authoritative Answer Host not found }
  TRY_AGAIN     = 2;        { Non-Authoritive Host not found, or SERVERFAIL }
  NO_RECOVERY   = 3;        { Non recoverable errors, FORMERR, REFUSED, NOTIMP }
  NO_DATA       = 4;        { Valid name, no data record of requested type }
  NO_ADDRESS    = NO_DATA;  { no address, look for MX record }


Type

  { THostEnt Object }
  THostEnt = record
    H_Name     : pchar;   { Official name }
    H_Aliases  : ppchar;  { Null-terminated list of aliases}
    H_Addrtype : longint;   { Host address type }
    H_length  : longint;   { Length of address }
    H_Addr : ppchar;    { null-terminated list of adresses }
  end;
  PHostEntry = ^THostEnt;

  { TNetEnt object }
  TNetEnt = record
    N_Name     : pchar;   { Official name }
    N_Aliases  : ppchar;  { Nill-terminated alias list }
    N_AddrType : longint; { Net address type }
    N_net      : Cardinal; { Network number }
  end;
  PNetEntry = ^TNetEnt;

  TServEnt = record
    s_name    : pchar;    { Service name }
    s_aliases : ppchar;   { Null-terminated alias list }
    s_port    : longint;  { Port number }
    s_proto   : pchar;    { Protocol to use }
  end;
  PServEntry = ^TServEnt;

{ C style calls, linked in from Libc }

function gethostent : PHostEntry; cdecl; external socklib;
procedure sethostent (stayopen : longint); cdecl; external socklib;
procedure endhostent; cdecl; external socklib;

function getnetent : PNetEntry; cdecl; external socklib;
procedure setnetent ( Stayopen : Longint);  cdecl; external socklib;
procedure endnetent; cdecl; external socklib;

function getservent : PServEntry; cdecl; external socklib;
procedure setservent (StayOpen : longint); cdecl; external socklib;
procedure endservent; cdecl; external socklib;

function getnetbyaddr ( Net : Longint; nettype : Longint) : PNetEntry; cdecl; external socklib;
function gethostbyname ( Name : Pchar) : PHostEntry; cdecl; external socklib;
function gethostbyaddr ( Addr : PChar; Len : Longint; HType : Longint) : PHostentry ; cdecl; external socklib;
function getnetbyname ( Name : pchar) : PNetEntry; cdecl; external socklib;
function getservbyname (name : pchar  ; protocol : pchar) : PServEntry; cdecl; external socklib;
function getservbyport (port : longint; protocol : pchar) : PServEntry; cdecl; external socklib;

function  GetDNSError : libcint;

begin
  GetDNSError:=fpgetCerrno;
end;

Function InitResolve : Boolean;

begin
  Result:=True;
end;

Function FinalResolve : Boolean;

begin
  Result:=True;
end;