summaryrefslogtreecommitdiff
path: root/FS/FS/session.pm
diff options
context:
space:
mode:
authorivan <ivan>2000-11-07 15:00:37 +0000
committerivan <ivan>2000-11-07 15:00:37 +0000
commit7f07089722bfcabe3bf42619bb2bdb81fd8d44e1 (patch)
tree8bbfe5b33182d68cd89e63176a11dcc468091ed0 /FS/FS/session.pm
parentb31966d5d1f9d8629bd28ff1c2ff37a5c84965c1 (diff)
session monitor
Diffstat (limited to 'FS/FS/session.pm')
-rw-r--r--FS/FS/session.pm27
1 files changed, 24 insertions, 3 deletions
diff --git a/FS/FS/session.pm b/FS/FS/session.pm
index 0d766bd..b85a582 100644
--- a/FS/FS/session.pm
+++ b/FS/FS/session.pm
@@ -4,6 +4,8 @@ use strict;
use vars qw( @ISA );
use FS::Record qw( qsearchs );
use FS::svc_acct;
+use FS::port;
+use FS::nas;
@ISA = qw(FS::Record);
@@ -31,6 +33,8 @@ FS::session - Object methods for session records
$error = $record->check;
+ $error = $record->nas_heartbeat($timestamp);
+
=head1 DESCRIPTION
An FS::session object represents an user login session. FS::session inherits
@@ -57,7 +61,7 @@ from FS::Record. The following fields are currently supported:
=item new HASHREF
-Creates a new example. To add the example to the database, see L<"insert">.
+Creates a new session. To add the session to the database, see L<"insert">.
Note that this stores the hash reference, not a distinct copy of the hash it
points to. You can ask the object for a copy with the I<hash> method.
@@ -95,6 +99,8 @@ sub insert {
$error = $self->SUPER::insert;
return $error if $error;
+ $self->nas_heartbeat($self->getfield('login'));
+
#session-starting callback!
'';
@@ -136,6 +142,8 @@ sub replace {
$error = $self->SUPER::replace;
return $error if $error;
+ $self->nas_heartbeat($self->getfield('logout'));
+
#session-ending callback!
'';
@@ -143,7 +151,7 @@ sub replace {
=item check
-Checks all fields to make sure this is a valid example. If there is
+Checks all fields to make sure this is a valid session. If there is
an error, returns the error, otherwise returns false. Called by the insert
and replace methods.
@@ -167,11 +175,24 @@ sub check {
'';
}
+=item nas_heartbeat
+
+Heartbeats the nas associated with this session (see L<FS::nas>).
+
+=cut
+
+sub nas_heartbeat {
+ my $self = shift;
+ my $port = qsearchs('port',{'portnum'=>$self->portnum});
+ my $nas = qsearchs('nas',{'nasnum'=>$port->nasnum});
+ $nas->heartbeat(shift);
+}
+
=back
=head1 VERSION
-$Id: session.pm,v 1.1 2000-10-27 20:18:32 ivan Exp $
+$Id: session.pm,v 1.2 2000-11-07 15:00:37 ivan Exp $
=head1 BUGS