if (W32WinInet.isAvailable() && _primaryProxy) W32WinInet.revertProxy();
    public void run() {        _stop = false;        _stopped = false;        Socket sock;        ConnectionHandler ch;        Thread thread;        if (_serversocket == null || _serversocket.isClosed()) {            try {                listen();            } catch (IOException ioe) {                _logger.severe("Can't listen at " + getKey() + ": " + ioe);                _stopped = true;                return;            }        }        while (! _stop) {            try {                sock = _serversocket.accept();                InetAddress address = sock.getInetAddress();                ch = new ConnectionHandler(_proxy, sock, _base, _simulator, _usePlugins);                thread = new Thread(ch, Thread.currentThread().getName()+"-"+Integer.toString(_count++));                thread.setDaemon(true);                thread.start();            } catch (IOException e) {                if (!e.getMessage().equals("Accept timed out")) {                    System.err.println("I/O error while waiting for a connection : " + e.getMessage());                }            }        }        _stopped = true;        try {            _serversocket.close();        } catch (IOException ioe) {            System.err.println("Error closing socket : " + ioe);        }        _logger.info("Not listening on " + getKey());    }