@Override
    public void droppedClient(PyroClient client, IOException cause) {
        if (VERBOSE) {
            System.out.println("droppedClient=" + client);
            if (cause != null)
                cause.printStackTrace(System.out);
        }

        SocksAttachment attachment = client.attachment();

        if (attachment != null && attachment.target != null
                && !attachment.target.isDisconnected()) {
            attachment.target.shutdown();
            attachment.target.attach(null);
            client.attach(null);
        }
    }