Mark a zonefile as being present or absent on a peer.
    Use this method to update our knowledge of what other peers have,
    based on when we try to ask them for zonefiles (i.e. a peer can
    lie about what zonefiles it has, and if it advertizes the availability
    of a zonefile but doesn't deliver, then we need to remember not
    to ask it again).

def atlas_peer_set_zonefile_status( peer_hostport, zonefile_hash, present, zonefile_bits=None, peer_table=None, con=None, path=None ):
    """
    Mark a zonefile as being present or absent on a peer.
    Use this method to update our knowledge of what other peers have,
    based on when we try to ask them for zonefiles (i.e. a peer can
    lie about what zonefiles it has, and if it advertizes the availability
    of a zonefile but doesn't deliver, then we need to remember not
    to ask it again).
    """
    if zonefile_bits is None:
        zonefile_bits = atlasdb_get_zonefile_bits( zonefile_hash, con=con, path=path )

    with AtlasPeerTableLocked(peer_table) as ptbl:
        if ptbl.has_key(peer_hostport):
            peer_inv = atlas_peer_get_zonefile_inventory( peer_hostport, peer_table=ptbl )
            peer_inv = atlas_inventory_flip_zonefile_bits( peer_inv, zonefile_bits, present )
            atlas_peer_set_zonefile_inventory( peer_hostport, peer_inv, peer_table=ptbl )
                
    return