]> git.ozlabs.org Git - ppp.git/blobdiff - pppd/plugins/radius/radiusclient/login.radius/migs/ip-up
Simplified and cleaned up the radiusclient implementation, and
[ppp.git] / pppd / plugins / radius / radiusclient / login.radius / migs / ip-up
diff --git a/pppd/plugins/radius/radiusclient/login.radius/migs/ip-up b/pppd/plugins/radius/radiusclient/login.radius/migs/ip-up
deleted file mode 100644 (file)
index c1e06db..0000000
+++ /dev/null
@@ -1,121 +0,0 @@
-#!/usr/bin/perl
-#
-# ip-up
-# 
-# Script started when the PPP daemon makes a connection.
-#
-
-# This script is given:
-# interface-name tty-device speed local-IP-address remote-IP-address
-# Since this is a PPP server, local-IP-address does not change.
-
-# TODO: Clean up this file and make it really modular.
-
-use strict;
-use GDBM_File;
-
-#### RADIUS section Begins
-
-# Configuration section.
-
-# Port information database.
-my $path_portinfo = "/var/ipoint/acct/portinfo"; 
-
-
-# Radius accounting record generator.
-    my $prog_radacct = "/usr/local/lib/radiusclient/radacct";
-
-sub netmask 
-{
-    my $count = int ($_[0] / 8);
-    
-    my $c1 = ("255." x $count);
-    $c1 = substr ($c1, 0, -1) if ($count == 4);
-    my $c2 = (256 - (1<<(8 - ($_[0] - $count * 8)))) || "0";
-    $c2 .= '.' if ($count < 3);
-    my $c3 = substr (("0." x (3-$count)), 0, -1);
-    return $c1 . $c2. $c3;
-}
-
-my ($sessionid, $username, $port, $portid, $timeout, $routelist) = 
-    split (/:/, $ARGV[5]);
-
-if ($sessionid) 
-{
-# I-Way code to inform the server that we're getting in.
-
-# If there was routing, add it.  Format for $route, from the Framed-Route
-# parameter, is address/netmask gateway metric.  If gateway is 0.0.0.0,
-# add the route here.
-
-# Unescape the route list.
-    $routelist =~ s/%20/ /g;
-
-    my $route;
-
-    # Debug this.
-    open (H, ">>/tmp/ip-up.log");
-    print H "ROUTELIST: " . $routelist . "\n";
-
-    foreach $route (split ("@", $routelist)) {
-       # Split the route into the components.
-       my @routevalue = split (' ', $route);
-       my ($netmaskcmd, $gwcmd, $metriccmd);
-       my @network = split ("/", $routevalue[0]);
-       
-       if ($network[1]) {
-           $netmaskcmd = "netmask " . netmask($network[1]);
-       }
-
-       if ($routevalue[1] eq "0.0.0.0") {
-           $gwcmd = "gw $ARGV[4]";
-       }
-       elsif ($routevalue[1]) {
-           $gwcmd = "gw $routevalue[1]";
-       }
-       
-       if ($routevalue[2]) {
-           $metriccmd = "metric $routevalue[2]";
-       }
-
-       my $routecmd = "/sbin/route add -net $network[0] $netmaskcmd $gwcmd " .
-           "$metriccmd";
-    
-       system ($routecmd);
-       print H "COMMAND: " . $routecmd . "\n";
-    }
-    close (H);
-
-# The session ID, username, raw port and ID are given to this script 
-# through the ipparam parameter of pppd 2.2.0e and above.
-
-# Generate the accounting entry, and hand it over to RADIUS.
-
-    open  (H, "| $prog_radacct -i $port");
-
-    my $cmd =
-       "Acct-Session-ID = \"$sessionid\"\n" .
-       "User-Name = \"$username\"\n" .
-       "Acct-Status-Type = Start\n" .
-       "Acct-Authentic = RADIUS\n" .
-       "Service-Type = Framed\n" .
-       "Framed-Protocol = PPP\n" .
-       "Framed-IP-Address = $ARGV[4]\n";
-
-    print H $cmd;
-    close (H);
-}
-
-# Store the username, the connection type, the IP address, the PID of pppd.
-# Index it on the port ID, since 'portman' makes use of this.
-
-my ($timenow, %s);
-$timenow = time();
-tie (%s, "GDBM_File", $path_portinfo, GDBM_WRCREAT, 0600);
-$s{$portid} = join (':', $username, "Framed-User/PPP", $ARGV[4], getppid (),
-                   $timenow, $timeout);
-untie (%s);
-
-
-#### RADIUS ends
-