summaryrefslogtreecommitdiff
path: root/fs_sesmon/FS-SessionClient/bin/freeside-login
blob: a6d475169fc325aeee453acd32f586b342cefc9c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#!/usr/bin/perl -Tw

#false-laziness hack w freeside-logout

use strict;
use FS::SessionClient qw( login portnum );

my $username = shift;

my $portnum;
if ( scalar(@ARGV) == 1 ) {
  my $arg = shift;
  if ( $arg =~ /^(\d+)$/ ) {
    $portnum = $1;
  } elsif ( $arg =~ /^([\d\.]+)$/ ) {
    $portnum = portnum( { 'ip' => $1 } ) or die "unknown ip!"
  } else {
    &usage;
  }
} elsif ( scalar(@ARGV) == 2 ) {
  $portnum = portnum( { 'nasnum' => shift, 'nasport' => shift } )
    or die "unknown nasnum/nasport";
} else {
  &usage;
}

my $error = login ( {
  'username' => $username,
  'portnum'  => $portnum,
} );

warn $error if $error;

sub usage {
  die "Usage:\n\n  freeside-login username ( portnum | ip | nasnum nasport )";
}