You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Honor the WAMP advanced-profile force_reregister option on REGISTER:
when set to true and an existing single-policy registration is present,
forcibly evict the prior callee(s) and install the new registration
instead of returning wamp.error.procedure_already_exists.
- Advertise force_reregister=true in dealer role features.
- Add wamp.OptForceReregister option key + wamp.FeatureForceReregister.
- Add wamp.ErrUnregistered (wamp.error.unregistered) revocation reason.
- Extend Unregistered with an optional Details dict so the dealer can
emit the unsolicited [UNREGISTERED, 0, Details] revocation form
carrying Details.registration and Details.reason to evicted callees.
Normal [UNREGISTERED, Request] replies stay byte-for-byte identical
(omitempty).
- syncEvictRegistration tears down the existing registration, notifies
every attached callee, scrubs calleeRegIDSet / procRegMap /
registrations, and emits on_unregister (per callee) + on_delete meta
events. The new REGISTER then falls through the fresh-registration
branch, producing a new regID and the usual on_create + on_register
meta events.
- force_reregister applies only when the existing registration's
invocation policy is single (or empty); shared registrations are
untouched, falling through to the existing policy-conflict path.
Tests:
- router/dealer_test.go: happy-path eviction, shared-reg ignore-path,
feature-advertisement pin.
- test/spec_force_reregister_test.go: end-to-end across the transport ×
serializer matrix; verifies subsequent CALLs route to the new callee.
0 commit comments