/*
 * Copyright (c) 2024, Oracle and/or its affiliates. All rights reserved.
 * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
 */

import java.net.Socket;

public class Socks4Server extends AbstractHttpSockServer {

    public Socks4Server() {
        super(Constants.DEFAULT_PORT);
    }

    public Socks4Server(int port) {
        super(port);
    }

    @Override
    protected Runnable createClientConnectionHandler(Socket socket) {
        Socks4ConnectionHandler socks4ConnectionHandler = new Socks4ConnectionHandler(socket);

        socks4ConnectionHandler.setConnectionCheckers(getConnectionCheckers());
        socks4ConnectionHandler.setDataCheckers(getDataCheckers());
        socks4ConnectionHandler.setDelay(delay);

        return socks4ConnectionHandler;
    }

    @Override
    protected void printStartMessage() {
        System.out.println("SOCKS4 server has been started on " + getPort() + " port");
    }
}
