On Sun, Aug 18, 2002 at 12:55:27AM -0400, Yuri Victorovich wrote: > Is it a bug that function "sock_host" is declared > sock_host() in /usr/include/tcpd.h > but defined as sock_host(struct request_info *) > in /usr/src/contrib/tcp_wrappers/socket.c ?
A fucntion which is declared with no arguments (eg sock_host()) is assumed to be a function defined in the K&R way. Argument number and types don't need to be known. To decalre a function which takes no arguments (and which has an ANSI style definition) you say "function(void)". So this prototype is correct because the definition in socket.c is a K&R definition. Bruce tells me that gcc has some magic which allows K&R function definitions to work OK with ANSI prototypes, as long as the prototype is visable both where the function is defined and where then function is used. Otherwise, mixing K&R and ANSI can have unexpected side effects. > MySQL on Alpha gives "unaligned access..." > error because they use it w/out an argument and > actual libwrap expects an argument. The bug would seem to be calling sock_host without an argument. I've been considering adding ANSI prototypes to tcpd.h, so we get more useful warnings from it. David. To Unsubscribe: send mail to [EMAIL PROTECTED] with "unsubscribe freebsd-current" in the body of the message