diff --git a/src/common/libflux/msg_handler.c b/src/common/libflux/msg_handler.c index 431d77e5c232..147a58aeece3 100644 --- a/src/common/libflux/msg_handler.c +++ b/src/common/libflux/msg_handler.c @@ -291,7 +291,7 @@ static void call_handler (flux_msg_handler_t *mh, const flux_msg_t *msg) if (flux_msg_get_rolemask (msg, &rolemask) < 0) return; - if (!(rolemask & mh->rolemask)) { + if (!(rolemask & FLUX_ROLE_OWNER) && !(rolemask & mh->rolemask)) { if (flux_msg_cmp (msg, FLUX_MATCH_REQUEST) && flux_msg_get_matchtag (msg, &matchtag) == 0 && matchtag != FLUX_MATCHTAG_NONE) { @@ -483,7 +483,6 @@ void flux_msg_handler_deny_rolemask (flux_msg_handler_t *mh, uint32_t rolemask) { if (mh) { mh->rolemask &= ~rolemask; - mh->rolemask |= FLUX_ROLE_OWNER; } } @@ -532,7 +531,7 @@ flux_msg_handler_t *flux_msg_handler_create (flux_t *h, mh->magic = HANDLER_MAGIC; if (copy_match (&mh->match, match) < 0) goto nomem; - mh->rolemask = FLUX_ROLE_OWNER; + mh->rolemask = 0; mh->fn = cb; mh->arg = arg; mh->d = d;