Browse Source

+ resolve.inc implementation for OS/2 by Soren Ager

git-svn-id: trunk@210 -
Tomas Hajny 20 years ago
parent
commit
8765b5a29b
2 changed files with 95 additions and 0 deletions
  1. 1 0
      .gitattributes
  2. 94 0
      fcl/os2/resolve.inc

+ 1 - 0
.gitattributes

@@ -860,6 +860,7 @@ fcl/os2/custapp.inc svneol=native#text/plain
 fcl/os2/eventlog.inc svneol=native#text/plain
 fcl/os2/eventlog.inc svneol=native#text/plain
 fcl/os2/ezcgi.inc svneol=native#text/plain
 fcl/os2/ezcgi.inc svneol=native#text/plain
 fcl/os2/pipes.inc svneol=native#text/plain
 fcl/os2/pipes.inc svneol=native#text/plain
+fcl/os2/resolve.inc svneol=native#text/plain
 fcl/passrc/Makefile -text
 fcl/passrc/Makefile -text
 fcl/passrc/Makefile.fpc svneol=native#text/plain
 fcl/passrc/Makefile.fpc svneol=native#text/plain
 fcl/passrc/pastree.pp svneol=native#text/plain
 fcl/passrc/pastree.pp svneol=native#text/plain

+ 94 - 0
fcl/os2/resolve.inc

@@ -0,0 +1,94 @@
+{
+    This file is part of the Free Pascal run time library.
+    Copyright (c) 2005 Soren Ager
+
+    Implementation of TCP/IP name resolution for OS/2.
+
+    See the file COPYING.FPC, included in this distribution,
+    for details about the copyright.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+ **********************************************************************}
+
+const
+  { Net type }
+  socklib = 'TCP32DLL';
+  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;
+
+
+function gethostent : PHostEntry; cdecl; external socklib index 30;
+procedure sethostent (stayopen : longint); cdecl; external socklib index 28;
+procedure endhostent; cdecl; external socklib index 29;
+
+function getnetent : PNetEntry; cdecl; external socklib index 17;
+procedure setnetent ( Stayopen : Longint);  cdecl; external socklib index 15;
+procedure endnetent; cdecl; external socklib index 16;
+
+function getservent : PServEntry; cdecl; external socklib index 27;
+procedure setservent (StayOpen : longint); cdecl; external socklib index 25;
+procedure endservent; cdecl; external socklib index 26;
+
+function getnetbyaddr ( Net : Longint; nettype : Longint) : PNetEntry; cdecl; external socklib index 14;
+function gethostbyname ( Name : Pchar) : PHostEntry; cdecl; external socklib index 11;
+function gethostbyaddr ( Addr : PChar; Len : Longint; HType : Longint) : PHostentry ; cdecl; external socklib index 12;
+function getnetbyname ( Name : pchar) : PNetEntry; cdecl; external socklib index 13;
+function getservbyname (name : pchar  ; protocol : pchar) : PServEntry; cdecl; external socklib index 24;
+function getservbyport (port : longint; protocol : pchar) : PServEntry; cdecl; external socklib index 23;
+
+function  GetDNSError : LongInt;
+begin
+  GetDNSError:=0;   //!!! fpgetCerrno;
+end;
+
+Function InitResolve : Boolean;
+begin
+  Result:=True;
+end;
+
+Function FinalResolve : Boolean;
+begin
+  Result:=True;
+end;