The removal of C4::SIP::Sip::Configuration::* in bug 13506 did not reach all of the code that was using those classes. In particular, the telnet transport expects to compare the password supplied by the client with the password in the SIP configuration, and at the moment attempts to use the object method ->password() that was previously supplied by C4::SIP::Sip::Configuration::Account. Since that method no longer exists, what happens is that the SIPServer backend crashes and aborts the connection if the client attempts to log in via the telnet transport.
Created attachment 41359 [details] [review] Bug 14644: unbreak SIP2 terminal login when using telnet transport This patch fixes breakage introduced by the patch for bug 13506 that prevented SIP2 clients from authenticating themselves over the telnet transport. Attempts to do so would manifest by the SIPServer backend crashing and the connection getting closed. To test: [1] Use the stock SIPServer config, etc/SIPconfig.xml, and ensure that the database contains a staff user whose username is 'term1' and password is 'term1' that has the circulate permission. [2] Start SIPServer, telnet to port 8023, and attempt to log in. The connection will be aborted: $ telnet localhost 8023 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. login: term1 password: term1 Connection closed by foreign host. [3] Apply the patch and restart SIPSever, then repeat step 2. This time, the login should succeed: $ telnet localhost 8023 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. login: term1 password: term1 Login OK. Initiating SIP Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Created attachment 41373 [details] [review] Signed Off patch Signed off - works as described
Created attachment 41657 [details] [review] Bug 14644: unbreak SIP2 terminal login when using telnet transport This patch fixes breakage introduced by the patch for bug 13506 that prevented SIP2 clients from authenticating themselves over the telnet transport. Attempts to do so would manifest by the SIPServer backend crashing and the connection getting closed. To test: [1] Use the stock SIPServer config, etc/SIPconfig.xml, and ensure that the database contains a staff user whose username is 'term1' and password is 'term1' that has the circulate permission. [2] Start SIPServer, telnet to port 8023, and attempt to log in. The connection will be aborted: $ telnet localhost 8023 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. login: term1 password: term1 Connection closed by foreign host. [3] Apply the patch and restart SIPSever, then repeat step 2. This time, the login should succeed: $ telnet localhost 8023 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. login: term1 password: term1 Login OK. Initiating SIP Signed-off-by: Galen Charlton <gmc@esilibrary.com> Signed-off-by: Colin Campbell <colin.campbell@ptfs-europe.com> Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Should be backported to 3.20.x.
Patch pushed to master. Thanks Galen!
Pushed to 3.20.x will be in 3.20.3