X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=FS%2FFS%2Fport.pm;h=c26ca85d4c72b18bb8a4a0a0ee3afc8ae44577fa;hp=ee4611d212a67c20944d497af08a06f2adb6fda8;hb=HEAD;hpb=c7effea426d7cefcebc4b32f162fd1719095fc12 diff --git a/FS/FS/port.pm b/FS/FS/port.pm index ee4611d21..c26ca85d4 100644 --- a/FS/FS/port.pm +++ b/FS/FS/port.pm @@ -52,7 +52,7 @@ from FS::Record. The following fields are currently supported: =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 method. @@ -91,7 +91,7 @@ returns the error, otherwise returns false. =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. @@ -104,7 +104,7 @@ sub check { 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'); ; @@ -113,59 +113,41 @@ sub check { 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. +Returns the currently open session on this port, or if no session is currently +open, the most recent session. See L. =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 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, 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;