diff options
| author | peter <peter@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2007-10-28 21:26:51 +0000 |
|---|---|---|
| committer | peter <peter@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2007-10-28 21:26:51 +0000 |
| commit | 9a1c84e2531f3f115297d745fa9f03b322e5e881 (patch) | |
| tree | b6e0165c05e881ee4bc595ed417dd9a315e0d15c /packages/fcl-net | |
| parent | 77722a04c495e3d5b8200c8641f56d364009f1f1 (diff) | |
| download | fpc-9a1c84e2531f3f115297d745fa9f03b322e5e881.tar.gz | |
* created fcl-async and fcl-process packages
git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@8979 3ad0048d-3df7-0310-abae-a5850022a9f2
Diffstat (limited to 'packages/fcl-net')
| -rw-r--r-- | packages/fcl-net/Makefile | 417 | ||||
| -rw-r--r-- | packages/fcl-net/Makefile.fpc | 16 | ||||
| -rw-r--r-- | packages/fcl-net/src/netware/resolve.inc | 1 | ||||
| -rw-r--r-- | packages/fcl-net/src/netwlibc/resolve.inc | 5 | ||||
| -rw-r--r-- | packages/fcl-net/src/os2/resolve.inc | 94 | ||||
| -rw-r--r-- | packages/fcl-net/src/resolve.pp | 825 | ||||
| -rw-r--r-- | packages/fcl-net/src/ssockets.pp | 597 | ||||
| -rw-r--r-- | packages/fcl-net/src/unix/resolve.inc | 86 | ||||
| -rw-r--r-- | packages/fcl-net/src/win/resolve.inc | 51 | ||||
| -rw-r--r-- | packages/fcl-net/src/wince/resolve.inc | 51 | ||||
| -rw-r--r-- | packages/fcl-net/tests/Makefile (renamed from packages/fcl-net/src/tests/Makefile) | 0 | ||||
| -rw-r--r-- | packages/fcl-net/tests/Makefile.fpc (renamed from packages/fcl-net/src/tests/Makefile.fpc) | 0 | ||||
| -rw-r--r-- | packages/fcl-net/tests/readme.txt (renamed from packages/fcl-net/src/tests/readme.txt) | 0 | ||||
| -rw-r--r-- | packages/fcl-net/tests/rpccli.pp (renamed from packages/fcl-net/src/tests/rpccli.pp) | 0 | ||||
| -rw-r--r-- | packages/fcl-net/tests/rpcserv.pp (renamed from packages/fcl-net/src/tests/rpcserv.pp) | 0 | ||||
| -rw-r--r-- | packages/fcl-net/tests/svrclass.pp (renamed from packages/fcl-net/src/tests/svrclass.pp) | 0 | ||||
| -rw-r--r-- | packages/fcl-net/tests/svrclass_xmlrpc.pp (renamed from packages/fcl-net/src/tests/svrclass_xmlrpc.pp) | 0 |
17 files changed, 1828 insertions, 315 deletions
diff --git a/packages/fcl-net/Makefile b/packages/fcl-net/Makefile index ce4dcfd1e2..8b1489acb5 100644 --- a/packages/fcl-net/Makefile +++ b/packages/fcl-net/Makefile @@ -1,11 +1,12 @@ # -# Don't edit, this file is generated by FPCMake Version 2.0.0 [2007/08/22] +# Don't edit, this file is generated by FPCMake Version 2.0.0 [2007/10/25] # default: all MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-wince arm-gba arm-nds arm-embedded arm-symbian powerpc64-linux powerpc64-darwin powerpc64-embedded BSDs = freebsd netbsd openbsd darwin UNIXs = linux $(BSDs) solaris qnx LIMIT83fs = go32v2 os2 emx watcom +OSNeedsComspecToRunBatch = go32v2 watcom FORCE: .PHONY: FORCE override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH))) @@ -56,6 +57,11 @@ else SRCBATCHEXT=.bat endif endif +ifdef COMSPEC +ifneq ($(findstring $(OS_SOURCE),$(OSNeedsComspecToRunBatch)),) +RUNBATCH=$(COMSPEC) /C +endif +endif ifdef inUnix PATHSEP=/ else @@ -102,7 +108,7 @@ ifndef FPC FPCPROG:=$(strip $(wildcard $(addsuffix /fpc$(SRCEXEEXT),$(SEARCHPATH)))) ifneq ($(FPCPROG),) FPCPROG:=$(firstword $(FPCPROG)) -FPC:=$(shell $(FPCPROG) -PB) +FPC:=$(shell $(FPCPROG) -P$(CPU_TARGET) -PB) ifneq ($(findstring Error,$(FPC)),) override FPC=$(firstword $(strip $(wildcard $(addsuffix /ppc386$(SRCEXEEXT),$(SEARCHPATH))))) endif @@ -296,160 +302,160 @@ ifeq ($(FULL_TARGET),powerpc64-darwin) override TARGET_PROGRAMS+=mkxmlrpc endif ifeq ($(FULL_TARGET),i386-linux) -override TARGET_UNITS+=servlets fpsock httpbase httpclient httpsvlt xmlrpc +override TARGET_UNITS+=servlets resolve ssockets fpsock httpbase httpclient httpsvlt xmlrpc endif ifeq ($(FULL_TARGET),i386-go32v2) -override TARGET_UNITS+=servlets +override TARGET_UNITS+=servlets resolve ssockets endif ifeq ($(FULL_TARGET),i386-win32) -override TARGET_UNITS+=servlets +override TARGET_UNITS+=servlets resolve ssockets endif ifeq ($(FULL_TARGET),i386-os2) -override TARGET_UNITS+=servlets +override TARGET_UNITS+=servlets resolve ssockets endif ifeq ($(FULL_TARGET),i386-freebsd) -override TARGET_UNITS+=servlets fpsock httpbase httpclient httpsvlt xmlrpc +override TARGET_UNITS+=servlets resolve ssockets fpsock httpbase httpclient httpsvlt xmlrpc endif ifeq ($(FULL_TARGET),i386-beos) -override TARGET_UNITS+=servlets +override TARGET_UNITS+=servlets resolve ssockets endif ifeq ($(FULL_TARGET),i386-netbsd) -override TARGET_UNITS+=servlets fpsock httpbase httpclient httpsvlt xmlrpc +override TARGET_UNITS+=servlets resolve ssockets fpsock httpbase httpclient httpsvlt xmlrpc endif ifeq ($(FULL_TARGET),i386-solaris) -override TARGET_UNITS+=servlets +override TARGET_UNITS+=servlets resolve ssockets endif ifeq ($(FULL_TARGET),i386-qnx) -override TARGET_UNITS+=servlets +override TARGET_UNITS+=servlets resolve ssockets endif ifeq ($(FULL_TARGET),i386-netware) -override TARGET_UNITS+=servlets +override TARGET_UNITS+=servlets resolve ssockets endif ifeq ($(FULL_TARGET),i386-openbsd) -override TARGET_UNITS+=servlets fpsock httpbase httpclient httpsvlt xmlrpc +override TARGET_UNITS+=servlets resolve ssockets fpsock httpbase httpclient httpsvlt xmlrpc endif ifeq ($(FULL_TARGET),i386-wdosx) -override TARGET_UNITS+=servlets +override TARGET_UNITS+=servlets resolve ssockets endif ifeq ($(FULL_TARGET),i386-darwin) -override TARGET_UNITS+=servlets +override TARGET_UNITS+=servlets resolve ssockets endif ifeq ($(FULL_TARGET),i386-emx) -override TARGET_UNITS+=servlets +override TARGET_UNITS+=servlets resolve ssockets endif ifeq ($(FULL_TARGET),i386-watcom) -override TARGET_UNITS+=servlets +override TARGET_UNITS+=servlets resolve ssockets endif ifeq ($(FULL_TARGET),i386-netwlibc) -override TARGET_UNITS+=servlets +override TARGET_UNITS+=servlets resolve ssockets endif ifeq ($(FULL_TARGET),i386-wince) -override TARGET_UNITS+=servlets +override TARGET_UNITS+=servlets resolve ssockets endif ifeq ($(FULL_TARGET),i386-embedded) -override TARGET_UNITS+=servlets +override TARGET_UNITS+=servlets resolve ssockets endif ifeq ($(FULL_TARGET),i386-symbian) -override TARGET_UNITS+=servlets +override TARGET_UNITS+=servlets resolve ssockets endif ifeq ($(FULL_TARGET),m68k-linux) -override TARGET_UNITS+=servlets fpsock httpbase httpclient httpsvlt xmlrpc +override TARGET_UNITS+=servlets resolve ssockets fpsock httpbase httpclient httpsvlt xmlrpc endif ifeq ($(FULL_TARGET),m68k-freebsd) -override TARGET_UNITS+=servlets fpsock httpbase httpclient httpsvlt xmlrpc +override TARGET_UNITS+=servlets resolve ssockets fpsock httpbase httpclient httpsvlt xmlrpc endif ifeq ($(FULL_TARGET),m68k-netbsd) -override TARGET_UNITS+=servlets fpsock httpbase httpclient httpsvlt xmlrpc +override TARGET_UNITS+=servlets resolve ssockets fpsock httpbase httpclient httpsvlt xmlrpc endif ifeq ($(FULL_TARGET),m68k-amiga) -override TARGET_UNITS+=servlets +override TARGET_UNITS+=servlets resolve ssockets endif ifeq ($(FULL_TARGET),m68k-atari) -override TARGET_UNITS+=servlets +override TARGET_UNITS+=servlets resolve ssockets endif ifeq ($(FULL_TARGET),m68k-openbsd) -override TARGET_UNITS+=servlets fpsock httpbase httpclient httpsvlt xmlrpc +override TARGET_UNITS+=servlets resolve ssockets fpsock httpbase httpclient httpsvlt xmlrpc endif ifeq ($(FULL_TARGET),m68k-palmos) -override TARGET_UNITS+=servlets +override TARGET_UNITS+=servlets resolve ssockets endif ifeq ($(FULL_TARGET),m68k-embedded) -override TARGET_UNITS+=servlets +override TARGET_UNITS+=servlets resolve ssockets endif ifeq ($(FULL_TARGET),powerpc-linux) -override TARGET_UNITS+=servlets fpsock httpbase httpclient httpsvlt xmlrpc +override TARGET_UNITS+=servlets resolve ssockets fpsock httpbase httpclient httpsvlt xmlrpc endif ifeq ($(FULL_TARGET),powerpc-netbsd) -override TARGET_UNITS+=servlets fpsock httpbase httpclient httpsvlt xmlrpc +override TARGET_UNITS+=servlets resolve ssockets fpsock httpbase httpclient httpsvlt xmlrpc endif ifeq ($(FULL_TARGET),powerpc-amiga) -override TARGET_UNITS+=servlets +override TARGET_UNITS+=servlets resolve ssockets endif ifeq ($(FULL_TARGET),powerpc-macos) -override TARGET_UNITS+=servlets +override TARGET_UNITS+=servlets resolve ssockets endif ifeq ($(FULL_TARGET),powerpc-darwin) -override TARGET_UNITS+=servlets +override TARGET_UNITS+=servlets resolve ssockets endif ifeq ($(FULL_TARGET),powerpc-morphos) -override TARGET_UNITS+=servlets +override TARGET_UNITS+=servlets resolve ssockets endif ifeq ($(FULL_TARGET),powerpc-embedded) -override TARGET_UNITS+=servlets +override TARGET_UNITS+=servlets resolve ssockets endif ifeq ($(FULL_TARGET),sparc-linux) -override TARGET_UNITS+=servlets fpsock httpbase httpclient httpsvlt xmlrpc +override TARGET_UNITS+=servlets resolve ssockets fpsock httpbase httpclient httpsvlt xmlrpc endif ifeq ($(FULL_TARGET),sparc-netbsd) -override TARGET_UNITS+=servlets fpsock httpbase httpclient httpsvlt xmlrpc +override TARGET_UNITS+=servlets resolve ssockets fpsock httpbase httpclient httpsvlt xmlrpc endif ifeq ($(FULL_TARGET),sparc-solaris) -override TARGET_UNITS+=servlets +override TARGET_UNITS+=servlets resolve ssockets endif ifeq ($(FULL_TARGET),sparc-embedded) -override TARGET_UNITS+=servlets +override TARGET_UNITS+=servlets resolve ssockets endif ifeq ($(FULL_TARGET),x86_64-linux) -override TARGET_UNITS+=servlets fpsock httpbase httpclient httpsvlt xmlrpc +override TARGET_UNITS+=servlets resolve ssockets fpsock httpbase httpclient httpsvlt xmlrpc endif ifeq ($(FULL_TARGET),x86_64-freebsd) -override TARGET_UNITS+=servlets fpsock httpbase httpclient httpsvlt xmlrpc +override TARGET_UNITS+=servlets resolve ssockets fpsock httpbase httpclient httpsvlt xmlrpc endif ifeq ($(FULL_TARGET),x86_64-win64) -override TARGET_UNITS+=servlets +override TARGET_UNITS+=servlets resolve ssockets endif ifeq ($(FULL_TARGET),x86_64-embedded) -override TARGET_UNITS+=servlets +override TARGET_UNITS+=servlets resolve ssockets endif ifeq ($(FULL_TARGET),arm-linux) -override TARGET_UNITS+=servlets fpsock httpbase httpclient httpsvlt xmlrpc +override TARGET_UNITS+=servlets resolve ssockets fpsock httpbase httpclient httpsvlt xmlrpc endif ifeq ($(FULL_TARGET),arm-palmos) -override TARGET_UNITS+=servlets +override TARGET_UNITS+=servlets resolve ssockets endif ifeq ($(FULL_TARGET),arm-wince) -override TARGET_UNITS+=servlets +override TARGET_UNITS+=servlets resolve ssockets endif ifeq ($(FULL_TARGET),arm-gba) -override TARGET_UNITS+=servlets +override TARGET_UNITS+=servlets resolve ssockets endif ifeq ($(FULL_TARGET),arm-nds) -override TARGET_UNITS+=servlets +override TARGET_UNITS+=servlets resolve ssockets endif ifeq ($(FULL_TARGET),arm-embedded) -override TARGET_UNITS+=servlets +override TARGET_UNITS+=servlets resolve ssockets endif ifeq ($(FULL_TARGET),arm-symbian) -override TARGET_UNITS+=servlets +override TARGET_UNITS+=servlets resolve ssockets endif ifeq ($(FULL_TARGET),powerpc64-linux) -override TARGET_UNITS+=servlets fpsock httpbase httpclient httpsvlt xmlrpc +override TARGET_UNITS+=servlets resolve ssockets fpsock httpbase httpclient httpsvlt xmlrpc endif ifeq ($(FULL_TARGET),powerpc64-darwin) -override TARGET_UNITS+=servlets +override TARGET_UNITS+=servlets resolve ssockets endif ifeq ($(FULL_TARGET),powerpc64-embedded) -override TARGET_UNITS+=servlets +override TARGET_UNITS+=servlets resolve ssockets endif ifeq ($(FULL_TARGET),i386-linux) override TARGET_RSTS+=fpsock httpsvlt mkxmlrpc @@ -1572,19 +1578,14 @@ override REQUIRE_PACKAGES=rtl netdb fcl-base fcl-xml fcl-passrc ifeq ($(FULL_TARGET),i386-linux) REQUIRE_PACKAGES_RTL=1 REQUIRE_PACKAGES_NETDB=1 -REQUIRE_PACKAGES_HASH=1 -REQUIRE_PACKAGES_PASZLIB=1 -REQUIRE_PACKAGES_LIBASYNC=1 -REQUIRE_PACKAGES_PTHREADS=1 REQUIRE_PACKAGES_FCL-BASE=1 REQUIRE_PACKAGES_FCL-XML=1 REQUIRE_PACKAGES_FCL-PASSRC=1 +REQUIRE_PACKAGES_LIBASYNC=1 endif ifeq ($(FULL_TARGET),i386-go32v2) REQUIRE_PACKAGES_RTL=1 REQUIRE_PACKAGES_NETDB=1 -REQUIRE_PACKAGES_HASH=1 -REQUIRE_PACKAGES_PASZLIB=1 REQUIRE_PACKAGES_FCL-BASE=1 REQUIRE_PACKAGES_FCL-XML=1 REQUIRE_PACKAGES_FCL-PASSRC=1 @@ -1592,8 +1593,6 @@ endif ifeq ($(FULL_TARGET),i386-win32) REQUIRE_PACKAGES_RTL=1 REQUIRE_PACKAGES_NETDB=1 -REQUIRE_PACKAGES_HASH=1 -REQUIRE_PACKAGES_PASZLIB=1 REQUIRE_PACKAGES_WINUNITS=1 REQUIRE_PACKAGES_FCL-BASE=1 REQUIRE_PACKAGES_FCL-XML=1 @@ -1602,8 +1601,6 @@ endif ifeq ($(FULL_TARGET),i386-os2) REQUIRE_PACKAGES_RTL=1 REQUIRE_PACKAGES_NETDB=1 -REQUIRE_PACKAGES_HASH=1 -REQUIRE_PACKAGES_PASZLIB=1 REQUIRE_PACKAGES_FCL-BASE=1 REQUIRE_PACKAGES_FCL-XML=1 REQUIRE_PACKAGES_FCL-PASSRC=1 @@ -1611,21 +1608,14 @@ endif ifeq ($(FULL_TARGET),i386-freebsd) REQUIRE_PACKAGES_RTL=1 REQUIRE_PACKAGES_NETDB=1 -REQUIRE_PACKAGES_HASH=1 -REQUIRE_PACKAGES_PASZLIB=1 -REQUIRE_PACKAGES_LIBASYNC=1 -REQUIRE_PACKAGES_PTHREADS=1 REQUIRE_PACKAGES_FCL-BASE=1 REQUIRE_PACKAGES_FCL-XML=1 REQUIRE_PACKAGES_FCL-PASSRC=1 +REQUIRE_PACKAGES_LIBASYNC=1 endif ifeq ($(FULL_TARGET),i386-beos) REQUIRE_PACKAGES_RTL=1 REQUIRE_PACKAGES_NETDB=1 -REQUIRE_PACKAGES_HASH=1 -REQUIRE_PACKAGES_PASZLIB=1 -REQUIRE_PACKAGES_LIBASYNC=1 -REQUIRE_PACKAGES_PTHREADS=1 REQUIRE_PACKAGES_FCL-BASE=1 REQUIRE_PACKAGES_FCL-XML=1 REQUIRE_PACKAGES_FCL-PASSRC=1 @@ -1633,29 +1623,22 @@ endif ifeq ($(FULL_TARGET),i386-netbsd) REQUIRE_PACKAGES_RTL=1 REQUIRE_PACKAGES_NETDB=1 -REQUIRE_PACKAGES_HASH=1 -REQUIRE_PACKAGES_PASZLIB=1 -REQUIRE_PACKAGES_LIBASYNC=1 REQUIRE_PACKAGES_FCL-BASE=1 REQUIRE_PACKAGES_FCL-XML=1 REQUIRE_PACKAGES_FCL-PASSRC=1 +REQUIRE_PACKAGES_LIBASYNC=1 endif ifeq ($(FULL_TARGET),i386-solaris) REQUIRE_PACKAGES_RTL=1 REQUIRE_PACKAGES_NETDB=1 -REQUIRE_PACKAGES_HASH=1 -REQUIRE_PACKAGES_PASZLIB=1 -REQUIRE_PACKAGES_LIBASYNC=1 -REQUIRE_PACKAGES_PTHREADS=1 REQUIRE_PACKAGES_FCL-BASE=1 REQUIRE_PACKAGES_FCL-XML=1 REQUIRE_PACKAGES_FCL-PASSRC=1 +REQUIRE_PACKAGES_LIBASYNC=1 endif ifeq ($(FULL_TARGET),i386-qnx) REQUIRE_PACKAGES_RTL=1 REQUIRE_PACKAGES_NETDB=1 -REQUIRE_PACKAGES_HASH=1 -REQUIRE_PACKAGES_PASZLIB=1 REQUIRE_PACKAGES_FCL-BASE=1 REQUIRE_PACKAGES_FCL-XML=1 REQUIRE_PACKAGES_FCL-PASSRC=1 @@ -1663,8 +1646,6 @@ endif ifeq ($(FULL_TARGET),i386-netware) REQUIRE_PACKAGES_RTL=1 REQUIRE_PACKAGES_NETDB=1 -REQUIRE_PACKAGES_HASH=1 -REQUIRE_PACKAGES_PASZLIB=1 REQUIRE_PACKAGES_FCL-BASE=1 REQUIRE_PACKAGES_FCL-XML=1 REQUIRE_PACKAGES_FCL-PASSRC=1 @@ -1672,18 +1653,14 @@ endif ifeq ($(FULL_TARGET),i386-openbsd) REQUIRE_PACKAGES_RTL=1 REQUIRE_PACKAGES_NETDB=1 -REQUIRE_PACKAGES_HASH=1 -REQUIRE_PACKAGES_PASZLIB=1 -REQUIRE_PACKAGES_LIBASYNC=1 REQUIRE_PACKAGES_FCL-BASE=1 REQUIRE_PACKAGES_FCL-XML=1 REQUIRE_PACKAGES_FCL-PASSRC=1 +REQUIRE_PACKAGES_LIBASYNC=1 endif ifeq ($(FULL_TARGET),i386-wdosx) REQUIRE_PACKAGES_RTL=1 REQUIRE_PACKAGES_NETDB=1 -REQUIRE_PACKAGES_HASH=1 -REQUIRE_PACKAGES_PASZLIB=1 REQUIRE_PACKAGES_FCL-BASE=1 REQUIRE_PACKAGES_FCL-XML=1 REQUIRE_PACKAGES_FCL-PASSRC=1 @@ -1691,19 +1668,14 @@ endif ifeq ($(FULL_TARGET),i386-darwin) REQUIRE_PACKAGES_RTL=1 REQUIRE_PACKAGES_NETDB=1 -REQUIRE_PACKAGES_HASH=1 -REQUIRE_PACKAGES_PASZLIB=1 -REQUIRE_PACKAGES_LIBASYNC=1 -REQUIRE_PACKAGES_PTHREADS=1 REQUIRE_PACKAGES_FCL-BASE=1 REQUIRE_PACKAGES_FCL-XML=1 REQUIRE_PACKAGES_FCL-PASSRC=1 +REQUIRE_PACKAGES_LIBASYNC=1 endif ifeq ($(FULL_TARGET),i386-emx) REQUIRE_PACKAGES_RTL=1 REQUIRE_PACKAGES_NETDB=1 -REQUIRE_PACKAGES_HASH=1 -REQUIRE_PACKAGES_PASZLIB=1 REQUIRE_PACKAGES_FCL-BASE=1 REQUIRE_PACKAGES_FCL-XML=1 REQUIRE_PACKAGES_FCL-PASSRC=1 @@ -1711,8 +1683,6 @@ endif ifeq ($(FULL_TARGET),i386-watcom) REQUIRE_PACKAGES_RTL=1 REQUIRE_PACKAGES_NETDB=1 -REQUIRE_PACKAGES_HASH=1 -REQUIRE_PACKAGES_PASZLIB=1 REQUIRE_PACKAGES_FCL-BASE=1 REQUIRE_PACKAGES_FCL-XML=1 REQUIRE_PACKAGES_FCL-PASSRC=1 @@ -1720,8 +1690,6 @@ endif ifeq ($(FULL_TARGET),i386-netwlibc) REQUIRE_PACKAGES_RTL=1 REQUIRE_PACKAGES_NETDB=1 -REQUIRE_PACKAGES_HASH=1 -REQUIRE_PACKAGES_PASZLIB=1 REQUIRE_PACKAGES_FCL-BASE=1 REQUIRE_PACKAGES_FCL-XML=1 REQUIRE_PACKAGES_FCL-PASSRC=1 @@ -1729,8 +1697,6 @@ endif ifeq ($(FULL_TARGET),i386-wince) REQUIRE_PACKAGES_RTL=1 REQUIRE_PACKAGES_NETDB=1 -REQUIRE_PACKAGES_HASH=1 -REQUIRE_PACKAGES_PASZLIB=1 REQUIRE_PACKAGES_FCL-BASE=1 REQUIRE_PACKAGES_FCL-XML=1 REQUIRE_PACKAGES_FCL-PASSRC=1 @@ -1738,8 +1704,6 @@ endif ifeq ($(FULL_TARGET),i386-embedded) REQUIRE_PACKAGES_RTL=1 REQUIRE_PACKAGES_NETDB=1 -REQUIRE_PACKAGES_HASH=1 -REQUIRE_PACKAGES_PASZLIB=1 REQUIRE_PACKAGES_FCL-BASE=1 REQUIRE_PACKAGES_FCL-XML=1 REQUIRE_PACKAGES_FCL-PASSRC=1 @@ -1747,8 +1711,6 @@ endif ifeq ($(FULL_TARGET),i386-symbian) REQUIRE_PACKAGES_RTL=1 REQUIRE_PACKAGES_NETDB=1 -REQUIRE_PACKAGES_HASH=1 -REQUIRE_PACKAGES_PASZLIB=1 REQUIRE_PACKAGES_FCL-BASE=1 REQUIRE_PACKAGES_FCL-XML=1 REQUIRE_PACKAGES_FCL-PASSRC=1 @@ -1756,40 +1718,30 @@ endif ifeq ($(FULL_TARGET),m68k-linux) REQUIRE_PACKAGES_RTL=1 REQUIRE_PACKAGES_NETDB=1 -REQUIRE_PACKAGES_HASH=1 -REQUIRE_PACKAGES_PASZLIB=1 -REQUIRE_PACKAGES_LIBASYNC=1 -REQUIRE_PACKAGES_PTHREADS=1 REQUIRE_PACKAGES_FCL-BASE=1 REQUIRE_PACKAGES_FCL-XML=1 REQUIRE_PACKAGES_FCL-PASSRC=1 +REQUIRE_PACKAGES_LIBASYNC=1 endif ifeq ($(FULL_TARGET),m68k-freebsd) REQUIRE_PACKAGES_RTL=1 REQUIRE_PACKAGES_NETDB=1 -REQUIRE_PACKAGES_HASH=1 -REQUIRE_PACKAGES_PASZLIB=1 -REQUIRE_PACKAGES_LIBASYNC=1 -REQUIRE_PACKAGES_PTHREADS=1 REQUIRE_PACKAGES_FCL-BASE=1 REQUIRE_PACKAGES_FCL-XML=1 REQUIRE_PACKAGES_FCL-PASSRC=1 +REQUIRE_PACKAGES_LIBASYNC=1 endif ifeq ($(FULL_TARGET),m68k-netbsd) REQUIRE_PACKAGES_RTL=1 REQUIRE_PACKAGES_NETDB=1 -REQUIRE_PACKAGES_HASH=1 -REQUIRE_PACKAGES_PASZLIB=1 -REQUIRE_PACKAGES_LIBASYNC=1 REQUIRE_PACKAGES_FCL-BASE=1 REQUIRE_PACKAGES_FCL-XML=1 REQUIRE_PACKAGES_FCL-PASSRC=1 +REQUIRE_PACKAGES_LIBASYNC=1 endif ifeq ($(FULL_TARGET),m68k-amiga) REQUIRE_PACKAGES_RTL=1 REQUIRE_PACKAGES_NETDB=1 -REQUIRE_PACKAGES_HASH=1 -REQUIRE_PACKAGES_PASZLIB=1 REQUIRE_PACKAGES_FCL-BASE=1 REQUIRE_PACKAGES_FCL-XML=1 REQUIRE_PACKAGES_FCL-PASSRC=1 @@ -1797,8 +1749,6 @@ endif ifeq ($(FULL_TARGET),m68k-atari) REQUIRE_PACKAGES_RTL=1 REQUIRE_PACKAGES_NETDB=1 -REQUIRE_PACKAGES_HASH=1 -REQUIRE_PACKAGES_PASZLIB=1 REQUIRE_PACKAGES_FCL-BASE=1 REQUIRE_PACKAGES_FCL-XML=1 REQUIRE_PACKAGES_FCL-PASSRC=1 @@ -1806,18 +1756,14 @@ endif ifeq ($(FULL_TARGET),m68k-openbsd) REQUIRE_PACKAGES_RTL=1 REQUIRE_PACKAGES_NETDB=1 -REQUIRE_PACKAGES_HASH=1 -REQUIRE_PACKAGES_PASZLIB=1 -REQUIRE_PACKAGES_LIBASYNC=1 REQUIRE_PACKAGES_FCL-BASE=1 REQUIRE_PACKAGES_FCL-XML=1 REQUIRE_PACKAGES_FCL-PASSRC=1 +REQUIRE_PACKAGES_LIBASYNC=1 endif ifeq ($(FULL_TARGET),m68k-palmos) REQUIRE_PACKAGES_RTL=1 REQUIRE_PACKAGES_NETDB=1 -REQUIRE_PACKAGES_HASH=1 -REQUIRE_PACKAGES_PASZLIB=1 REQUIRE_PACKAGES_FCL-BASE=1 REQUIRE_PACKAGES_FCL-XML=1 REQUIRE_PACKAGES_FCL-PASSRC=1 @@ -1825,8 +1771,6 @@ endif ifeq ($(FULL_TARGET),m68k-embedded) REQUIRE_PACKAGES_RTL=1 REQUIRE_PACKAGES_NETDB=1 -REQUIRE_PACKAGES_HASH=1 -REQUIRE_PACKAGES_PASZLIB=1 REQUIRE_PACKAGES_FCL-BASE=1 REQUIRE_PACKAGES_FCL-XML=1 REQUIRE_PACKAGES_FCL-PASSRC=1 @@ -1834,29 +1778,22 @@ endif ifeq ($(FULL_TARGET),powerpc-linux) REQUIRE_PACKAGES_RTL=1 REQUIRE_PACKAGES_NETDB=1 -REQUIRE_PACKAGES_HASH=1 -REQUIRE_PACKAGES_PASZLIB=1 -REQUIRE_PACKAGES_LIBASYNC=1 -REQUIRE_PACKAGES_PTHREADS=1 REQUIRE_PACKAGES_FCL-BASE=1 REQUIRE_PACKAGES_FCL-XML=1 REQUIRE_PACKAGES_FCL-PASSRC=1 +REQUIRE_PACKAGES_LIBASYNC=1 endif ifeq ($(FULL_TARGET),powerpc-netbsd) REQUIRE_PACKAGES_RTL=1 REQUIRE_PACKAGES_NETDB=1 -REQUIRE_PACKAGES_HASH=1 -REQUIRE_PACKAGES_PASZLIB=1 -REQUIRE_PACKAGES_LIBASYNC=1 REQUIRE_PACKAGES_FCL-BASE=1 REQUIRE_PACKAGES_FCL-XML=1 REQUIRE_PACKAGES_FCL-PASSRC=1 +REQUIRE_PACKAGES_LIBASYNC=1 endif ifeq ($(FULL_TARGET),powerpc-amiga) REQUIRE_PACKAGES_RTL=1 REQUIRE_PACKAGES_NETDB=1 -REQUIRE_PACKAGES_HASH=1 -REQUIRE_PACKAGES_PASZLIB=1 REQUIRE_PACKAGES_FCL-BASE=1 REQUIRE_PACKAGES_FCL-XML=1 REQUIRE_PACKAGES_FCL-PASSRC=1 @@ -1864,8 +1801,6 @@ endif ifeq ($(FULL_TARGET),powerpc-macos) REQUIRE_PACKAGES_RTL=1 REQUIRE_PACKAGES_NETDB=1 -REQUIRE_PACKAGES_HASH=1 -REQUIRE_PACKAGES_PASZLIB=1 REQUIRE_PACKAGES_FCL-BASE=1 REQUIRE_PACKAGES_FCL-XML=1 REQUIRE_PACKAGES_FCL-PASSRC=1 @@ -1873,19 +1808,14 @@ endif ifeq ($(FULL_TARGET),powerpc-darwin) REQUIRE_PACKAGES_RTL=1 REQUIRE_PACKAGES_NETDB=1 -REQUIRE_PACKAGES_HASH=1 -REQUIRE_PACKAGES_PASZLIB=1 -REQUIRE_PACKAGES_LIBASYNC=1 -REQUIRE_PACKAGES_PTHREADS=1 REQUIRE_PACKAGES_FCL-BASE=1 REQUIRE_PACKAGES_FCL-XML=1 REQUIRE_PACKAGES_FCL-PASSRC=1 +REQUIRE_PACKAGES_LIBASYNC=1 endif ifeq ($(FULL_TARGET),powerpc-morphos) REQUIRE_PACKAGES_RTL=1 REQUIRE_PACKAGES_NETDB=1 -REQUIRE_PACKAGES_HASH=1 -REQUIRE_PACKAGES_PASZLIB=1 REQUIRE_PACKAGES_FCL-BASE=1 REQUIRE_PACKAGES_FCL-XML=1 REQUIRE_PACKAGES_FCL-PASSRC=1 @@ -1893,8 +1823,6 @@ endif ifeq ($(FULL_TARGET),powerpc-embedded) REQUIRE_PACKAGES_RTL=1 REQUIRE_PACKAGES_NETDB=1 -REQUIRE_PACKAGES_HASH=1 -REQUIRE_PACKAGES_PASZLIB=1 REQUIRE_PACKAGES_FCL-BASE=1 REQUIRE_PACKAGES_FCL-XML=1 REQUIRE_PACKAGES_FCL-PASSRC=1 @@ -1902,40 +1830,30 @@ endif ifeq ($(FULL_TARGET),sparc-linux) REQUIRE_PACKAGES_RTL=1 REQUIRE_PACKAGES_NETDB=1 -REQUIRE_PACKAGES_HASH=1 -REQUIRE_PACKAGES_PASZLIB=1 -REQUIRE_PACKAGES_LIBASYNC=1 -REQUIRE_PACKAGES_PTHREADS=1 REQUIRE_PACKAGES_FCL-BASE=1 REQUIRE_PACKAGES_FCL-XML=1 REQUIRE_PACKAGES_FCL-PASSRC=1 +REQUIRE_PACKAGES_LIBASYNC=1 endif ifeq ($(FULL_TARGET),sparc-netbsd) REQUIRE_PACKAGES_RTL=1 REQUIRE_PACKAGES_NETDB=1 -REQUIRE_PACKAGES_HASH=1 -REQUIRE_PACKAGES_PASZLIB=1 -REQUIRE_PACKAGES_LIBASYNC=1 REQUIRE_PACKAGES_FCL-BASE=1 REQUIRE_PACKAGES_FCL-XML=1 REQUIRE_PACKAGES_FCL-PASSRC=1 +REQUIRE_PACKAGES_LIBASYNC=1 endif ifeq ($(FULL_TARGET),sparc-solaris) REQUIRE_PACKAGES_RTL=1 REQUIRE_PACKAGES_NETDB=1 -REQUIRE_PACKAGES_HASH=1 -REQUIRE_PACKAGES_PASZLIB=1 -REQUIRE_PACKAGES_LIBASYNC=1 -REQUIRE_PACKAGES_PTHREADS=1 REQUIRE_PACKAGES_FCL-BASE=1 REQUIRE_PACKAGES_FCL-XML=1 REQUIRE_PACKAGES_FCL-PASSRC=1 +REQUIRE_PACKAGES_LIBASYNC=1 endif ifeq ($(FULL_TARGET),sparc-embedded) REQUIRE_PACKAGES_RTL=1 REQUIRE_PACKAGES_NETDB=1 -REQUIRE_PACKAGES_HASH=1 -REQUIRE_PACKAGES_PASZLIB=1 REQUIRE_PACKAGES_FCL-BASE=1 REQUIRE_PACKAGES_FCL-XML=1 REQUIRE_PACKAGES_FCL-PASSRC=1 @@ -1943,30 +1861,22 @@ endif ifeq ($(FULL_TARGET),x86_64-linux) REQUIRE_PACKAGES_RTL=1 REQUIRE_PACKAGES_NETDB=1 -REQUIRE_PACKAGES_HASH=1 -REQUIRE_PACKAGES_PASZLIB=1 -REQUIRE_PACKAGES_LIBASYNC=1 -REQUIRE_PACKAGES_PTHREADS=1 REQUIRE_PACKAGES_FCL-BASE=1 REQUIRE_PACKAGES_FCL-XML=1 REQUIRE_PACKAGES_FCL-PASSRC=1 +REQUIRE_PACKAGES_LIBASYNC=1 endif ifeq ($(FULL_TARGET),x86_64-freebsd) REQUIRE_PACKAGES_RTL=1 REQUIRE_PACKAGES_NETDB=1 -REQUIRE_PACKAGES_HASH=1 -REQUIRE_PACKAGES_PASZLIB=1 -REQUIRE_PACKAGES_LIBASYNC=1 -REQUIRE_PACKAGES_PTHREADS=1 REQUIRE_PACKAGES_FCL-BASE=1 REQUIRE_PACKAGES_FCL-XML=1 REQUIRE_PACKAGES_FCL-PASSRC=1 +REQUIRE_PACKAGES_LIBASYNC=1 endif ifeq ($(FULL_TARGET),x86_64-win64) REQUIRE_PACKAGES_RTL=1 REQUIRE_PACKAGES_NETDB=1 -REQUIRE_PACKAGES_HASH=1 -REQUIRE_PACKAGES_PASZLIB=1 REQUIRE_PACKAGES_WINUNITS=1 REQUIRE_PACKAGES_FCL-BASE=1 REQUIRE_PACKAGES_FCL-XML=1 @@ -1975,8 +1885,6 @@ endif ifeq ($(FULL_TARGET),x86_64-embedded) REQUIRE_PACKAGES_RTL=1 REQUIRE_PACKAGES_NETDB=1 -REQUIRE_PACKAGES_HASH=1 -REQUIRE_PACKAGES_PASZLIB=1 REQUIRE_PACKAGES_FCL-BASE=1 REQUIRE_PACKAGES_FCL-XML=1 REQUIRE_PACKAGES_FCL-PASSRC=1 @@ -1984,19 +1892,14 @@ endif ifeq ($(FULL_TARGET),arm-linux) REQUIRE_PACKAGES_RTL=1 REQUIRE_PACKAGES_NETDB=1 -REQUIRE_PACKAGES_HASH=1 -REQUIRE_PACKAGES_PASZLIB=1 -REQUIRE_PACKAGES_LIBASYNC=1 -REQUIRE_PACKAGES_PTHREADS=1 REQUIRE_PACKAGES_FCL-BASE=1 REQUIRE_PACKAGES_FCL-XML=1 REQUIRE_PACKAGES_FCL-PASSRC=1 +REQUIRE_PACKAGES_LIBASYNC=1 endif ifeq ($(FULL_TARGET),arm-palmos) REQUIRE_PACKAGES_RTL=1 REQUIRE_PACKAGES_NETDB=1 -REQUIRE_PACKAGES_HASH=1 -REQUIRE_PACKAGES_PASZLIB=1 REQUIRE_PACKAGES_FCL-BASE=1 REQUIRE_PACKAGES_FCL-XML=1 REQUIRE_PACKAGES_FCL-PASSRC=1 @@ -2004,8 +1907,6 @@ endif ifeq ($(FULL_TARGET),arm-wince) REQUIRE_PACKAGES_RTL=1 REQUIRE_PACKAGES_NETDB=1 -REQUIRE_PACKAGES_HASH=1 -REQUIRE_PACKAGES_PASZLIB=1 REQUIRE_PACKAGES_FCL-BASE=1 REQUIRE_PACKAGES_FCL-XML=1 REQUIRE_PACKAGES_FCL-PASSRC=1 @@ -2013,8 +1914,6 @@ endif ifeq ($(FULL_TARGET),arm-gba) REQUIRE_PACKAGES_RTL=1 REQUIRE_PACKAGES_NETDB=1 -REQUIRE_PACKAGES_HASH=1 -REQUIRE_PACKAGES_PASZLIB=1 REQUIRE_PACKAGES_FCL-BASE=1 REQUIRE_PACKAGES_FCL-XML=1 REQUIRE_PACKAGES_FCL-PASSRC=1 @@ -2022,8 +1921,6 @@ endif ifeq ($(FULL_TARGET),arm-nds) REQUIRE_PACKAGES_RTL=1 REQUIRE_PACKAGES_NETDB=1 -REQUIRE_PACKAGES_HASH=1 -REQUIRE_PACKAGES_PASZLIB=1 REQUIRE_PACKAGES_FCL-BASE=1 REQUIRE_PACKAGES_FCL-XML=1 REQUIRE_PACKAGES_FCL-PASSRC=1 @@ -2031,8 +1928,6 @@ endif ifeq ($(FULL_TARGET),arm-embedded) REQUIRE_PACKAGES_RTL=1 REQUIRE_PACKAGES_NETDB=1 -REQUIRE_PACKAGES_HASH=1 -REQUIRE_PACKAGES_PASZLIB=1 REQUIRE_PACKAGES_FCL-BASE=1 REQUIRE_PACKAGES_FCL-XML=1 REQUIRE_PACKAGES_FCL-PASSRC=1 @@ -2040,8 +1935,6 @@ endif ifeq ($(FULL_TARGET),arm-symbian) REQUIRE_PACKAGES_RTL=1 REQUIRE_PACKAGES_NETDB=1 -REQUIRE_PACKAGES_HASH=1 -REQUIRE_PACKAGES_PASZLIB=1 REQUIRE_PACKAGES_FCL-BASE=1 REQUIRE_PACKAGES_FCL-XML=1 REQUIRE_PACKAGES_FCL-PASSRC=1 @@ -2049,30 +1942,22 @@ endif ifeq ($(FULL_TARGET),powerpc64-linux) REQUIRE_PACKAGES_RTL=1 REQUIRE_PACKAGES_NETDB=1 -REQUIRE_PACKAGES_HASH=1 -REQUIRE_PACKAGES_PASZLIB=1 -REQUIRE_PACKAGES_LIBASYNC=1 -REQUIRE_PACKAGES_PTHREADS=1 REQUIRE_PACKAGES_FCL-BASE=1 REQUIRE_PACKAGES_FCL-XML=1 REQUIRE_PACKAGES_FCL-PASSRC=1 +REQUIRE_PACKAGES_LIBASYNC=1 endif ifeq ($(FULL_TARGET),powerpc64-darwin) REQUIRE_PACKAGES_RTL=1 REQUIRE_PACKAGES_NETDB=1 -REQUIRE_PACKAGES_HASH=1 -REQUIRE_PACKAGES_PASZLIB=1 -REQUIRE_PACKAGES_LIBASYNC=1 -REQUIRE_PACKAGES_PTHREADS=1 REQUIRE_PACKAGES_FCL-BASE=1 REQUIRE_PACKAGES_FCL-XML=1 REQUIRE_PACKAGES_FCL-PASSRC=1 +REQUIRE_PACKAGES_LIBASYNC=1 endif ifeq ($(FULL_TARGET),powerpc64-embedded) REQUIRE_PACKAGES_RTL=1 REQUIRE_PACKAGES_NETDB=1 -REQUIRE_PACKAGES_HASH=1 -REQUIRE_PACKAGES_PASZLIB=1 REQUIRE_PACKAGES_FCL-BASE=1 REQUIRE_PACKAGES_FCL-XML=1 REQUIRE_PACKAGES_FCL-PASSRC=1 @@ -2129,110 +2014,6 @@ ifdef UNITDIR_NETDB override COMPILER_UNITDIR+=$(UNITDIR_NETDB) endif endif -ifdef REQUIRE_PACKAGES_HASH -PACKAGEDIR_HASH:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /hash/Makefile.fpc,$(PACKAGESDIR)))))) -ifneq ($(PACKAGEDIR_HASH),) -ifneq ($(wildcard $(PACKAGEDIR_HASH)/units/$(TARGETSUFFIX)),) -UNITDIR_HASH=$(PACKAGEDIR_HASH)/units/$(TARGETSUFFIX) -else -UNITDIR_HASH=$(PACKAGEDIR_HASH) -endif -ifdef CHECKDEPEND -$(PACKAGEDIR_HASH)/$(FPCMADE): - $(MAKE) -C $(PACKAGEDIR_HASH) $(FPCMADE) -override ALLDEPENDENCIES+=$(PACKAGEDIR_HASH)/$(FPCMADE) -endif -else -PACKAGEDIR_HASH= -UNITDIR_HASH:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /hash/Package.fpc,$(UNITSDIR))))) -ifneq ($(UNITDIR_HASH),) -UNITDIR_HASH:=$(firstword $(UNITDIR_HASH)) -else -UNITDIR_HASH= -endif -endif -ifdef UNITDIR_HASH -override COMPILER_UNITDIR+=$(UNITDIR_HASH) -endif -endif -ifdef REQUIRE_PACKAGES_PASZLIB -PACKAGEDIR_PASZLIB:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /paszlib/Makefile.fpc,$(PACKAGESDIR)))))) -ifneq ($(PACKAGEDIR_PASZLIB),) -ifneq ($(wildcard $(PACKAGEDIR_PASZLIB)/units/$(TARGETSUFFIX)),) -UNITDIR_PASZLIB=$(PACKAGEDIR_PASZLIB)/units/$(TARGETSUFFIX) -else -UNITDIR_PASZLIB=$(PACKAGEDIR_PASZLIB) -endif -ifdef CHECKDEPEND -$(PACKAGEDIR_PASZLIB)/$(FPCMADE): - $(MAKE) -C $(PACKAGEDIR_PASZLIB) $(FPCMADE) -override ALLDEPENDENCIES+=$(PACKAGEDIR_PASZLIB)/$(FPCMADE) -endif -else -PACKAGEDIR_PASZLIB= -UNITDIR_PASZLIB:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /paszlib/Package.fpc,$(UNITSDIR))))) -ifneq ($(UNITDIR_PASZLIB),) -UNITDIR_PASZLIB:=$(firstword $(UNITDIR_PASZLIB)) -else -UNITDIR_PASZLIB= -endif -endif -ifdef UNITDIR_PASZLIB -override COMPILER_UNITDIR+=$(UNITDIR_PASZLIB) -endif -endif -ifdef REQUIRE_PACKAGES_LIBASYNC -PACKAGEDIR_LIBASYNC:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /libasync/Makefile.fpc,$(PACKAGESDIR)))))) -ifneq ($(PACKAGEDIR_LIBASYNC),) -ifneq ($(wildcard $(PACKAGEDIR_LIBASYNC)/units/$(TARGETSUFFIX)),) -UNITDIR_LIBASYNC=$(PACKAGEDIR_LIBASYNC)/units/$(TARGETSUFFIX) -else -UNITDIR_LIBASYNC=$(PACKAGEDIR_LIBASYNC) -endif -ifdef CHECKDEPEND -$(PACKAGEDIR_LIBASYNC)/$(FPCMADE): - $(MAKE) -C $(PACKAGEDIR_LIBASYNC) $(FPCMADE) -override ALLDEPENDENCIES+=$(PACKAGEDIR_LIBASYNC)/$(FPCMADE) -endif -else -PACKAGEDIR_LIBASYNC= -UNITDIR_LIBASYNC:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /libasync/Package.fpc,$(UNITSDIR))))) -ifneq ($(UNITDIR_LIBASYNC),) -UNITDIR_LIBASYNC:=$(firstword $(UNITDIR_LIBASYNC)) -else -UNITDIR_LIBASYNC= -endif -endif -ifdef UNITDIR_LIBASYNC -override COMPILER_UNITDIR+=$(UNITDIR_LIBASYNC) -endif -endif -ifdef REQUIRE_PACKAGES_PTHREADS -PACKAGEDIR_PTHREADS:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /pthreads/Makefile.fpc,$(PACKAGESDIR)))))) -ifneq ($(PACKAGEDIR_PTHREADS),) -ifneq ($(wildcard $(PACKAGEDIR_PTHREADS)/units/$(TARGETSUFFIX)),) -UNITDIR_PTHREADS=$(PACKAGEDIR_PTHREADS)/units/$(TARGETSUFFIX) -else -UNITDIR_PTHREADS=$(PACKAGEDIR_PTHREADS) -endif -ifdef CHECKDEPEND -$(PACKAGEDIR_PTHREADS)/$(FPCMADE): - $(MAKE) -C $(PACKAGEDIR_PTHREADS) $(FPCMADE) -override ALLDEPENDENCIES+=$(PACKAGEDIR_PTHREADS)/$(FPCMADE) -endif -else -PACKAGEDIR_PTHREADS= -UNITDIR_PTHREADS:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /pthreads/Package.fpc,$(UNITSDIR))))) -ifneq ($(UNITDIR_PTHREADS),) -UNITDIR_PTHREADS:=$(firstword $(UNITDIR_PTHREADS)) -else -UNITDIR_PTHREADS= -endif -endif -ifdef UNITDIR_PTHREADS -override COMPILER_UNITDIR+=$(UNITDIR_PTHREADS) -endif -endif ifdef REQUIRE_PACKAGES_FCL-BASE PACKAGEDIR_FCL-BASE:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /fcl-base/Makefile.fpc,$(PACKAGESDIR)))))) ifneq ($(PACKAGEDIR_FCL-BASE),) @@ -2311,6 +2092,32 @@ ifdef UNITDIR_FCL-PASSRC override COMPILER_UNITDIR+=$(UNITDIR_FCL-PASSRC) endif endif +ifdef REQUIRE_PACKAGES_LIBASYNC +PACKAGEDIR_LIBASYNC:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /libasync/Makefile.fpc,$(PACKAGESDIR)))))) +ifneq ($(PACKAGEDIR_LIBASYNC),) +ifneq ($(wildcard $(PACKAGEDIR_LIBASYNC)/units/$(TARGETSUFFIX)),) +UNITDIR_LIBASYNC=$(PACKAGEDIR_LIBASYNC)/units/$(TARGETSUFFIX) +else +UNITDIR_LIBASYNC=$(PACKAGEDIR_LIBASYNC) +endif +ifdef CHECKDEPEND +$(PACKAGEDIR_LIBASYNC)/$(FPCMADE): + $(MAKE) -C $(PACKAGEDIR_LIBASYNC) $(FPCMADE) +override ALLDEPENDENCIES+=$(PACKAGEDIR_LIBASYNC)/$(FPCMADE) +endif +else +PACKAGEDIR_LIBASYNC= +UNITDIR_LIBASYNC:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /libasync/Package.fpc,$(UNITSDIR))))) +ifneq ($(UNITDIR_LIBASYNC),) +UNITDIR_LIBASYNC:=$(firstword $(UNITDIR_LIBASYNC)) +else +UNITDIR_LIBASYNC= +endif +endif +ifdef UNITDIR_LIBASYNC +override COMPILER_UNITDIR+=$(UNITDIR_LIBASYNC) +endif +endif ifdef REQUIRE_PACKAGES_WINUNITS PACKAGEDIR_WINUNITS:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /winunits/Makefile.fpc,$(PACKAGESDIR)))))) ifneq ($(PACKAGEDIR_WINUNITS),) @@ -2351,7 +2158,7 @@ override FPCOPT+=-FD$(NEW_BINUTILS_PATH) endif ifndef CROSSBOOTSTRAP ifneq ($(BINUTILSPREFIX),) -override FPCOPT+=-XP$(BINUTILSPREFIX) +override FPCOPT+=-XP$(BINUTILSPREFIX) endif ifneq ($(BINUTILSPREFIX),) override FPCOPT+=-Xr$(RLINKPATH) @@ -2483,9 +2290,13 @@ ifeq (,$(findstring -s ,$(COMPILER))) EXECPPAS= else ifeq ($(FULL_SOURCE),$(FULL_TARGET)) +ifdef RUNBATCH +EXECPPAS:=@$(RUNBATCH) $(PPAS) +else EXECPPAS:=@$(PPAS) endif endif +endif .PHONY: fpc_units ifneq ($(TARGET_UNITS),) override ALLTARGET+=fpc_units @@ -2727,8 +2538,12 @@ endif ifdef inUnix /bin/sh $(ZIPWRAPPER) else +ifdef RUNBATCH + $(RUNBATCH) (ZIPWRAPPER) +else $(ZIPWRAPPER) endif +endif $(DEL) $(ZIPWRAPPER) else $(ZIPCMD_CDPACK) ; $(ZIPCMD_ZIP) ; $(ZIPCMD_CDBASE) diff --git a/packages/fcl-net/Makefile.fpc b/packages/fcl-net/Makefile.fpc index f37c2ed4c0..07da812e7e 100644 --- a/packages/fcl-net/Makefile.fpc +++ b/packages/fcl-net/Makefile.fpc @@ -7,7 +7,7 @@ name=fcl-net version=2.0.0 [target] -units=servlets +units=servlets resolve ssockets units_linux=fpsock httpbase httpclient httpsvlt xmlrpc units_freebsd=fpsock httpbase httpclient httpsvlt xmlrpc units_netbsd=fpsock httpbase httpclient httpsvlt xmlrpc @@ -23,21 +23,9 @@ rsts_freebsd=fpsock httpsvlt mkxmlrpc rsts_darwin=fpsock httpsvlt mkxmlrpc rsts_netbsd=fpsock httpsvlt mkxmlrpc rsts_openbsd=fpsock httpsvlt mkxmlrpc -#exampledirs_linux=tests -#exampledirs_freebsd=tests -#exampledirs_darwin=tests -#exampledirs_netbsd=tests -#exampledirs_openbsd=tests [require] -packages=netdb fcl-base fcl-xml fcl-passrc - -packages_linux=libasync -packages_freebsd=libasync -packages_darwin=libasync -packages_solaris=libasync -packages_netbsd=libasync -packages_openbsd=libasync +packages=netdb fcl-base fcl-xml fcl-passrc fcl-async [compiler] options=-S2h diff --git a/packages/fcl-net/src/netware/resolve.inc b/packages/fcl-net/src/netware/resolve.inc new file mode 100644 index 0000000000..29d6c092a2 --- /dev/null +++ b/packages/fcl-net/src/netware/resolve.inc @@ -0,0 +1 @@ +{$include ../win/resolve.inc} diff --git a/packages/fcl-net/src/netwlibc/resolve.inc b/packages/fcl-net/src/netwlibc/resolve.inc new file mode 100644 index 0000000000..1992930637 --- /dev/null +++ b/packages/fcl-net/src/netwlibc/resolve.inc @@ -0,0 +1,5 @@ +{netware has winsock like win32} +{use win32 implementation based on winsock} +{$include ../win/resolve.inc} + + diff --git a/packages/fcl-net/src/os2/resolve.inc b/packages/fcl-net/src/os2/resolve.inc new file mode 100644 index 0000000000..830d680038 --- /dev/null +++ b/packages/fcl-net/src/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; diff --git a/packages/fcl-net/src/resolve.pp b/packages/fcl-net/src/resolve.pp new file mode 100644 index 0000000000..e588f62ae9 --- /dev/null +++ b/packages/fcl-net/src/resolve.pp @@ -0,0 +1,825 @@ +{$MODE OBJFPC} +{$H+} +Unit resolve; + +{$ifndef win32} +// Here till BSD supports the netbsd unit. +// MvdV: NetBSD unit? Where? +{$ifdef Unix} +// Undefine this to use the C library resolve routines. +// Don't use under win32, netdb does not work on Win32 (yet) !! +{$define usenetdb} +{$endif Unix} +{$endif} +{ -------------------------------------------------------------------- + Unit for internet domain calls. + Copyright (C) 2003 Michael Van Canneyt + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 1, or (at your option) + any later version. + + 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. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + + ------------------------------------------------------------------- } + +interface + +uses + Sockets,Classes,UriParser; + +Type + THostAddr = in_addr; + PHostAddr = ^THostAddr; + TNetAddr = in_addr; + PNetAddr = ^TNetAddr; + +Type + +{ --------------------------------------------------------------------- + TResolver + ---------------------------------------------------------------------} + + TResolver = Class (TComponent) + Private + FName : String; + FAliases : TStringList; + FRaiseOnError : Boolean; + FLastError: Integer; + Function GetAlias(Index : Integer) : STring; + Function GetAliasCount : Integer; + Function GetAliasSorted : Boolean; + Procedure SetAliasSorted (Value : Boolean); + Protected + Procedure CheckOperation(Msg : String); + Function NameLookup(Const S : String) : Boolean; virtual; + Procedure SaveAliases(P : PPChar); + Public + Constructor Create(AOwner : TComponent); override; + Destructor Destroy; override; + Procedure ClearData; virtual; + Property ResolvedName : String Read FName; + Property Aliases [Index : integer ] : string Read GetAlias; + Property AliasCount : Integer read GetAliasCount; + Property SortAliases : Boolean Read GetAliasSorted Write SetAliasSorted; + Property RaiseOnError : Boolean Read FRaiseOnError Write FRAiseOnError; + Property LastError : Integer Read FlastError; + end; + +{ --------------------------------------------------------------------- + THostResolver + ---------------------------------------------------------------------} + + THostResolver = Class(TResolver) + Private + FHostAddress : THostAddr; + FAddressCount : Integer; + FAddresses : PHostAddr; + Function GetAddress (Index : Integer) : THostAddr; + Function GetNetAddress (Index : Integer) : THostAddr; + Function GetNetHostAddress : THostAddr; + Function GetAsString : String; + Procedure SaveHostEntry (Entry : Pointer); + Public + Procedure ClearData; Override; + Function NameLookup(Const S : String) : Boolean; override; + Function AddressLookup(Const S : String) : Boolean; virtual; + Function AddressLookup(Const Address : THostAddr) : Boolean; virtual; + Property HostAddress : THostAddr Read FHostAddress; + Property NetHostAddress : THostAddr Read GetNetHostAddress; + Property AddressAsString : String Read GetAsString; + Property AddressCount : Integer Read FAddressCount ; + Property Addresses [Index : Integer] : ThostAddr Read GetAddress; + Property NetAddresses [Index : Integer] : ThostAddr Read GetNetAddress; + end; + +{ --------------------------------------------------------------------- + TNetResolver + ---------------------------------------------------------------------} + + TNetResolver = Class(TResolver) + Private + FNetAddress : TNetAddr; + FAddrType : Integer; + Function GetAsString : String; + Procedure SaveNetEntry(Entry : Pointer); + Function GetNetAddress : TNetAddr; + Public + Procedure ClearData; override; + Function NameLookup(Const S : String) : boolean; override; + Function AddressLookup(Const S : String) : Boolean; virtual; + Function AddressLookup(Const Address : TNetAddr) : Boolean; virtual; + Property NetAddress : TNetAddr Read FNetAddress; + Property NetNetAddress : TNetAddr Read GetNetAddress; + Property AddressAsString : String Read GetAsString; + Property AddressType : Integer Read FAddrType; + end; + +{ --------------------------------------------------------------------- + TServiceResolver + ---------------------------------------------------------------------} + + TServiceResolver = Class(TResolver) + private + FProtocol : String; + FPort : Integer; + Procedure SaveServiceEntry(Entry : Pointer); + Function GetNetPort : Integer ; + public + Procedure ClearData; override; + Function NameLookup (Const S : String) : boolean; override; + Function NameLookup (Const S,Proto : String) : Boolean; + Function PortLookup (APort : Longint; Proto: string) : Boolean; + Property Protocol : String Read FProtocol; + Property Port : Integer Read FPort; + Property NetPort : Integer Read GetNetPort; + end; + + TURIParser = Class(TComponent) + Private + FActive : Boolean; + FProtocol: String; + FUsername: String; + FPassword: String; + FHost: String; + FPort: Word; + FPath: String; + FDocument: String; + FParams: String; + FBookmark: String; + FURI : String; + Protected + Procedure SetElement (Index : Integer; Value : String);Virtual; + Function GetElement(Index : Integer) : String; + Procedure SetPort(Value : Word); + Procedure SetURI(Value : String); + Public + Procedure Clear; + Procedure ParseUri(AURI : String); + Function ComposeURI : String; + Published + Property Port: Word Read FPort Write SetPort; + Property Protocol: String Index 0 Read GetElement Write SetElement; + Property Username: String Index 1 Read GetElement Write SetElement; + Property Password: String Index 2 Read GetElement Write SetElement; + Property Host: String Index 3 Read GetElement Write SetElement; + Property Path: String index 4 Read GetElement Write SetElement; + Property Document: String index 5 read GetElement Write SetElement; + Property Params: String Index 6 read GetElement Write SetElement; + Property Bookmark: String Index 7 Read GetElement Write SetElement; + Property URI : String Read FURI write SetURI; + Property Active : Boolean Read FActive Write FActive; + end; + + +Resourcestring + SErrHostByName = 'Host by name'; + SErrHostByAddr = 'Host by address'; + SErrNetByName = 'Net by name'; + SErrServByName = 'Service by name'; + SErrServByPort = 'Service by port'; + +Implementation + +{ --------------------------------------------------------------------- + Include system dependent stuff. + ---------------------------------------------------------------------} + +{$ifdef usenetdb} +uses netdb; +{$else} +{$i resolve.inc} +{$endif} + +{ --------------------------------------------------------------------- + TResolver + ---------------------------------------------------------------------} + +Constructor TResolver.Create(AOwner : TComponent); + +begin + Inherited; + FAliases:=TstringList.Create; +end; + +Destructor TResolver.Destroy; + +begin + ClearData; + FAliases.Free; +end; + +Procedure TResolver.ClearData; + +begin + FName:=''; + FAliases.Clear; +end; + +Function TResolver.GetAlias(Index : Integer) : STring; + +begin + Result:=FAliases[Index]; +end; + +Function TResolver.GetAliasCount : Integer; + +begin + Result:=FAliases.Count; +end; + +Function TResolver.GetAliasSorted : Boolean; + +begin + Result:=FAliases.Sorted; +end; + +Procedure TResolver.SetAliasSorted (Value : Boolean); + +begin + FAliases.Sorted:=Value; +end; + +Procedure TResolver.CheckOperation(Msg : String); + +begin +end; + +Function TResolver.NameLookup(Const S : String) : Boolean; + +begin + ClearData; + FName:=S; + Result:=True; +end; + +Procedure TResolver.SaveAliases(P : PPChar); + +Var + I : Integer; + +begin + If (P<>Nil) then + begin + I:=0; + While P[I]<>Nil do + begin + FAliases.Add(StrPas(P[I])); + Inc(I); + end; + end; +end; + + +{ --------------------------------------------------------------------- + THostResolver + ---------------------------------------------------------------------} + +Function THostResolver.GetAddress (Index : Integer) : THostAddr; + +begin + If (Index>=0) and (Index<FAddressCount) then + Result:=FAddresses[Index]; +end; + +Function THostResolver.GetAsString : String; + +begin + Result:=HostAddrToStr(FHostAddress); +end; + +Procedure THostResolver.ClearData; + +begin + Inherited; + FHostAddress:=NoAddress; + If FAddressCount<>0 Then + FreeMem(FAddresses); + FAddressCount:=0; + FAddresses:=Nil; +end; + +Function THostResolver.AddressLookup(Const S : String) : Boolean; + +begin + Result:=AddressLookup(StrToHostAddr(S)); +end; + +{$ifdef usenetdb} +Function THostResolver.NameLookup (Const S : String) : Boolean; + +Var + H : THostEntry; + +begin + Result:=Inherited NameLookup(S); + If Result then + begin + Result:=GetHostByName(S,H); + if not Result then + Result:=ResolveHostByName(S,H); + If Result then + SaveHostEntry(@H); + end; +end; + +Function THostResolver.AddressLookup (Const Address: THostAddr) : Boolean; + +Var + H : THostEntry; + +begin + ClearData; + Result:=ResolveHostByAddr(Address,H); + If Result then + SaveHostEntry(@H); +end; + +Procedure THostResolver.SaveHostEntry(Entry : Pointer); + +Var + PH : ^THostEntry; + I : Integer; + +begin + PH:=ENtry; + FName:=PH^.Name; + FHostAddress:=NetToHost(PH^.Addr); + FAddressCount:=1; + GetMem(FAddresses,SizeOf(THostAddr)); + FAddresses[0]:=NetToHost(PH^.Addr); + FAliases.CommaText:=PH^.Aliases; +end; + +{$else} + +Function THostResolver.NameLookup (Const S : String) : Boolean; + +Var + FHostEntry : PHostEntry; + +begin + Result:=Inherited NameLookup(S); + If Result then + begin + FHostEntry:=GetHostByName(pchar(FName)); + Result:=FHostEntry<>Nil; + If Result then + SaveHostEntry(FHostEntry) + else + begin + FLastError:=GetDNSError; + CheckOperation(SErrHostByName); + end; + end; +end; + +Procedure THostResolver.SaveHostEntry(Entry : Pointer); + +Var + P : Pointer; + I,Count : Integer; + +begin + With PHostEntry(Entry)^ do + begin + FName:=StrPas(H_Name); + FAddressCount:=0; + While H_Addr[FAddressCount]<>Nil do + Inc(FAddressCount); + If FAddressCount>0 then + begin + GetMem(FAddresses,FAddressCount*SizeOf(THostAddr)); + For I:=0 to FAddressCount-1 do + FAddresses[I]:=NetToHost(PHostAddr(H_Addr[I])^); + FHostAddress:=FAddresses[0]; + end; + SaveAliases(H_Aliases); + end; +end; + +Function THostResolver.AddressLookup (Const Address: THostAddr) : Boolean; + +Var + FHostEntry : PHostEntry; + +begin + ClearData; + FHostEntry:=GetHostByAddr(Pchar(@Address),SizeOf(Address),AF_INET); + Result:=FHostEntry<>Nil; + If Result then + SaveHostEntry(FHostEntry) + else + begin + FLastError:=GetDNSError; + CheckOperation(SErrHostByAddr); + end; +end; +{$endif} + +Function THostResolver.GetNetAddress (Index : Integer) : THostAddr; + +begin + Result:=HostToNet(Addresses[Index]); +end; + +Function THostResolver.GetNetHostAddress : THostAddr; + +begin + Result:=HostToNet(FHostAddress); +end; + + +{ --------------------------------------------------------------------- + TNetResolver + ---------------------------------------------------------------------} + +{$ifdef usenetdb} +Function TNetResolver.AddressLookup (Const Address: TNetAddr) : boolean; + +Var + N : TNetworkEntry; + +begin + ClearData; + Result:=GetNetworkByAddr(Address,N); + If Result then + SaveNetEntry(@N); +end; + +Function TNetResolver.NameLookup (Const S : String) : Boolean; + +Var + N : TNetworkEntry; + +begin + Result:=Inherited NameLookup(S); + If Result then + begin + Result:=GetNetworkByName(S,N); + If Result then + SaveNetEntry(@N); + end; +end; + +Procedure TNetResolver.SaveNetEntry(Entry : Pointer); + +Var + PN : ^TNetworkEntry; + +begin + PN:=ENtry; + FName:=PN^.Name; + FNetAddress:=NetToHost(PN^.Addr); + FAliases.CommaText:=PN^.Aliases; +end; + +{$else} +Function TNetResolver.NameLookup (Const S : String) : Boolean; + +Var + FNetEntry : PNetEntry; + +begin + Result:=Inherited NameLookup(S); + If Result then + begin + FNetEntry:=GetNetByName(pchar(S)); + Result:=FNetEntry<>Nil; + If Result then + SaveNetEntry(FNetEntry) + else + begin + FLastError:=GetDNSError; + Checkoperation(SErrNetByName); + end; + end; +end; + +Procedure TNetResolver.SaveNetEntry(Entry : Pointer); + +begin + With PNetEntry(Entry)^ do + begin + FName:=StrPas(N_Name); + FAddrType:=N_addrtype; + FNetAddress:=NetToHost(TNetAddr(N_net)); + SaveAliases(N_Aliases); + end; +end; + +Function TNetResolver.AddressLookup (Const Address: TNetAddr) : boolean; + +Var + FNetEntry : PNetEntry; + +begin + ClearData; +{$ifndef win32} + FNetEntry:=GetNetByAddr(Longint(HostToNet(Address)),AF_INET); +{$else} + FNetEntry:=Nil; +{$endif} + Result:=FNetEntry<>Nil; + If Result then + SaveNetEntry(FNetEntry) + else + begin + FLastError:=GetDNSError; + CheckOperation(SErrNetByName); + end; +end; + +{$endif} + +Function TNetResolver.AddressLookup(Const S : String) : Boolean; + +begin + Result:=AddressLookup(StrToNetAddr(S)); +end; + + +Function TNetResolver.GetAsString : String; + +begin + Result:=HostAddrToStr(FNetAddress); +end; + +Function TNetResolver.GetNetAddress : TNetAddr; + +begin + Result:=HostToNet(FNetAddress); +end; + + +Procedure TNetResolver.ClearData; + +begin + Inherited; + FNetAddress:=NoAddress; + FAddrType:=0; +end; + +{ --------------------------------------------------------------------- + TServiceResolver + ---------------------------------------------------------------------} + +Function TServiceResolver.NameLookup (Const S : String) : Boolean; + +begin + Result:=NameLookup(S,''); +end; + +{$ifdef usenetdb} + +Function TServiceResolver.NameLookup (Const S,Proto : String) : Boolean; + +Var + E : TServiceEntry; + +begin + ClearData; + Result:=GetServiceByName(S,Proto,E); + If Result then + SaveServiceEntry(@E); +end; + +Function TServiceResolver.PortLookup (APort: Longint; Proto : String) : Boolean; + +Var + E : TServiceEntry; + +begin + ClearData; + Result:=GetServiceByPort(APort,Proto,E); + If Result then + SaveServiceEntry(@E); +end; + +Procedure TServiceResolver.SaveServiceEntry(Entry : Pointer); + +Var + PE : ^TServiceEntry; + +begin + PE:=Entry; + FName:=PE^.Name; + FPort:=PE^.Port; + FProtocol:=PE^.Protocol; + FAliases.CommaText:=PE^.Aliases; +end; + +{$else} + +Function TServiceResolver.NameLookup (Const S,Proto : String) : Boolean; + +Var + FServiceEntry : PServEntry; + +begin + ClearData; + FName:=S; + FProtocol:=Proto; + If (proto='') then + FServiceEntry:=GetServByName(pchar(S),Nil) + else + FServiceEntry:=GetServByName(pchar(S),PChar(FProtocol)); + Result:=FServiceEntry<>Nil; + If Result then + SaveServiceEntry(FServiceEntry) + else + begin + FLastError:=GetDNSError; + CheckOperation(SErrServByName); + end; +end; + +Function TServiceResolver.PortLookup (APort: Longint; Proto : String) : Boolean; + +Var + FServiceEntry : PServEntry; + +begin + ClearData; + APort:=ShortHostToNet(APort); + FProtoCol:=Proto; + If (Proto='') then + FServiceEntry:=GetServByPort(APort,Nil) + else + FServiceEntry:=GetServByPort(APort,pchar(Proto)); + Result:=FServiceEntry<>Nil; + If Result then + SaveServiceEntry(FServiceEntry) + else + begin + FLastError:=GetDNSError; + CheckOperation(SErrServByPort); + end; +end; + +Procedure TServiceResolver.SaveServiceEntry(Entry : Pointer); + +begin + With PServEntry(Entry)^ do + begin + FName:=strpas(s_name); + FPort:=ShortHostToNet(S_port); + FProtocol:=strpas(s_proto); + SaveAliases(S_aliases); + end; +end; +{$endif} + +Procedure TServiceResolver.ClearData; + +begin + Inherited; + FProtocol:=''; + FPort:=0; +end; + +Function TServiceResolver.GetNetPort : Integer; + +begin + Result:=ShortHostToNet(FPort); +end; + +{ --------------------------------------------------------------------- + TURIParser + ---------------------------------------------------------------------} + + +Procedure TURIParser.SetElement (Index : Integer; Value : String); + +begin + Case index of + 0 : FProtocol := Value; + 1 : FUsername := Value; + 2 : FPassword := Value; + 3 : FHost := Value; + 4 : FPath := Value; + 5 : FDocument := Value; + 6 : FParams := Value; + 7 : FBookmark := Value; + else + end; + If FActive and not (csLoading in ComponentState) then + FURI:=ComposeURI; +end; + +Function TURIParser.GetElement(Index : Integer) : String; + +begin + Case Index of + 0 : Result := FProtocol; + 1 : Result := FUsername; + 2 : Result := FPassword; + 3 : Result := FHost ; + 4 : Result := FPath ; + 5 : Result := FDocument; + 6 : Result := FParams ; + 7 : Result := FBookmark; + else + Result:=''; + end; +end; + +Procedure TURIParser.SetPort(Value : Word); + +begin + FPort:=Value; + If FActive and not (csLoading in ComponentState) then + FURI:=ComposeURI; +end; + +Procedure TURIParser.SetURI(Value : String); + +begin + If Active and not (csLoading in ComponentState) then + begin + Clear; + ParseUri(Value); + end; + FURI:=Value; +end; + +Procedure TURIParser.Clear; + +begin + FProtocol :=''; + FUsername :=''; + FPassword :=''; + FHost :=''; + FPort :=0; + FPath :=''; + FDocument :=''; + FParams :=''; + FBookmark :=''; + FURI :=''; +end; + +Procedure TURIParser.ParseUri(AURI : String); + +Var + U : TURI; + +begin + U:=UriParser.ParseURI(AUri); + FProtocol := u.Protocol; + FUsername := u.Username; + FPassword := u.Password; + FHost := u.Host ; + FPort := u.Port ; + FPath := u.Path ; + FDocument := u.Document; + FParams := u.Params ; + FBookmark := u.Bookmark; +end; + + +Function TURIParser.ComposeURI : String; + +var + U : TURI; + +begin + U.Protocol := FProtocol; + U.Username := FUsername; + U.Password := FPassword; + U.Host := FHost ; + U.Port := FPort ; + U.Path := FPath ; + U.Document := FDocument; + U.Params := FParams ; + U.Bookmark := FBookmark; + Result:=EncodeUri(U); +end; + + +{$ifdef usenetdb} +Procedure InitResolve; + +begin +end; + +Procedure FinalResolve; + +begin +end; +{$endif} + +Initialization + InitResolve; + +Finalization + FinalResolve; + +end. diff --git a/packages/fcl-net/src/ssockets.pp b/packages/fcl-net/src/ssockets.pp new file mode 100644 index 0000000000..5ee0f729c7 --- /dev/null +++ b/packages/fcl-net/src/ssockets.pp @@ -0,0 +1,597 @@ +{ + This file is part of the Free Component Library (FCL) + Copyright (c) 1999-2000 by the Free Pascal development team + + 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. + + **********************************************************************} +{$MODE objfpc} + +unit ssockets; + + +interface + +uses + SysUtils, Classes, sockets; + +type + + TSocketErrorType = ( + seHostNotFound, + seCreationFailed, + seBindFailed, + seListenFailed, + seConnectFailed, + seAcceptFailed, + seAcceptWouldBlock); + + TSocketOption = (soDebug,soReuseAddr,soKeepAlive,soDontRoute,soBroadcast, + soOOBinline); + TSocketOptions = Set of TSocketOption; + + ESocketError = class(Exception) + Code: TSocketErrorType; + constructor Create(ACode: TSocketErrorType; const MsgArgs: array of const); + end; + + TSocketStream = class(THandleStream) + Private + FSocketOptions : TSocketOptions; + Procedure GetSockOptions; + Procedure SetSocketOptions(Value : TSocketOptions); + function GetLocalAddress: TSockAddr; + function GetRemoteAddress: TSockAddr; + Public + Constructor Create (AHandle : Longint);virtual; + destructor Destroy; override; + function Seek(Offset: Longint; Origin: Word): Longint; override; + Function Read (Var Buffer; Count : Longint) : longint; Override; + Function Write (Const Buffer; Count : Longint) :Longint; Override; + Property SocketOptions : TSocketOptions Read FSocketOptions + Write SetSocketOptions; + property LocalAddress: TSockAddr read GetLocalAddress; + property RemoteAddress: TSockAddr read GetRemoteAddress; + end; + + TConnectEvent = Procedure (Sender : TObject; Data : TSocketStream) Of Object; + TConnectQuery = Procedure (Sender : TObject; ASocket : Longint; Var Allow : Boolean) of Object; + + { TSocketServer } + + TSocketServer = Class(TObject) + Private + FOnIdle : TNotifyEvent; + FNonBlocking : Boolean; + FSocket : longint; + FListened : Boolean; + FAccepting : Boolean; + FMaxConnections : Longint; + FQueueSize : Longint; + FOnConnect : TConnectEvent; + FOnConnectQuery : TConnectQuery; + Procedure DoOnIdle; + Protected + FSockType : Longint; + FBound : Boolean; + Procedure DoConnect(ASocket : TSocketStream); Virtual; + Function DoConnectQuery(ASocket : longint): Boolean ;Virtual; + Procedure Bind; Virtual; Abstract; + Function Accept: Longint;Virtual;Abstract; + Function SockToStream (ASocket : Longint) : TSocketStream;Virtual;Abstract; + Procedure Close; Virtual; + Public + Constructor Create(ASocket : Longint); + Destructor Destroy; Override; + Procedure Listen; + Procedure StartAccepting; + Procedure StopAccepting; + Procedure SetNonBlocking; + Property Bound : Boolean Read FBound; + Property MaxConnections : longint Read FMaxConnections Write FMaxConnections; + Property QueueSize : Longint Read FQueueSize Write FQueueSize default 5; + Property OnConnect : TConnectEvent Read FOnConnect Write FOnConnect; + Property OnConnectQuery : TConnectQuery Read FOnConnectQuery Write FOnConnectQuery; + Property OnIdle : TNotifyEvent Read FOnIdle Write FOnIdle; + Property NonBlocking : Boolean Read FNonBlocking; + Property Socket : Longint Read FSocket; + Property SockType : Longint Read FSockType; + end; + + { TInetServer } + + TInetServer = Class(TSocketServer) + Protected + FAddr : TINetSockAddr; + Function SockToStream (ASocket : Longint) : TSocketStream;Override; + Function Accept : Longint;override; + FPort : Word; + FHost: string; + Public + Procedure Bind; Override; + Constructor Create(APort: Word); + Constructor Create(const aHost: string; const APort: Word); + Property Port : Word Read FPort; + Property Host : string Read FHost; + end; + +{$ifdef Unix} + + { TUnixServer } + + TUnixServer = Class(TSocketServer) + Private + FUnixAddr : TUnixSockAddr; + FFileName : String; + Protected + Procedure Bind; Override; + Function Accept : Longint;override; + Function SockToStream (ASocket : Longint) : TSocketStream;Override; + Procedure Close; override; + Public + Constructor Create(AFileName : String); + Property FileName : String Read FFileName; + end; +{$endif} + + TInetSocket = Class(TSocketStream) + Private + FHost : String; + FPort : Word; + Protected + Procedure DoConnect(ASocket : longint); Virtual; + Public + Constructor Create(ASocket : longint); Override; Overload; + Constructor Create(const AHost: String; APort: Word); Overload; + Property Host : String Read FHost; + Property Port : Word Read FPort; + end; + +{$ifdef Unix} + + TUnixSocket = Class(TSocketStream) + Private + FFileName : String; + Protected + Procedure DoConnect(ASocket : longint); Virtual; + Public + Constructor Create(ASocket : Longint); Overload; + Constructor Create(AFileName : String); Overload; + Property FileName : String Read FFileName; + end; +{$endif} + +Implementation + +uses +{$ifdef unix} + BaseUnix, Unix, +{$endif} + resolve; + +Const + SocketWouldBlock = -2; + +{ --------------------------------------------------------------------- + ESocketError + ---------------------------------------------------------------------} + +resourcestring + strHostNotFound = 'Host name resolution for "%s" failed.'; + strSocketCreationFailed = 'Creation of socket failed: %s'; + strSocketBindFailed = 'Binding of socket failed: %s'; + strSocketListenFailed = 'Listening on port #%d failed, error: %d'; + strSocketConnectFailed = 'Connect to %s failed.'; + strSocketAcceptFailed = 'Could not accept a client connection on socket: %d, error %d'; + strSocketAcceptWouldBlock = 'Accept would block on socket: %d'; + +constructor ESocketError.Create(ACode: TSocketErrorType; const MsgArgs: array of const); +var + s: String; +begin + Code := ACode; + case ACode of + seHostNotFound : s := strHostNotFound; + seCreationFailed: s := strSocketCreationFailed; + seBindFailed : s := strSocketBindFailed; + seListenFailed : s := strSocketListenFailed; + seConnectFailed : s := strSocketConnectFailed; + seAcceptFailed : s := strSocketAcceptFailed; + seAcceptWouldBLock : S:= strSocketAcceptWouldBlock; + end; + s := Format(s, MsgArgs); + inherited Create(s); +end; + +{ --------------------------------------------------------------------- + TSocketStream + ---------------------------------------------------------------------} +Constructor TSocketStream.Create (AHandle : Longint); + +begin + Inherited Create(AHandle); + GetSockOptions; +end; + +destructor TSocketStream.Destroy; +begin + {$ifdef netware} + CloseSocket(Handle); + {$else} + FileClose(Handle); + {$endif} + inherited Destroy; +end; + +Procedure TSocketStream.GetSockOptions; + +begin +end; + +Procedure TSocketStream.SetSocketOptions(Value : TSocketOptions); + +begin +end; + +Function TSocketStream.Seek(Offset: Longint; Origin: Word): Longint; + +begin + Result:=0; +end; + +Function TSocketStream.Read (Var Buffer; Count : Longint) : longint; + +Var + Flags : longint; + +begin + Flags:=0; + Result:=recv(handle,Buffer,count,flags); +end; + +Function TSocketStream.Write (Const Buffer; Count : Longint) :Longint; + +Var + Flags : longint; + +begin + Flags:=0; + Result:=send(handle,Buffer,count,flags); +end; + +function TSocketStream.GetLocalAddress: TSockAddr; +var + len: LongInt; +begin + len := SizeOf(TSockAddr); + if GetSocketName(Handle, Result, len) <> 0 then + FillChar(Result, SizeOf(Result), 0); +end; + +function TSocketStream.GetRemoteAddress: TSockAddr; +var + len: LongInt; +begin + len := SizeOf(TSockAddr); + if GetPeerName(Handle, Result, len) <> 0 then + FillChar(Result, SizeOf(Result), 0); +end; + + +{ --------------------------------------------------------------------- + TSocketServer + ---------------------------------------------------------------------} + +Constructor TSocketServer.Create(ASocket : Longint); + +begin + FSocket:=ASocket; + FQueueSize :=5; +end; + +Destructor TSocketServer.Destroy; + +begin + Close; +end; + +Procedure TSocketServer.Close; + +begin + If FSocket<>-1 Then + {$ifdef netware} + CloseSocket(FSocket); + {$else} + FileClose(FSocket); + {$endif} + FSocket:=-1; +end; + +Procedure TSocketServer.Listen; + +begin + If Not FBound then + Bind; + If Not Sockets.Listen(FSocket,FQueueSize) then + Raise ESocketError.Create(seListenFailed,[FSocket,SocketError]); +end; + +Procedure TSocketServer.StartAccepting; + +Var + NoConnections, + NewSocket : longint; + Stream : TSocketStream; + +begin + FAccepting := True; + Listen; + Repeat + Repeat + Try + NewSocket:=Accept; + If NewSocket>=0 then + begin + Inc (NoConnections); + If DoConnectQuery(NewSocket) Then + begin + Stream:=SockToStream(NewSocket); + DoConnect(Stream); + end + end + except + On E : ESocketError do + begin + If E.Code=seAcceptWouldBlock then + begin + DoOnIdle; + NewSocket:=-1; + end + else + Raise; + end; + end; + Until (NewSocket>=0) or (Not NonBlocking); + Until Not (FAccepting) or ((FMaxConnections<>-1) and (NoConnections>=FMaxConnections)); +end; + +Procedure TSocketServer.StopAccepting; + +begin + FAccepting:=False; +end; + +Procedure TSocketServer.DoOnIdle; + +begin + If Assigned(FOnIdle) then + FOnIdle(Self); +end; + +Procedure TSocketServer.DoConnect(ASocket : TSocketStream); + +begin + If Assigned(FOnConnect) Then + FOnConnect(Self,ASocket); +end; + +Function TSocketServer.DoConnectQuery(ASocket : Longint) : Boolean; + +begin + Result:=True; + If Assigned(FOnConnectQuery) then + FOnConnectQuery(Self,ASocket,Result); +end; + +Procedure TSocketServer.SetNonBlocking; + +begin +{$ifdef Unix} + fpfcntl(FSocket,F_SETFL,O_NONBLOCK); +{$endif} + FNonBlocking:=True; +end; + +{ --------------------------------------------------------------------- + TInetServer + ---------------------------------------------------------------------} + +Constructor TInetServer.Create(APort: Word); + +begin + Create('0.0.0.0', aPort); +end; + +Constructor TInetServer.Create(const aHost: string; const APort: Word); + +Var S : longint; + +begin + FHost:=aHost; + FPort:=APort; + S:=Sockets.Socket(AF_INET,SOCK_STREAM,0); + If S=-1 Then + Raise ESocketError.Create(seCreationFailed,[Format('%d',[APort])]); + Inherited Create(S); +end; + +Procedure TInetServer.Bind; + +begin + Faddr.family := AF_INET; + Faddr.port := ShortHostToNet(FPort); + Faddr.addr := LongWord(StrToNetAddr(FHost)); + if not Sockets.Bind(FSocket, FAddr, Sizeof(FAddr)) then + raise ESocketError.Create(seBindFailed, [IntToStr(FPort)]); + FBound:=True; +end; + +Function TInetServer.SockToStream (ASocket : Longint) : TSocketStream; + +begin + Result:=TInetSocket.Create(ASocket); + (Result as TInetSocket).FHost:=''; + (Result as TInetSocket).FPort:=FPort; +end; + +Function TInetServer.Accept : Longint; + +Var l : longint; + +begin + L:=SizeOf(FAddr); + Result:=Sockets.Accept(Socket,Faddr,L); + If Result<0 then +{$ifdef Unix} + If SocketError=ESysEWOULDBLOCK then + Raise ESocketError.Create(seAcceptWouldBlock,[socket]) + else +{$endif} + Raise ESocketError.Create(seAcceptFailed,[Socket,SocketError]); +end; + +{ --------------------------------------------------------------------- + TUnixServer + ---------------------------------------------------------------------} +{$ifdef Unix} +Constructor TUnixServer.Create(AFileName : String); + +Var S : Longint; + +begin + FFileName:=AFileName; + S:=Sockets.Socket(AF_UNIX,SOCK_STREAM,0); + If S=-1 then + Raise ESocketError.Create(seCreationFailed,[AFileName]) + else + Inherited Create(S); +end; + +Procedure TUnixServer.Close; +begin + Inherited Close; + DeleteFile(FFileName); + FFileName:=''; +end; + +Procedure TUnixServer.Bind; + +var + AddrLen : longint; +begin + Str2UnixSockAddr(FFilename,FUnixAddr,AddrLen); + If Not Sockets.Bind(Socket,FUnixAddr,AddrLen) then + Raise ESocketError.Create(seBindFailed,[FFileName]); + FBound:=True; +end; + +Function TUnixServer.Accept : Longint; + +Var L : longint; + +begin + L:=Length(FFileName); + Result:=Sockets.Accept(Socket,FUnixAddr,L); + If Result<0 then + If SocketError=ESysEWOULDBLOCK then + Raise ESocketError.Create(seAcceptWouldBlock,[socket]) + else + Raise ESocketError.Create(seAcceptFailed,[socket,SocketError]); +end; + +Function TUnixServer.SockToStream (ASocket : Longint) : TSocketStream; + +begin + Result:=TUnixSocket.Create(ASocket); + (Result as TUnixSocket).FFileName:=FFileName; +end; + +{$endif} + +{ --------------------------------------------------------------------- + TInetSocket + ---------------------------------------------------------------------} +Constructor TInetSocket.Create(ASocket : Longint); + +begin + Inherited Create(ASocket); +end; + +Constructor TInetSocket.Create(const AHost: String; APort: Word); + +Var + S : Longint; + +begin + FHost:=AHost; + FPort:=APort; + S:=Socket(AF_INET,SOCK_STREAM,0); + DoConnect(S); + Inherited Create(S); +end; + +Procedure TInetSocket.DoConnect(ASocket : Longint); + +Var + TheHost: THostResolver; + A : THostAddr; + addr: TInetSockAddr; + +begin + A := StrToNetAddr(FHost); + if A.s_bytes[4] = 0 then + With THostResolver.Create(Nil) do + try + If Not NameLookup(FHost) then + raise ESocketError.Create(seHostNotFound, [FHost]); + A:=HostAddress; + finally + free; + end; + addr.family := AF_INET; + addr.port := ShortHostToNet(FPort); + addr.addr := hosttonet(a.s_addr); // hosttonet(A).s_addr; +//Cardinal(A); + + If not Sockets.Connect(ASocket, addr, sizeof(addr)) then + raise ESocketError.Create(seConnectFailed, [Format('%s:%d',[FHost, FPort])]); +end; + +{ --------------------------------------------------------------------- + TUnixSocket + ---------------------------------------------------------------------} +{$ifdef Unix} +Constructor TUnixSocket.Create(ASocket : Longint); + +begin + Inherited Create(ASocket); +end; + +Constructor TUnixSocket.Create(AFileName : String); + +Var S : Longint; + +begin + FFileName:=AFileName; + S:=Socket(AF_UNIX,SOCK_STREAM,0); + DoConnect(S); + Inherited Create(S); +end; + +Procedure TUnixSocket.DoConnect(ASocket : longint); + +Var + UnixAddr : TUnixSockAddr; + AddrLen : longint; +begin + Str2UnixSockAddr(FFilename,UnixAddr,AddrLen); + If Not Connect(ASocket,UnixAddr,AddrLen) then + Raise ESocketError.Create(seConnectFailed,[FFilename]); +end; +{$endif} +end. diff --git a/packages/fcl-net/src/unix/resolve.inc b/packages/fcl-net/src/unix/resolve.inc new file mode 100644 index 0000000000..64125bffed --- /dev/null +++ b/packages/fcl-net/src/unix/resolve.inc @@ -0,0 +1,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; diff --git a/packages/fcl-net/src/win/resolve.inc b/packages/fcl-net/src/win/resolve.inc new file mode 100644 index 0000000000..2ee0803667 --- /dev/null +++ b/packages/fcl-net/src/win/resolve.inc @@ -0,0 +1,51 @@ + +uses winsock; + +Type + PHostEntry = PHostEnt; + PNetEntry = PNetEnt; + PServEntry = PServEnt; + +Const + DNSErr : Integer = 0; + +function getnetbyname ( Name : pchar) : PNetEntry; + +begin + DNSErr:=-1; + Result:=Nil; +end; + +function getnetbyaddr ( Net : Longint; nettype : Longint) : PNetEntry; + +begin + DNSErr:=-2; + Result:=Nil; +end; + +Function GetDNSError : Longint; + +begin + If DNSErr<>0 then + begin + GetDNSError:=-DNSErr; + DNSErr:=0; + end + else + GetDNSError:=0; // Must get win32 error ? +end; + +Function InitResolve : Boolean; + +var + wsaData : TWsaData; + +begin + Result:=WSAStartup(1,wsaData)=0; +end; + +Function FinalResolve : Boolean; + +begin + Result:=True; +end; diff --git a/packages/fcl-net/src/wince/resolve.inc b/packages/fcl-net/src/wince/resolve.inc new file mode 100644 index 0000000000..2ee0803667 --- /dev/null +++ b/packages/fcl-net/src/wince/resolve.inc @@ -0,0 +1,51 @@ + +uses winsock; + +Type + PHostEntry = PHostEnt; + PNetEntry = PNetEnt; + PServEntry = PServEnt; + +Const + DNSErr : Integer = 0; + +function getnetbyname ( Name : pchar) : PNetEntry; + +begin + DNSErr:=-1; + Result:=Nil; +end; + +function getnetbyaddr ( Net : Longint; nettype : Longint) : PNetEntry; + +begin + DNSErr:=-2; + Result:=Nil; +end; + +Function GetDNSError : Longint; + +begin + If DNSErr<>0 then + begin + GetDNSError:=-DNSErr; + DNSErr:=0; + end + else + GetDNSError:=0; // Must get win32 error ? +end; + +Function InitResolve : Boolean; + +var + wsaData : TWsaData; + +begin + Result:=WSAStartup(1,wsaData)=0; +end; + +Function FinalResolve : Boolean; + +begin + Result:=True; +end; diff --git a/packages/fcl-net/src/tests/Makefile b/packages/fcl-net/tests/Makefile index b5360ff4a5..b5360ff4a5 100644 --- a/packages/fcl-net/src/tests/Makefile +++ b/packages/fcl-net/tests/Makefile diff --git a/packages/fcl-net/src/tests/Makefile.fpc b/packages/fcl-net/tests/Makefile.fpc index c21985a1b3..c21985a1b3 100644 --- a/packages/fcl-net/src/tests/Makefile.fpc +++ b/packages/fcl-net/tests/Makefile.fpc diff --git a/packages/fcl-net/src/tests/readme.txt b/packages/fcl-net/tests/readme.txt index e02d89f244..e02d89f244 100644 --- a/packages/fcl-net/src/tests/readme.txt +++ b/packages/fcl-net/tests/readme.txt diff --git a/packages/fcl-net/src/tests/rpccli.pp b/packages/fcl-net/tests/rpccli.pp index 541fa8caf4..541fa8caf4 100644 --- a/packages/fcl-net/src/tests/rpccli.pp +++ b/packages/fcl-net/tests/rpccli.pp diff --git a/packages/fcl-net/src/tests/rpcserv.pp b/packages/fcl-net/tests/rpcserv.pp index 3d1dd606d4..3d1dd606d4 100644 --- a/packages/fcl-net/src/tests/rpcserv.pp +++ b/packages/fcl-net/tests/rpcserv.pp diff --git a/packages/fcl-net/src/tests/svrclass.pp b/packages/fcl-net/tests/svrclass.pp index c20b31ca77..c20b31ca77 100644 --- a/packages/fcl-net/src/tests/svrclass.pp +++ b/packages/fcl-net/tests/svrclass.pp diff --git a/packages/fcl-net/src/tests/svrclass_xmlrpc.pp b/packages/fcl-net/tests/svrclass_xmlrpc.pp index a34b047faa..a34b047faa 100644 --- a/packages/fcl-net/src/tests/svrclass_xmlrpc.pp +++ b/packages/fcl-net/tests/svrclass_xmlrpc.pp |
