diff --git a/salt/transport/zeromq.py b/salt/transport/zeromq.py index 3045ae4db1e..1d9a4689e9e 100644 --- a/salt/transport/zeromq.py +++ b/salt/transport/zeromq.py @@ -532,9 +532,10 @@ class AsyncZeroMQPubChannel(salt.transport.mixins.auth.AESPubClientMixin, salt.t payload = self.serial.loads(messages[0]) # 2 includes a header which says who should do it elif messages_len == 2: - if (self.opts.get('__role') != 'syndic' and messages[0] not in ('broadcast', self.hexid)) or \ - (self.opts.get('__role') == 'syndic' and messages[0] not in ('broadcast', 'syndic')): - log.debug('Publish received for not this minion: %s', messages[0]) + message_target = salt.utils.stringutils.to_str(messages[0]) + if (self.opts.get('__role') != 'syndic' and message_target not in ('broadcast', self.hexid)) or \ + (self.opts.get('__role') == 'syndic' and message_target not in ('broadcast', 'syndic')): + log.debug('Publish received for not this minion: %s', message_target) raise tornado.gen.Return(None) payload = self.serial.loads(messages[1]) else: @@ -916,7 +917,7 @@ class ZeroMQPubServerChannel(salt.transport.server.PubServerChannel): log.trace('Sending filtered data over publisher %s', pub_uri) # zmq filters are substring match, hash the topic # to avoid collisions - htopic = salt.utils.stringutils.to_bytes(hashlib.sha1(topic).hexdigest()) + htopic = salt.utils.stringutils.to_bytes(hashlib.sha1(salt.utils.stringutils.to_bytes(topic)).hexdigest()) pub_sock.send(htopic, flags=zmq.SNDMORE) pub_sock.send(payload) log.trace('Filtered data has been sent')