package org.torproject.jtor.control; import java.net.InetAddress; import org.torproject.jtor.TorConfig; import org.torproject.jtor.control.auth.ControlAuthenticator; import org.torproject.jtor.directory.Directory; import org.torproject.jtor.logging.LogManager; import org.torproject.jtor.logging.Logger; /** * * @author Merlijn Hofstra */ public abstract class ControlServer extends Thread { protected InetAddress host; protected TorConfig tc; private final Directory directory; protected Logger logger; protected boolean running = false; public abstract void startServer(); public abstract void stopServer(); public abstract void disconnectHandler(ControlConnectionHandler cch); public abstract String getProtocol(); public ControlServer(Directory directory, TorConfig tc, LogManager logManager) { this.directory = directory; this.tc = tc; this.logger = logManager.getLogger("controller"); if (tc.isCookieAuthentication()) { ControlAuthenticator.writeCookie(tc); } } public void setInetAddress(InetAddress host) { this.host = host; } public boolean isRunning() { return running; } public TorConfig getTorConfig() { return tc; } public Logger getLogger() { return logger; } public Directory getDirectory() { return directory; } }