On Mon, 19 Sep 2005, Joost de Heer wrote:
I recently had to work with squid_rad_auth 1.07 on a Linux machine,
which needed to talk to a radius server on Solaris 8. I couldn't get the
thing to work properly, and after lots of searching I found out that
there is a difference between the ports defined for radius in
/etc/services on Linux and Solaris. On Linux, the default radius port is
1812, on Solaris it's 1645. On Linux, this port is called 'datametrics'.
IANA (who assigns the official port numbers) say:
radius 1812/tcp RADIUS
radius 1812/udp RADIUS
# Carl Rigney <cdr@xxxxxxxxxxxxxx>
radius-acct 1813/tcp RADIUS Accounting
radius-acct 1813/udp RADIUS Accounting
# Carl Rigney <cdr@xxxxxxxxxxxxxx>
The use of port 1812 is also specified in RFC2865 Remote Authentication
Dial In User Service (RADIUS) and it's earkuer versions RFC2138 and
RFC2058.
So in order to avoid problems like this, I propose the following (trivial)
change to squid_rad_auth.c:
diff squid_radius_auth-1.07/squid_rad_auth.c
squid_radius_auth-1.07-joost/squid_rad_auth.c
76a77
static char svc_name[MAXLINE] = "radius";
166a168,169
if (!memcmp(line, "service", 7))
sscanf(line, "service %s", svc_name);
343d345
< const char *svc_name = "radius";
362c364
< svc_name = optarg;
---
strcpy(svc_name, optarg);
This adds an option 'service' in the squid_rad_auth.conf file.
There is already a command line option for specifying the service name
(or port).
-p servicename
but I have in principle nothing against also having support for this to
the config file. To make my life easier please resend the above diff as a
unified diff (-u option to diff).
Regards
Henrik