def sendMyStatus(self, sendfull=True):
        # Immediately send my status, and keep sending updates over time.

        # This should never be called for a bridge.
        CHECK(not self.bsm)

        # Skip this stuff for hidden nodes.
        if self.main.hide_node:
            return

        self.checkStatusLimit()

        def cb(sendfull):
            # Choose an expiration time so that the network handles
            # approximately 1 status update per second, but set bounds of
            # about 1-15 minutes

            expire = max(60.0, min(900.0, len(self.nodes)))
            expire *= random.uniform(0.9, 1.1)

            self.sendStatus_dcall = reactor.callLater(expire, cb, False)

            pkt_id = struct.pack('!I', self.mrm.getPacketNumber_status())

            if sendfull:
                packet = self.mrm.broadcastHeader('NS', self.me.ipp)
                packet.append(pkt_id)
                packet.append(struct.pack('!H', int(expire)))
                packet.extend(self.getStatus())

            else:
                packet = self.mrm.broadcastHeader('NH', self.me.ipp)
                packet.append(pkt_id)

                packet.append(struct.pack('!H', expire))
                packet.append(self.me.infohash)

            self.mrm.newMessage(''.join(packet), tries=8)

        dcall_discard(self, 'sendStatus_dcall')
        cb(sendfull)