Begin talking to a new peer, if we aren't already.
    Don't accept this peer if there are already too many peers in the incoming queue
    (where "too many" means "more than the maximum neighbor set size")

    Return True if added
    Return False if not added

def atlas_peer_enqueue( peer_hostport, peer_table=None, peer_queue=None, max_neighbors=None ):
    """
    Begin talking to a new peer, if we aren't already.
    Don't accept this peer if there are already too many peers in the incoming queue
    (where "too many" means "more than the maximum neighbor set size")

    Return True if added
    Return False if not added
    """

    present = False

    with AtlasPeerTableLocked(peer_table) as ptbl:
        present = (peer_hostport in ptbl.keys())

    if present:
        # nothing to do 
        return False

    res = False
    with AtlasPeerQueueLocked(peer_queue) as pq:

        if not present:
            if max_neighbors is None:
                max_neighbors = atlas_max_neighbors()

            if len(pq) < atlas_max_new_peers(max_neighbors):
                pq.append( peer_hostport )
                res = True

    return res