From: Bill Erickson Date: Fri, 3 Aug 2012 19:08:51 +0000 (-0400) Subject: SIP re-login fetches correct auth session X-Git-Tag: sprint4-merge-nov22~3233 X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=58d4b4aaf372a51d4cccc9d9d5b37aa0281a9aab;p=working%2FEvergreen.git SIP re-login fetches correct auth session 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 Signed-off-by: Galen Charlton --- diff --git a/Open-ILS/src/perlmods/lib/OpenILS/SIP.pm b/Open-ILS/src/perlmods/lib/OpenILS/SIP.pm index 37375064d3..da2528c57a 100644 --- a/Open-ILS/src/perlmods/lib/OpenILS/SIP.pm +++ b/Open-ILS/src/perlmods/lib/OpenILS/SIP.pm @@ -244,9 +244,11 @@ sub login { 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; } #