summaryrefslogtreecommitdiff
path: root/fs_sesmon/FS-SessionClient/bin/freeside-logoff
diff options
context:
space:
mode:
Diffstat (limited to 'fs_sesmon/FS-SessionClient/bin/freeside-logoff')
-rw-r--r--fs_sesmon/FS-SessionClient/bin/freeside-logoff37
1 files changed, 37 insertions, 0 deletions
diff --git a/fs_sesmon/FS-SessionClient/bin/freeside-logoff b/fs_sesmon/FS-SessionClient/bin/freeside-logoff
new file mode 100644
index 000000000..f7b876b33
--- /dev/null
+++ b/fs_sesmon/FS-SessionClient/bin/freeside-logoff
@@ -0,0 +1,37 @@
+#!/usr/bin/perl -Tw
+
+#false-laziness hack w freeside-login
+
+use strict;
+use FS::SessionClient qw( logoff 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-logoff username ( portnum | ip | nasnum nasport )";
+}
+