Hello Le Anh Tuan -
Many thanks for sending this code. If you are agreeable, Mike can look at
incorporating it into the next release. Please let us know.
regards
Hugh
On Wed, 31 May 2000, Le Anh Tuan wrote:
>
> For those who concern,
> I'm using a Linux RedHat 6.0 (running Portslave 1.2.0pre12 and a Moxa
> multiport) as an Access Server. It works well with Radiator, but there is a
> problem with finger to Portslave. I have to replace fingerd with
> ctlportslave, a finger simulation deamon which you can finger to and see all
> online dialup users.
> Then I configure Nastype in file radius.cfg => PortSlavelinux as described
> in documentation, but as I looked into Radiator source code, I saw that the
> fingerd's format was different to that in source code. The portslave linux
> output looks similar to format of PortMaster. So if I configure
> Nastype=>PortSlaveLinux, it does not work. Then I decided to write a new
> procedure to Handle PortslaveLinux like that:
> Nastype: PortSlaveMoxa
> Add new entry in Nas table: 'PortslaveMoxa' => \&isOnlinePortslaveMoxa,
> and write new isOnlinePortslaveMoxa:
> -------------------------------------------------------------
> #####################################################################
> # Check Portslave runing on Linux/Moxa by using finger
> #Added by Le Anh Tuan, 27/05/2000
> # The NAS-Port Number Format in network byte order is as follows:
> #
> # 0 1 2 3
> # 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
> # +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
> # | Channel | Line | Slot | All zero |
> # +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
> #
> # So channel 4 of line 1 in slot 2 is, for example,
> # NAS-Port = 2084 (4 + 1 * 32 + 2 * 1024).
> #
> # This is from http://www.dataman.nl/ with search query:
> # "portmaster 4 radius accounting"
> #Port User Host/Inet/Dest Type Dir Status Start
> Idle
> #----- --------------- ---------------- ------- --- ------------- ------ ---
> ---
> #C0 - - Log/Net In USERNAME 0
> 0
> #C1 - - Log/Net In USERNAME 0
> 0
> #Port User Host/Inet/Dest Type Dir Status Start
> Idle
> #----- --------------- ---------------- ------- --- ------------- ------ ---
> ---
> #S0 jpampalone@syst ras13230.systec. Netwrk In ESTABLISHED 11:29
> 5
> #S1 hugh ras13265.systec. Netwrk In ESTABLISHED 30
> 0
> #S2 MANEMAN ras13284.systec. Netwrk In ESTABLISHED 2:08
> 0
> #S3 hippydude ras13242.systec. Netwrk In ESTABLISHED 2
> 0
> #S4 - - Log/Net In IDLE 0
> 0
> #S5 gzaino ras13259.systec. Netwrk In ESTABLISHED 1:58
> 0
> #S6 DSAMUELS ras13254.systec. Netwrk In ESTABLISHED 44
> 5
> #S7 dazz ras13212.systec. Netwrk In ESTABLISHED 12
> 6
> #S8 MAGRUNSEICH@sys ras13272.systec. Netwrk In ESTABLISHED 25
> 5
> #S9 bushill ras13243.systec. Netwrk In ESTABLISHED 6:02
> 0
> #
>
> sub isOnlinePortslaveMoxa
> {
> my ($name, $nas_id, $nas_port, $session_id, $client) = @_;
>
> my $Login_seen = 0;
> my ($result, @lines) = finger("\@$nas_id");
> return 1 if !$result; # Could not finger. Assume still there
> my $line;
>
> $name = substr($name, 0, 15);
>
> foreach $line (@lines)
> {
> $_ = $line;
> next if (/Port/);
> next if (/---/);
> next if !(/^S/);
> my ($port, $user) = split;
> $port =~ s/^S//;
> if ($port == $nas_port )
>
>
> return ($user eq $name);
> }
> }
>
> return 0; # Not there
>
> }
>
>
>
>
> -----------------------------------------------------------------------
>
>
> Actually, this code is mixed of PortslaveLinux and PortSalveMaster with some
> modification. But in my case, I assume that our access server has only one
> channel, therefore I omit the code to compute channel, slot and line from
> PortMaster.
> So if any one interest in PortslaveLinux like me, please review and correct
> this code for me.
> Thank you very much.
>
> Le Anh Tuan
> Netnam Company
> R&D group
> email: [EMAIL PROTECTED]
> www: http://www.netnam.vn
>
>
----------------------------------------
Content-Type: text/html; name="unnamed"
Content-Transfer-Encoding: quoted-printable
Content-Description:
----------------------------------------
--
Radiator: the most portable, flexible and configurable RADIUS server
anywhere. SQL, proxy, DBM, files, LDAP, NIS+, password, NT, Emerald,
Platypus, Freeside, Interbiller, TACACS+, PAM, external, etc, etc.
Available on Unix, Linux, FreeBSD, Windows 95/98/2000, NT, MacOS X.
===
Archive at http://www.starport.net/~radiator/
Announcements on [EMAIL PROTECTED]
To unsubscribe, email '[EMAIL PROTECTED]' with
'unsubscribe radiator' in the body of the message.