=item new HASHREF
-Creates a new port. To add the example to the database, see L<"insert">.
+Creates a new port. To add the port 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.
=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 port. If there is
an error, returns the error, otherwise returns false. Called by the insert
and replace methods.
my $self = shift;
my $error =
$self->ut_numbern('portnum')
- || $self->ut_ipn('ipn')
+ || $self->ut_ipn('ip')
|| $self->ut_numbern('nasport')
|| $self->ut_number('nasnum');
;
unless $self->ip || $self->nasport;
return "Unknown nasnum"
unless qsearchs('nas', { 'nasnum' => $self->nasnum } );
- ''; #no error
+ $self->SUPER::check;
}
=item session
-Returns the currently open session, or if no session is currently open, the
-most recent session. See L<FS::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.2 2000-12-03 13:44:05 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.
-=head1 HISTORY
-
-ivan@voicenet.com 97-jul-1
-
-added hfields
-ivan@sisd.com 97-nov-13
-
-$Log: port.pm,v $
-Revision 1.2 2000-12-03 13:44:05 ivan
-beginnings of web status for session monitor
-
-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
-move table subclass examples out of production directory
-
-Revision 1.4 1998/12/29 11:59:57 ivan
-mostly properly OO, some work still to be done with svc_ stuff
-
-Revision 1.3 1998/11/15 04:33:00 ivan
-updates for newest versoin
-
-Revision 1.2 1998/11/15 03:48:49 ivan
-update for current version
-
-
=cut
1;