Bug 15006: Centralize timeout logic and allow zero client timeout
commite8a03065affb09718d16781a8beecfa262497639
authorMarcel de Rooy <m.de.rooy@rijksmuseum.nl>
Wed, 6 Jul 2016 14:14:45 +0000 (6 15:14 +0100)
committerFrédéric Demians <f.demians@tamil.fr>
Mon, 1 Aug 2016 09:52:51 +0000 (1 11:52 +0200)
tree6f3c3a8e84378806862e5a9bb2746095e23f6820
parentd477ba8b0621fae9c847ef4e84d685ef396b3258
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>
(cherry picked from commit eb8666357ce72e910569843f8acce674a332f4b0)
Signed-off-by: Frédéric Demians <f.demians@tamil.fr>
C4/SIP/SIPServer.pm
C4/SIP/Sip/MsgType.pm
t/SIP/Sip.t [moved from t/SIP_Sip.t with 100% similarity]
t/db_dependent/SIP/SIPServer.t [new file with mode: 0755]