public void readSetting()

in src/main/java/com/twitter/http2/HttpConnectionHandler.java [408:450]


    public void readSetting(int id, int value) {
        httpSettingsFrame.setValue(id, value);
        switch (id) {
        case HttpSettingsFrame.SETTINGS_HEADER_TABLE_SIZE:
            // Ignore 'negative' values -- they are too large for java
            if (value >= 0) {
                changeEncoderHeaderTableSize = true;
                lastHeaderTableSize = value;
                if (lastHeaderTableSize < minHeaderTableSize) {
                    minHeaderTableSize = lastHeaderTableSize;
                }
            }
            break;
        case HttpSettingsFrame.SETTINGS_ENABLE_PUSH:
            if (value == 0) {
                pushEnabled = false;
            } else if (value == 1) {
                pushEnabled = true;
            } else {
                issueConnectionError(HttpErrorCode.PROTOCOL_ERROR);
            }
            break;
        case HttpSettingsFrame.SETTINGS_MAX_CONCURRENT_STREAMS:
            if (value >= 0) {
                remoteConcurrentStreams = value;
            }
            break;
        case HttpSettingsFrame.SETTINGS_INITIAL_WINDOW_SIZE:
            if (value >= 0) {
                updateInitialSendWindowSize(value);
            } else {
                issueConnectionError(HttpErrorCode.FLOW_CONTROL_ERROR);
            }
            break;
        case HttpSettingsFrame.SETTINGS_MAX_FRAME_SIZE:
            if (value != HttpCodecUtil.HTTP_MAX_LENGTH) {
                issueConnectionError(HttpErrorCode.PROTOCOL_ERROR);
            }
            break;
        default:
            // Ignore Unknown Settings
        }
    }