handle_incoming_client with callback