use vars qw( @ISA );
use FS::Record qw( qsearchs );
use FS::nas;
+use FS::session;
@ISA = qw(FS::Record);
$error = $record->check;
+ $session = $port->session;
+
=head1 DESCRIPTION
An FS::port object represents an individual port on a NAS. FS::port inherits
''; #no error
}
+=item session
+
+Returns the currently open session on this port, or if no session is currently
+open, the most recent session. See L<FS::session>.
+
+=cut
+
+sub session {
+ my $self = shift;
+ qsearchs('session', { 'portnum' => $self->portnum }, '*',
+ 'ORDER BY login DESC LIMIT 1' );
+}
+
=back
=head1 VERSION
-$Id: port.pm,v 1.1 2000-10-27 20:18:32 ivan Exp $
+$Id: port.pm,v 1.3 2000-12-03 20:25:20 ivan Exp $
=head1 BUGS
The author forgot to customize this manpage.
+The session method won't deal well if you have multiple open sessions on a
+port, for example if your RADIUS server drops B<stop> records. Suggestions for
+how to deal with this sort of lossage welcome; should we close the session
+when we get a new session on that port? Tag it as invalid somehow? Close it
+one second after it was opened? *sigh* Maybe FS::session shouldn't let you
+create overlapping sessions, at least folks will find out their logging is
+dropping records.
+
+If you think the above refers multiple user logins you need to read the
+manpages again.
+
=head1 SEE ALSO
L<FS::Record>, schema.html from the base documentation.
ivan@sisd.com 97-nov-13
$Log: port.pm,v $
-Revision 1.1 2000-10-27 20:18:32 ivan
+Revision 1.3 2000-12-03 20:25:20 ivan
+session monitor updates
+
+Revision 1.1 2000/10/27 20:18:32 ivan
oops, also necessary for session monitor
Revision 1.1 1999/08/04 08:03:03 ivan