I'm trying to write a simple finger daemon, capable of both IP4 and IP6. At present it's using an unprivileged socket so as to avoid problems on unix platforms.

I appear to be having problems at the bind() call for IP6 (returns -1), which I suspect is down to my incomplete understanding of the new sockaddr_in6 structure. Has anybody done this successfully?

As a subsidiary question: noting that a client has to be aware of this:

  sockaddr_in6 = packed Record
    {$ifdef SOCK_HAS_SINLEN}  // as per RFC 2553
      sin6_len    : cuint8;
    {$endif}
    sin6_family   : sa_family_t;
..

so that it initialises the sin6_len field if present (some BSD variants?), does it see that conditional automatically if defined? Otherwise how best to do it?

--
Mark Morgan Lloyd
markMLl .AT. telemetry.co .DOT. uk

[Opinions above are the author's, not those of his employers or colleagues]
_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal

Reply via email to