I have just observe that depending on library vendor,
   the file <netinet/in.h> might declare IPPORT_* as
   "enum" as Glibc does, or as macro, as OpenSolaris does.
   Presently, only IPPORT_RESERVED is in use by us, namely
   in ftpd, libinetutils, rlogind, rshd, and traceroute.

   It does make sense to use the values such as IPPORT_FTP,
   IPPORT_CMDSERVER, IPPORT_LOGINSERVER, and IPPORT_SYSLOG
   as fallback values when starting the corresponding services,
   but code like

      #ifdef IPPORT_FTP
      # define DEFPORT IPPORT_FTP
      #else
      # define DEFPORT 21
      #endif

   is useless since Glibc uses "enum { IPPORT_FTP = 21 }".
   Could we develop a configuration test to determine
   the presence of the relevant constants?

   The individual constants are not always present: IPPORT_SYSLOG
   is missing in Glibc, but is present in SunOS.

Do we know any systems where IPPORT_* is not defined?  If those
systems are not common, we can simply use the value directly.

If we still want to support systems where IPPORT_* is not defined, we
should do a configuration check.

Reply via email to