Samba 2.0 Beta1 released !
tim at trr.metro.NET
Mon Nov 16 18:46:09 GMT 1998
On Mon, 16 Nov 1998, Andrej Borsenkow wrote:
> > I've also attached a patch I'd like to see included to adress the fact
> > that some vendors have changed the socket API so that call-by-reference
> > parameters that give buffer lengths are not int.
> Unfortunately, the patch as is is wrong. It unconditionally resets agrument
> to size_t. In our case e.g., the system provides two environments (32 bits
> and 64 bits); the argument is size_t in 32 bits case, and int in 64 bits
> case. Setting it to size_t in 64bit environment will break all possible
> things (size_t is 64 bit long in this case). The test for ostype is porbably
> too generic to handle such things.
It only sets it to size_t for System V release 4.2 and System V release 5
All others default to int like before.
---< include/includes.h >----
typedef SOCKARGLENTYPE socklen_t;
typedef int socklen_t;
I see below the output of config.guess on your machine is mips-sni-sysv4.
My patch would not reset to size_t on your platform.
------< configure.in >----
*sysv4.2*) AC_CHECK_LIB(resolv, strcasecmp)
> Perl does the same check for several socket functions. The idea is as
> #include <sys/socket.h>
> int getsockopt(int socket,
> int level,
> int option_name,
> void *option_value,
> size_t *option_len)
> With well-behaving C-Compiler this code will *not* compile, because of
> prototype mismatch, which is unconditional error in ANSI (if option_len has
> int * type).
The native compilers on UnixWare complain if it's an int but it compiles.
> BTW you test for strncasecmp in -lresolv in case of SVR4.2. Our system is
> autoconf'ed as mips-sni-sysv4, but still has str[n]casecmp in -resolv as
> well. May be, test just for *sysv4*?
Maybe what we need in configure.in is
*sysv4*) AC_CHECK_LIB(resolv, strcasecmp);;
Tim Rice Multitalents (707) 887-1469 (voice)
tim at trr.metro.net
More information about the samba-technical