Bug 15006: Centralize timeout logic and allow zero client timeout
authorMarcel de Rooy <m.de.rooy@rijksmuseum.nl>
Wed, 6 Jul 2016 14:14:45 +0000 (15:14 +0100)
committerKyle M Hall <kyle@bywatersolutions.com>
Fri, 15 Jul 2016 14:11:05 +0000 (14:11 +0000)
commiteb8666357ce72e910569843f8acce674a332f4b0
tree5585c033a0a0777178796a9212d6f759aa5895f5
parentb27da7e0ce25c806612743100609255ace48257c
Bug 15006: Centralize timeout logic and allow zero client timeout

Moving timeout logic to one routine (with unit test).

This further implements two suggestions from Kyle and Larry:

[1] You could use a client_timeout of 0 to specify no timeout at all.
[2] Have the client_timeout default to the timeout if not defined.

Test plan:
[1] Run t/db_dependent/SIP/SIPServer.t.
[2] Test login timeout for raw and telnet.
[3] Check ACS status message for timeout value. Should match policy
    timeout from institution.
[4] Test client timeout (zero and non-zero).
[5] Remove client timeout. Test fallback to service.
[6] Remove service timeout too. Test fallback to 30 at login.

Signed-off-by: Srdjan <srdjan@catalyst.net.nz>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Amended to incorporate Srdjan's suggestion to move get_timeout to
SIPServer.pm; this requires some additional mocking in the unit test.
And even makes the test db dependent, as documented.

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
C4/SIP/SIPServer.pm
C4/SIP/Sip/MsgType.pm
t/SIP/Sip.t [new file with mode: 0755]
t/SIP_Sip.t [deleted file]
t/db_dependent/SIP/SIPServer.t [new file with mode: 0755]