"Martin A. Marques" <[EMAIL PROTECTED]> writes:
>>>> Is there any kind of info you would need that I could provide?
>> 
>> If you could put
>> #include <sys/types.h>
>> #include <sys/socket.h>
>> into a file temp.c, and then send the output of "gcc -E temp.c",
>> it might shed some light.

> There it goes!!

Well, that tells the tale all right: the critical lines are

        typedef uint32_t        socklen_t;

        typedef void            *Psocklen_t;

        extern int accept(int, struct sockaddr *, Psocklen_t);

What brainless idiot decided it would be a good idea to declare
accept's last argument as void*, do you suppose?  (At least you
report that Solaris 8 no longer has this folly, so they did get
a clue eventually.)

Not sure what to do about this.  It will clearly not do to define
ACCEPT_TYPE_ARG3 as void.  Perhaps we need a special case for
Solaris 7: if we detect that accept() is declared with "void *",
assume that socklen_t is the thing to use.  Peter, any thoughts?

                        regards, tom lane

Reply via email to