def check_cb(src_n, src_ipp, rest):

            (pktnum, nhash, rest
             ) = self.decodePacket('!I4s+', rest)

            topic, rest = self.decodeString1(rest)
            if rest:
                raise BadPacketError("Extra data")

            if src_ipp == osm.me.ipp:
                # Possibly a spoofed topic from me
                if nhash == osm.me.nickHash():
                    dch = self.main.getOnlineDCH()
                    if dch:
                        dch.pushStatus(
                            "*** Topic spoofing detected: %s" % topic)
                raise BadBroadcast("Spoofed topic")

            if not osm.syncd:
                # Not syncd, forward blindly
                return None

            if src_n and nhash == src_n.nickHash():
                osm.tm.gotTopic(src_n, topic)

            else:
                raise Reject