On Mon, 16 Jan 2023 22:12:52 +0100 Mattias Gaertner via fpc-pascal <fpc-pascal@lists.freepascal.org> wrote:
> On Mon, 16 Jan 2023 19:50:34 +0100 > Giuliano Colla via fpc-pascal <fpc-pascal@lists.freepascal.org> wrote: > > > I stumbled into a problem I don't understand. > > > > I'm developing a little program for an ftp client. In order to > > connect to the site I need the site address from the site name, and > > the libc gethostbyname() provides the required information. > > > > gethostbyname returns a PHostEnt type which is declared as: Btw, gethostbyname is obsolete. Applications should use getaddrinfo, getnameinfo, and gai_strerror instead. > > > THostEnt = packed record > > > h_name: PChar; { Official name of host. } > > > h_aliases: PPChar; { Alias list. } > > > h_addrtype: Integer; { Host address type. } > > > h_length: socklen_t; { Length of address. } > > > case Byte of > > > 0: (h_addr_list: PPChar); { List of addresses from name > > > server. } > > > 1: (h_addr: PPChar); { Address, for backward > > > compatibility. } > > > end; > > > PHostEnt = ^THostEnt; > > Actually the chars h_addr points to are /hlength/ bytes to be > > interpreted as an /in_addr/ > [...] Ah, I just saw gethostbyname returns a PHostEnt and Addr is Pin_addr. Then for the first address: Addr := Pin_addr(HostEnt^.h_addr[0]); Mattias _______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal