diff options
| author | Matthias Radestock <matthias@rabbitmq.com> | 2013-06-22 01:12:20 +0100 |
|---|---|---|
| committer | Matthias Radestock <matthias@rabbitmq.com> | 2013-06-22 01:12:20 +0100 |
| commit | 85973878aed3f8430359085066b1b1e3a5547f8f (patch) | |
| tree | f2774d63cb20fd14469a2cf4263d866b44ddd0c5 /src | |
| parent | d0a9d6ed3c337ce62ae8a918fc684926467f935e (diff) | |
| download | rabbitmq-server-git-85973878aed3f8430359085066b1b1e3a5547f8f.tar.gz | |
prevent invalid state transition
from 'dormant' to 'active' w/o registration
This was very hard to trigger, but nevertheless possible.
Diffstat (limited to 'src')
| -rw-r--r-- | src/rabbit_limiter.erl | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/rabbit_limiter.erl b/src/rabbit_limiter.erl index 1e32f95a3d..6a09573c62 100644 --- a/src/rabbit_limiter.erl +++ b/src/rabbit_limiter.erl @@ -255,7 +255,9 @@ safe_call(Pid, Msg, ExitValue) -> fun () -> ExitValue end, fun () -> gen_server2:call(Pid, Msg, infinity) end). -resume(L) -> L#qstate{state = active}. +resume(L = #qstate{state = suspended}) -> + L#qstate{state = active}; +resume(L) -> L. deactivate(L = #qstate{state = dormant}) -> L; deactivate(L) -> |
