def check_cb(src_n, src_ipp, rest):

            (pktnum, expire, sesid, uptime, flags, rest
             ) = self.decodePacket('!IH4sIB+', rest)

            nick, rest = self.decodeString1(rest)
            info, rest = self.decodeString1(rest)

            persist = bool(flags & PERSIST_BIT)

            # 2011-08-21: allow 'rest' to be non-empty, in case we want to add
            #             new fields someday.
            if len(rest) > 1024:
                raise BadPacketError("Too much extra data")

            if not (5 <= expire <= 30*60):
                raise BadPacketError("Expire time out of range")

            # Make sure this isn't about me
            if self.isMyStatus(src_ipp, pktnum, sendfull=True):
                raise BadBroadcast("Impersonating me")

            if self.isOutdatedStatus(src_n, pktnum):
                raise BadBroadcast("Outdated")

            n = osm.refreshNodeStatus(
                src_ipp, pktnum, expire, sesid, uptime, persist, nick, info)

            # They had a nick, now they don't.  This indicates a problem.
            # Stop forwarding and notify the user.
            if nick and not n.nick:
                raise Reject