protected void configure()

in sshd-mina/src/main/java/org/apache/sshd/mina/MinaService.java [170:243]


    protected void configure(SocketSessionConfig config) {
        Boolean boolVal = getBoolean(CoreModuleProperties.SOCKET_KEEPALIVE);
        if (boolVal != null) {
            try {
                config.setKeepAlive(boolVal);
            } catch (RuntimeIoException t) {
                handleConfigurationError(config, CoreModuleProperties.SOCKET_KEEPALIVE, boolVal, t);
            }
        }

        Integer intVal = getInteger(CoreModuleProperties.SOCKET_SNDBUF);
        if (intVal != null) {
            try {
                config.setSendBufferSize(intVal);
            } catch (RuntimeIoException t) {
                handleConfigurationError(config, CoreModuleProperties.SOCKET_SNDBUF, intVal, t);
            }
        }

        intVal = getInteger(CoreModuleProperties.SOCKET_RCVBUF);
        if (intVal != null) {
            try {
                config.setReceiveBufferSize(intVal);
            } catch (RuntimeIoException t) {
                handleConfigurationError(config, CoreModuleProperties.SOCKET_RCVBUF, intVal, t);
            }
        }

        intVal = getInteger(CoreModuleProperties.SOCKET_LINGER);
        if (intVal != null) {
            try {
                config.setSoLinger(intVal);
            } catch (RuntimeIoException t) {
                handleConfigurationError(config, CoreModuleProperties.SOCKET_LINGER, intVal, t);
            }
        }

        boolVal = getBoolean(CoreModuleProperties.TCP_NODELAY);
        if (boolVal != null) {
            try {
                config.setTcpNoDelay(boolVal);
            } catch (RuntimeIoException t) {
                handleConfigurationError(config, CoreModuleProperties.TCP_NODELAY, boolVal, t);
            }
        }

        int defaultMinReadBufferSize = config.getMinReadBufferSize();
        intVal = getInteger(CoreModuleProperties.MIN_READ_BUFFER_SIZE);
        if (intVal != null) {
            int readBufferSize = intVal.intValue();
            if (readBufferSize > defaultMinReadBufferSize) {
                readBufferSize = Math.min(readBufferSize, config.getMaxReadBufferSize());
                config.setMinReadBufferSize(readBufferSize);
                int defaultReadBufferSize = config.getReadBufferSize();
                if (defaultReadBufferSize < readBufferSize) {
                    config.setReadBufferSize(readBufferSize);
                }
            }
        }

        intVal = getInteger(CoreModuleProperties.NIO2_READ_BUFFER_SIZE);
        if (intVal != null) {
            int readBufferSize = intVal.intValue();
            if (readBufferSize >= defaultMinReadBufferSize) {
                readBufferSize = Math.max(readBufferSize, config.getMinReadBufferSize());
                readBufferSize = Math.min(readBufferSize, config.getMaxReadBufferSize());
                config.setReadBufferSize(readBufferSize);
            }
        }

        if (sessionConfig != null) {
            config.setAll(sessionConfig);
        }
    }