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.

Reply via email to