After a login session expires and the SIP server logs in again to
acquire a new authtoken, be sure to use the new authtoken when fetching
the new session object. Otherwise, the login_session is left undef and
you may see errors like this when checking in items:
Can't call method "ws_ou" on an undefined value at
/usr/local/share/perl/5.10.1/OpenILS/SIP/Transaction/Checkin.pm line 77.
Incidentally, the checkin code is the only code that references
$sip_handler->{login_session}. And the problem listed above only occurs
when the login session expires just prior to a checkin call. In any
other scenario, the login_session would ultimately get repaired.
Signed-off-by: Bill Erickson <berick@esilibrary.com>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
my $key = $response->{payload}->{authtoken};
syslog('LOG_INFO', "OILS: Login succeeded for $username : authkey = $key");
+ $self->{authtoken} = $key;
+
$self->fetch_session; # to cache the login
- return $self->{authtoken} = $key;
+ return $key;
}
#