SIPServer tosses away current account prematurely

Bug #1464748 reported by Galen Charlton
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
SIPServer
Fix Released
Undecided
Unassigned

Bug Description

When using the Prefork Net::Server personality, SIPServer backends use raw_transport()/telnet_transport() to authenticate the SIP2 client, then use sip_protocol_loop() to process further requests from that client for the life of the connection.

Commit cd455136 for bug 1227273 ensures that the current account is cleared when a new connection is made; this prevents a client from getting access to a backend that is already authenticated.

However, that commit also clears the current account between raw_transport()/telnet_transport() and sip_protocol_loop() -- and this is a problem for request handlers that specifically need to get at the account -- most notably the ACS status request (see bug 1463459).

Tags: pullrequest
Revision history for this message
Galen Charlton (gmc) wrote :

The user/gmcharlt/lp1464748_do_not_toss_login_session_prematurely branch in the working/SIPServer repository contains two patches: a signed-off patch for bug 1463459 and a prospective patch for this bug:

http://git.evergreen-ils.org/?p=working/SIPServer.git;a=shortlog;h=refs/heads/user/gmcharlt/lp1464748_do_not_toss_login_session_prematurely

Here is the test plan for both patches:

    [1] Set up a SIP configuration with at least two institutions
        with different capabilities and at least one account
        for each institution. Assume that account A1 is for
        institution I1 and A2 for I2.

    [2] Prior to applying the patches for 1463459 and 1464748,
        start the SIP server and try the following sequence:

        a. 93 to log in as A2
        b. 99 to get SC status
        c. Note that the 98 response has values for I1, not I2

    [3] Apply the patches and restart SIP, then repeat the steps
        in [2]. This time, the 98 response should have the
        values for I2.

tags: added: pullrequest
Revision history for this message
Jason Stephenson (jstephenson) wrote :

While working on another "bug," I found that this patch was necessary to get the account information in handle_item_information and possibly other methods.

Changed in sipserver:
status: New → Fix Committed
Changed in sipserver:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.