The new code supporting AUTH in Exim includes a call to the crypt()
function. It appears that different OS handle this differently. I have
been able to check the following operating systems:
Solaris, RedHat 4.2, IRIX 6, Digital Unix 4, HP-UX 9 & 11, BSDI, NetBSD,
FreeBSD, and SCO 5.
Please can those of you running any other operating systems run a little
test for me. What I need to know, for each OS, is which #include is
needed for crypt(), and whether -lcrypt is needed for linking. Here is a
little test program:
#include <stdio.h>
#ifdef I_CRYPT
#include <crypt.h>
#endif
#ifdef I_UNISTD
#include <unistd.h>
#endif
int main(void)
{
printf("%s\n", crypt("MySecret", "az"));
return 0;
}
Please compile this with maximum warnings turned on, e.g.
gcc -Wall testprog.c
If you get warnings about an implicitly declared function, try
gcc -Wall -DI_UNISTD testprog.c
and if that also warns, try
gcc -Wall -DI_CRYPT testprog.c
If the program fails to link, try adding -lcrypt to the end of the
command. NetBSD and FreeBSD need this - can anybody test OpenBSD? BSDI
does not. I have also heard that some versions of Linux need it. RedHat
4.2 does not.
Let me know what you had to do to get a clean compile.
If you run the program, the output should be "azrazPWCQJhyg".
Many thanks.
Philip
--
Philip Hazel University of Cambridge Computing Service,
ph10@??? Cambridge, England. Phone: +44 1223 334714.