factor out listener to share between srv_ctxs'