def check_segment(self, connection, segment, segments, missing):
        if self.has_missing_segment(segment):
            # We already know we don't have this segment, so send it to the
            # next server
            self.log(log.info, "Segment '%s' already marked as missing, passing off to next server" % segment[1])
            self.try_next_server(segment, missing)
            return

        f, msgid, bytes = segment

        # Check for the article on the server
        try:
            # Found the segment
            connection.stat(msgid)

            if self.conf.get("backup"):
                self.log(log.info, "Found segment '%s' on backup server" % segment[1])

        except nntplib.NNTPTemporaryError, e:
            # Error code 430 is "No such article"
            error = nntp.get_error_code(e)
            if error == '430':
                # Found missing segment.  Mark it as missing from this server
                # and pass it to the highest priority server, where it'll then
                # trickle its way down through all the servers
                self.add_missing_segment(segment)
                self._servers[0].segments.put(segment)
                return

            elif error == "400":
                # Code 400 means the connection is closed, usually do to a timeout
                raise ConnectionClosedException("Connection closed - idle timeout?")

            else:
                # Some other error, put the segment back in the
                # queue to be checked again
                log.error("Error: %s" % e)
                segments.put(segment)
                return

        except Exception, e:
            log.error("Unknown error: %s" % e)
            return
Check to see if this server has the requested segment.
dataset/ETHPy150Open wnielson/nzbverify/nzbverify/server.py/Server.check_segment