On Wed, 9 Oct 2002 [EMAIL PROTECTED] wrote: > Date: Wed, 9 Oct 2002 9:13:01 +0100 > From: [EMAIL PROTECTED] > Reply-To: [EMAIL PROTECTED] > To: [EMAIL PROTECTED] > Subject: LPRng: lprng on AIX > > hi list, > I compiled lprng 3.8.3 on AIX4.2 i had to fix some things > to avoid warnings. > ( accept() and friends take socklen_t as argument ) > > should i submit the patches ? >
>From one of the header files in the apache distribution. Maybe that would add some more light on this issue. The "proper" way is for autoconfig to determine if socklen_t is available, but that is perhaps an overkill for the time being. AIX41 takes int* or size_t* depending on the mood of the compiler; it is all 32 bit integers anyway. AIX43 may have 64 bit integers, so that needs a little more care. /* * NET_SIZE_T exists because of shortsightedness on the POSIX committee. BSD * systems used "int *" as the parameter to accept(), getsockname(), * getpeername() et al. Consequently many unixes took an int * for that * parameter. The POSIX committee decided that "int" was just too generic and * had to be replaced with size_t almost everywhere. There's no problem with * that when you're passing by value. But when you're passing by reference * this creates a gross source incompatibility with existing programs. On * 32-bit architectures it creates only a warning. On 64-bit architectures it * creates broken code -- because "int *" is a pointer to a 64-bit quantity and * "size_t *" is frequently a pointer to a 32-bit quantity. * * Some Unixes adopted "size_t *" for the sake of POSIX compliance. Others * ignored it because it was such a broken interface. Chaos ensued. POSIX * finally woke up and decided that it was wrong and created a new type * socklen_t. The only useful value for socklen_t is int, and that's how * everyone who has a clue implements it. It is almost always the case that * NET_SIZE_T should be defined to be an int, unless the system being compiled * for was created in the window of POSIX madness. */ -- Villy ----------------------------------------------------------------------------- YOU MUST BE A LIST MEMBER IN ORDER TO POST TO THE LPRNG MAILING LIST The address you post from MUST be your subscription address If you need help, send email to [EMAIL PROTECTED] (or lprng-requests or lprng-digest-requests) with the word 'help' in the body. For the impatient, to subscribe to a list with name LIST, send mail to [EMAIL PROTECTED] with: | example: subscribe LIST <mailaddr> | subscribe lprng-digest [EMAIL PROTECTED] unsubscribe LIST <mailaddr> | unsubscribe lprng [EMAIL PROTECTED] If you have major problems, send email to [EMAIL PROTECTED] with the word LPRNGLIST in the SUBJECT line. -----------------------------------------------------------------------------
