# HG changeset patch # User Sebastien Decugis # Date 1266913162 -32400 # Node ID 3caac3cd359d30de34283387e4c598af5044e67f # Parent 85dc47afeac7f3c80253a1332989e8a490d37c6a Change state first, otherwise failover might re-select the same peer diff -r 85dc47afeac7 -r 3caac3cd359d freeDiameter/p_psm.c --- a/freeDiameter/p_psm.c Tue Feb 23 15:09:48 2010 +0900 +++ b/freeDiameter/p_psm.c Tue Feb 23 17:19:22 2010 +0900 @@ -192,12 +192,12 @@ STATE_STR(new_state), peer->p_hdr.info.pi_diamid); + peer->p_hdr.info.runtime.pir_state = new_state; + if (old == STATE_OPEN) { CHECK_FCT( leave_open_state(peer) ); } - peer->p_hdr.info.runtime.pir_state = new_state; - if (new_state == STATE_OPEN) { CHECK_FCT( enter_open_state(peer) ); }