> > I have seen that APR can be configured to use either /dev/random or
> > EGD. However, mod_auth_digest insists on /dev/random or, better said,
> > it insists on APR_HAS_RANDOM being set.
>
> APR_HAS_RANDOM should be set if you told APR to use your egd. Did you
> use the --with-egd parameter on configure?
>
> $ srclib/apr/configure --help | grep egd
> --with-egd[[=<path>]] use egd-compatible socket
(sigh) I found out what was choking configure - indented CPPs.
DEC's CC doesn't support indented CPP directives, it follows ANSI standard - a CPP
directive must have a "#" start in the first column of the row. Everything else can be
indented, but "#" not. In other words, this is illegal for DEC CC:
-----------------------------------------------------------------------
#if !APR_HAS_RANDOM
#error You need APR random support to use auth_digest.
#endif
-----------------------------------------------------------------------
CC choked on this and said there was a "#endif" missing. After correcting this (and
traversing the entire Apache source tree for this kind of mischief), it configures OK.
I know that indented CPP looks nicer and that in complex multiplatform projects such
as this one you have to use CPP "big time". The Apache source looks preety clean, but
"configures" usually have a couple of such pitfalls. I found out that ANSI C (and
other specifications of C) allow for kind-of-indented CPPs. Namely, you can indent
everything after "#", so this is OK:
-----------------------------------------------------------------------
# if !APR_HAS_RANDOM
# error You need APR random support to use auth_digest.
# endif
-----------------------------------------------------------------------
If it makes any sense to you guys, you can use it. In the meantime, I guess I'll have
to clean up every version prior to configure/compile.
Nixie.