Disclaimer: This assumes that you have gcc3 installed. We used
the binary package from blastwave.org which was installed by using the
pkg-get utility.
This document covers how to build
mod_auth_xradius on Solaris 7, 8 and 9. It covers how to add the time
macros which come as standard on Linux and how to change the MD5 byte
ordering from little endian to big endian (which is needed for Sparc).
Openssl
Download OpenSSL version 0.9.7
make
make test
su (if you aren't root)
make install
By default OpenSSL will be installed in the directory /usr/local/ssl.
We can select other directory using the following argument with ./config:
./config --prefix=/usr/local --openssldir=/usr/local/openssl
Apache2
Download the apache 2 source code from http://httpd.apache.org/
Apache 2.0.XX is the recommended version
Unzip the download using gunzip filename
Untar the download using tar –xvpf filename
Use the following configure options
./configure --enable-ssl=shared
Use the make command to build Apache 2
Use the ‘make install’ command to install Apache2 (into /usr/local/apache2 or whatever is set by your –prefix=)
Mod_auth_Xradius
Download the mod_auth_xradius module from http://www.outoforder.cc/projects/apache/mod_auth_xradius/
Mod_auth_xradius-0.4.3 is the recommended version
Make the following code changes
Configure : may need to add --tag=CXX to the line which defines the libtool command
Libradius/radlib.h
#define timeradd(tvp, uvp, vvp)
do {
(vvp)->tv_sec = (tvp)->tv_sec + (uvp)->tv_sec;
(vvp)->tv_usec = (tvp)->tv_usec + (uvp)->tv_usec;
if ((vvp)->tv_usec >= 1000000) {
(vvp)->tv_sec++;
(vvp)->tv_usec -= 1000000;
}
} while (0)
#define timersub(tvp, uvp, vvp)
do {
(vvp)->tv_sec = (tvp)->tv_sec - (uvp)->tv_sec;
(vvp)->tv_usec = (tvp)->tv_usec - (uvp)->tv_usec;
if ((vvp)->tv_usec < 0) {
(vvp)->tv_sec--;
(vvp)->tv_usec += 1000000;
}
} while (0)
Libradius/md5c.c
static u_int32_t ByteSwap4UI(u_int32_t uiNumIn)
{
u_int32_t uiRet;
unsigned char *pBytes=(unsigned char *)&uiNumIn;
unsigned char *pBytesOut=(unsigned char *)&uiRet;
pBytesOut[3]=pBytes[0];
pBytesOut[2]=pBytes[1];
pBytesOut[1]=pBytes[2];
pBytesOut[0]=pBytes[3];
return uiRet;
}
Also change the reference to htole32 so that it uses the ByteSwap4UI function instead
op[i] = ByteSwap4UI(input[i]);
Configure mod_auth_xradius using ./configure –with-apxs=/usr/local/apache2/bin/apxs
Then issue the make command.
Copy mod_auth_xradius.so from the .libs directory into the apache modules directory.
