> > 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.


Reply via email to