Przeglądaj źródła

* enabled cnetdb for Linux, added a demo

git-svn-id: trunk@16503 -
marco 14 lat temu
rodzic
commit
b1f1c026f8

+ 1 - 0
.gitattributes

@@ -2035,6 +2035,7 @@ packages/fcl-net/Makefile.fpc svneol=native#text/plain
 packages/fcl-net/README.txt svneol=native#text/plain
 packages/fcl-net/examples/Makefile svneol=native#text/plain
 packages/fcl-net/examples/Makefile.fpc svneol=native#text/plain
+packages/fcl-net/examples/cnslookup.pp svneol=native#text/plain
 packages/fcl-net/examples/ip6test.pp svneol=native#text/plain
 packages/fcl-net/examples/readme.txt svneol=native#text/plain
 packages/fcl-net/examples/rpccli.pp svneol=native#text/plain

+ 9 - 9
packages/fcl-net/Makefile

@@ -267,7 +267,7 @@ PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages $(FPCDIR)/packages/base $(F
 override PACKAGE_NAME=fcl-net
 override PACKAGE_VERSION=2.5.1
 ifeq ($(FULL_TARGET),i386-linux)
-override TARGET_UNITS+=netdb resolve ssockets fpsock
+override TARGET_UNITS+=netdb resolve ssockets fpsock cnetdb
 endif
 ifeq ($(FULL_TARGET),i386-win32)
 override TARGET_UNITS+=resolve ssockets
@@ -309,7 +309,7 @@ ifeq ($(FULL_TARGET),i386-iphonesim)
 override TARGET_UNITS+=netdb resolve ssockets
 endif
 ifeq ($(FULL_TARGET),m68k-linux)
-override TARGET_UNITS+=netdb resolve ssockets fpsock
+override TARGET_UNITS+=netdb resolve ssockets fpsock cnetdb
 endif
 ifeq ($(FULL_TARGET),m68k-freebsd)
 override TARGET_UNITS+=netdb resolve ssockets fpsock cnetdb
@@ -321,7 +321,7 @@ ifeq ($(FULL_TARGET),m68k-openbsd)
 override TARGET_UNITS+=netdb resolve ssockets fpsock
 endif
 ifeq ($(FULL_TARGET),powerpc-linux)
-override TARGET_UNITS+=netdb resolve ssockets fpsock
+override TARGET_UNITS+=netdb resolve ssockets fpsock cnetdb
 endif
 ifeq ($(FULL_TARGET),powerpc-netbsd)
 override TARGET_UNITS+=netdb resolve ssockets fpsock
@@ -330,7 +330,7 @@ ifeq ($(FULL_TARGET),powerpc-darwin)
 override TARGET_UNITS+=netdb resolve ssockets
 endif
 ifeq ($(FULL_TARGET),sparc-linux)
-override TARGET_UNITS+=netdb resolve ssockets fpsock
+override TARGET_UNITS+=netdb resolve ssockets fpsock cnetdb
 endif
 ifeq ($(FULL_TARGET),sparc-netbsd)
 override TARGET_UNITS+=netdb resolve ssockets fpsock
@@ -339,7 +339,7 @@ ifeq ($(FULL_TARGET),sparc-solaris)
 override TARGET_UNITS+=netdb resolve ssockets
 endif
 ifeq ($(FULL_TARGET),x86_64-linux)
-override TARGET_UNITS+=netdb resolve ssockets fpsock
+override TARGET_UNITS+=netdb resolve ssockets fpsock cnetdb
 endif
 ifeq ($(FULL_TARGET),x86_64-freebsd)
 override TARGET_UNITS+=netdb resolve ssockets fpsock cnetdb
@@ -354,7 +354,7 @@ ifeq ($(FULL_TARGET),x86_64-win64)
 override TARGET_UNITS+=resolve ssockets
 endif
 ifeq ($(FULL_TARGET),arm-linux)
-override TARGET_UNITS+=netdb resolve ssockets fpsock
+override TARGET_UNITS+=netdb resolve ssockets fpsock cnetdb
 endif
 ifeq ($(FULL_TARGET),arm-darwin)
 override TARGET_UNITS+=netdb resolve ssockets
@@ -363,16 +363,16 @@ ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_UNITS+=resolve ssockets
 endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
-override TARGET_UNITS+=netdb resolve ssockets fpsock
+override TARGET_UNITS+=netdb resolve ssockets fpsock cnetdb
 endif
 ifeq ($(FULL_TARGET),powerpc64-darwin)
 override TARGET_UNITS+=netdb resolve ssockets
 endif
 ifeq ($(FULL_TARGET),armeb-linux)
-override TARGET_UNITS+=netdb resolve ssockets fpsock
+override TARGET_UNITS+=netdb resolve ssockets fpsock cnetdb
 endif
 ifeq ($(FULL_TARGET),mipsel-linux)
-override TARGET_UNITS+=netdb resolve ssockets fpsock
+override TARGET_UNITS+=netdb resolve ssockets fpsock cnetdb
 endif
 override INSTALL_FPCPACKAGE=y
 ifeq ($(FULL_TARGET),i386-linux)

+ 1 - 1
packages/fcl-net/Makefile.fpc

@@ -7,7 +7,7 @@ name=fcl-net
 version=2.5.1
 
 [target]
-units_linux=netdb resolve ssockets fpsock 
+units_linux=netdb resolve ssockets fpsock cnetdb
 units_freebsd=netdb resolve ssockets fpsock cnetdb
 units_netbsd=netdb resolve ssockets fpsock 
 units_openbsd=netdb resolve ssockets fpsock

+ 28 - 0
packages/fcl-net/examples/cnslookup.pp

@@ -0,0 +1,28 @@
+
+{$mode objfpc}
+uses cnetdb,sockets;
+
+var host : PHostEnt;
+    h_addr: in_addr;
+    s : ansistring;
+
+begin
+  if paramcount<>1 then
+    begin
+      writeln(stderr,'Usage: nslookup <inet_address>');
+      halt(1);
+    end;
+  s:=paramstr(1);
+  host:=gethostbyname(pansichar(s));
+  if not assigned(host) then
+    begin
+      writeln(stderr,'(mini) nslookup failed on ',s);
+      halt(1);
+    end;
+  //writeln(host^.h_addr_list[0]);
+  h_addr.s_addr:= pcardinal(host^.h_addr_list[0])^;
+  writeln(NetAddrToStr(h_addr));
+//            h_addr.s_addr = *((unsigned long *) host->h_addr_list[0]);
+//            fprintf(stdout, "%s\n", inet_ntoa(h_addr));
+  halt(0);
+end.

+ 1 - 0
packages/fcl-net/src/cnetdb.pp

@@ -157,6 +157,7 @@ type
     h_length: cInt;     {* length of address *}
     h_addr_list: PPChar;{* list of addresses from name server *}
   end;
+
   THostEnt = hostent;
   PHostEnt = ^THostEnt;
   PPHostEnt = ^PHostEnt;