    This document is a quick overview of how to best make your Gnutella 0.6 client
    crawler compatible with the LimeWire crawler.

    Header Processing
    -----------------

    Upon a connection attempt, if you receive the header

        Crawler: majorversion.minorversion

    respond with the headers

        Leaves: ipleaf1:port, ipleaf2:port, ...
        Peers: ippeer1:port, ippeer2:port, ...

    After finishing the connection process, just close the connection.

    The majorversion.minorversion of the crawler header is currently 0.1.

    Leaves specify the ip and port of leaf nodes connected to your client if it is
    running as an ultrapeer.  Peers specify the non-leaf clients that you are
    connected to.  i.e. ultrapeers, 0.6 and 0.4 style clients.

    Example:

           Crawler                          Client
           -----------------------------------------------------------
           GNUTELLA CONNECT/0.6
           User-Agent: LimeWire (crawl)
           X-Ultrapeer: False
           Query-Routing: 0.1
           Crawler: 0.1

                                            GNUTELLA/0.6 200 OK
                                            User-Agent: BearShare
                                            Leaves: 127.0.0.1:6346,127.0.0.2:6346,127.0.0.3:6346
                                            Peers: 127.0.0.4:6346,127.0.0.5:6346,127.0.0.6:6346

           GNUTELLA/0.6 200 OK

           Disconnect                       Disconnect

    This is the preferred method of delivering leaves and peers to the LimeWire
    crawler.

    The LimeWire crawler will currently wait 40 seconds before disconnecting.  In
    fact, it always attempts to employ the following backup algorithm.

    Traditional Crawler Pings
    -------------------------
    In backup to the pure header only algorithm, the LimeWire crawler will
    establish the connection as above and then send a crawler ping with
    hop=0,TTL=2 and read your pong responses.  After sending the crawler ping,
    it also sends a network ping with hop=1, ttl=6 in an attempt to discover
    more hosts.  All pongs are processed.  Note that they should not be
    "Big" pongs with GGEP extensions.