static void toJson(Http2Settings obj, java.util.Map<String, Object> json) { json.put("headerTableSize", obj.getHeaderTableSize()); json.put("initialWindowSize", obj.getInitialWindowSize()); json.put("maxConcurrentStreams", obj.getMaxConcurrentStreams()); json.put("maxFrameSize", obj.getMaxFrameSize()); json.put("maxHeaderListSize", obj.getMaxHeaderListSize()); json.put("pushEnabled", obj.isPushEnabled()); } }
public static void fromVertxInitialSettings(boolean server, io.vertx.core.http.Http2Settings vertxSettings, Http2Settings nettySettings) { if (vertxSettings != null) { if (!server && vertxSettings.isPushEnabled() != DEFAULT_ENABLE_PUSH) { nettySettings.pushEnabled(vertxSettings.isPushEnabled()); } if (vertxSettings.getHeaderTableSize() != DEFAULT_HEADER_TABLE_SIZE) { nettySettings.put('\u0001', (Long)vertxSettings.getHeaderTableSize()); } if (vertxSettings.getInitialWindowSize() != DEFAULT_INITIAL_WINDOW_SIZE) { nettySettings.initialWindowSize(vertxSettings.getInitialWindowSize()); } if (vertxSettings.getMaxConcurrentStreams() != DEFAULT_MAX_CONCURRENT_STREAMS) { nettySettings.maxConcurrentStreams(vertxSettings.getMaxConcurrentStreams()); } if (vertxSettings.getMaxFrameSize() != DEFAULT_MAX_FRAME_SIZE) { nettySettings.maxFrameSize(vertxSettings.getMaxFrameSize()); } if (vertxSettings.getMaxHeaderListSize() != DEFAULT_MAX_HEADER_LIST_SIZE) { nettySettings.maxHeaderListSize(vertxSettings.getMaxHeaderListSize()); } Map<Integer, Long> extraSettings = vertxSettings.getExtraSettings(); if (extraSettings != null) { extraSettings.forEach((code, setting) -> { nettySettings.put((char)(int)code, setting); }); } } }
public static Http2Settings fromVertxSettings(io.vertx.core.http.Http2Settings settings) { Http2Settings converted = new Http2Settings(); converted.pushEnabled(settings.isPushEnabled()); converted.maxFrameSize(settings.getMaxFrameSize()); converted.initialWindowSize(settings.getInitialWindowSize()); converted.headerTableSize(settings.getHeaderTableSize()); converted.maxConcurrentStreams(settings.getMaxConcurrentStreams()); converted.maxHeaderListSize(settings.getMaxHeaderListSize()); if (settings.getExtraSettings() != null) { settings.getExtraSettings().forEach((key, value) -> { converted.put((char)(int)key, value); }); } return converted; }
.put("headerTableSize", initialSettings.getHeaderTableSize()) .put("maxHeaderListSize", initialSettings.getMaxHeaderListSize()) .put("maxConcurrentStreams", initialSettings.getMaxConcurrentStreams()) .put("initialWindowSize", initialSettings.getInitialWindowSize()) .put("maxFrameSize", initialSettings.getMaxFrameSize()))
.put("headerTableSize", initialSettings.getHeaderTableSize()) .put("maxHeaderListSize", initialSettings.getMaxHeaderListSize()) .put("maxConcurrentStreams", initialSettings.getMaxConcurrentStreams()) .put("initialWindowSize", initialSettings.getInitialWindowSize()) .put("maxFrameSize", initialSettings.getMaxFrameSize()))
client.get(DEFAULT_HTTPS_PORT, DEFAULT_HTTPS_HOST, "/somepath", resp -> { }).connectionHandler(conn -> { assertEquals(max == null ? 0xFFFFFFFFL : max, conn.remoteSettings().getMaxConcurrentStreams()); latch.countDown(); }).exceptionHandler(err -> {
@Test public void testInitialMaxConcurrentStreamZero() throws Exception { server.close(); server = vertx.createHttpServer(createBaseServerOptions().setInitialSettings(new Http2Settings().setMaxConcurrentStreams(0))); server.requestHandler(req -> { req.response().end(); }); server.connectionHandler(conn -> { vertx.setTimer(500, id -> { conn.updateSettings(new Http2Settings().setMaxConcurrentStreams(10)); }); }); startServer(); client.get(DEFAULT_HTTP_PORT, DEFAULT_HTTP_HOST, DEFAULT_TEST_URI, resp -> { testComplete(); }).connectionHandler(conn -> { assertEquals(10, conn.remoteSettings().getMaxConcurrentStreams()); }).setTimeout(10000).exceptionHandler(this::fail).end(); await(); }
assertEquals(expectedSettings.getMaxFrameSize(), settings.getMaxFrameSize()); assertEquals(expectedSettings.getInitialWindowSize(), settings.getInitialWindowSize()); assertEquals(expectedSettings.getMaxConcurrentStreams(), settings.getMaxConcurrentStreams()); assertEquals(expectedSettings.getHeaderTableSize(), settings.getHeaderTableSize()); assertEquals(expectedSettings.get('\u0007'), settings.get(7));
long concurrency = conn.remoteSettings().getMaxConcurrentStreams(); if (http2MaxConcurrency > 0) { concurrency = Math.min(concurrency, http2MaxConcurrency);
assertEquals(Http2Settings.DEFAULT_MAX_CONCURRENT_STREAMS, settings.getMaxConcurrentStreams()); assertEquals(Http2Settings.DEFAULT_INITIAL_WINDOW_SIZE, settings.getInitialWindowSize()); assertEquals(Http2Settings.DEFAULT_MAX_FRAME_SIZE, settings.getMaxFrameSize()); assertSame(settings, settings.setMaxHeaderListSize(update.getMaxHeaderListSize())); assertEquals(settings.getMaxHeaderListSize(), update.getMaxHeaderListSize()); assertSame(settings, settings.setMaxConcurrentStreams(update.getMaxConcurrentStreams())); assertEquals(settings.getMaxConcurrentStreams(), update.getMaxConcurrentStreams()); assertSame(settings, settings.setInitialWindowSize(update.getInitialWindowSize())); assertEquals(settings.getInitialWindowSize(), update.getInitialWindowSize()); assertEquals(settings.isPushEnabled(), update.isPushEnabled()); assertEquals(settings.getMaxHeaderListSize(), update.getMaxHeaderListSize()); assertEquals(settings.getMaxConcurrentStreams(), update.getMaxConcurrentStreams()); assertEquals(settings.getInitialWindowSize(), update.getInitialWindowSize()); assertEquals(settings.getMaxFrameSize(), update.getMaxFrameSize());
static void toJson(Http2Settings obj, java.util.Map<String, Object> json) { json.put("headerTableSize", obj.getHeaderTableSize()); json.put("initialWindowSize", obj.getInitialWindowSize()); json.put("maxConcurrentStreams", obj.getMaxConcurrentStreams()); json.put("maxFrameSize", obj.getMaxFrameSize()); json.put("maxHeaderListSize", obj.getMaxHeaderListSize()); json.put("pushEnabled", obj.isPushEnabled()); } }
public static void fromVertxInitialSettings(boolean server, io.vertx.core.http.Http2Settings vertxSettings, Http2Settings nettySettings) { if (vertxSettings != null) { if (!server && vertxSettings.isPushEnabled() != DEFAULT_ENABLE_PUSH) { nettySettings.pushEnabled(vertxSettings.isPushEnabled()); } if (vertxSettings.getHeaderTableSize() != DEFAULT_HEADER_TABLE_SIZE) { nettySettings.put('\u0001', (Long)vertxSettings.getHeaderTableSize()); } if (vertxSettings.getInitialWindowSize() != DEFAULT_INITIAL_WINDOW_SIZE) { nettySettings.initialWindowSize(vertxSettings.getInitialWindowSize()); } if (vertxSettings.getMaxConcurrentStreams() != DEFAULT_MAX_CONCURRENT_STREAMS) { nettySettings.maxConcurrentStreams(vertxSettings.getMaxConcurrentStreams()); } if (vertxSettings.getMaxFrameSize() != DEFAULT_MAX_FRAME_SIZE) { nettySettings.maxFrameSize(vertxSettings.getMaxFrameSize()); } if (vertxSettings.getMaxHeaderListSize() != DEFAULT_MAX_HEADER_LIST_SIZE) { nettySettings.maxHeaderListSize(vertxSettings.getMaxHeaderListSize()); } Map<Integer, Long> extraSettings = vertxSettings.getExtraSettings(); if (extraSettings != null) { extraSettings.forEach((code, setting) -> { nettySettings.put((char)(int)code, setting); }); } } }
public static Http2Settings fromVertxSettings(io.vertx.core.http.Http2Settings settings) { Http2Settings converted = new Http2Settings(); converted.pushEnabled(settings.isPushEnabled()); converted.maxFrameSize(settings.getMaxFrameSize()); converted.initialWindowSize(settings.getInitialWindowSize()); converted.headerTableSize(settings.getHeaderTableSize()); converted.maxConcurrentStreams(settings.getMaxConcurrentStreams()); converted.maxHeaderListSize(settings.getMaxHeaderListSize()); if (settings.getExtraSettings() != null) { settings.getExtraSettings().forEach((key, value) -> { converted.put((char)(int)key, value); }); } return converted; }
.put("headerTableSize", initialSettings.getHeaderTableSize()) .put("maxHeaderListSize", initialSettings.getMaxHeaderListSize()) .put("maxConcurrentStreams", initialSettings.getMaxConcurrentStreams()) .put("initialWindowSize", initialSettings.getInitialWindowSize()) .put("maxFrameSize", initialSettings.getMaxFrameSize()))
client.get(DEFAULT_HTTPS_PORT, DEFAULT_HTTPS_HOST, "/somepath", resp -> { }).connectionHandler(conn -> { assertEquals(max == null ? 0xFFFFFFFFL : max, conn.remoteSettings().getMaxConcurrentStreams()); latch.countDown(); }).exceptionHandler(err -> {
.put("headerTableSize", initialSettings.getHeaderTableSize()) .put("maxHeaderListSize", initialSettings.getMaxHeaderListSize()) .put("maxConcurrentStreams", initialSettings.getMaxConcurrentStreams()) .put("initialWindowSize", initialSettings.getInitialWindowSize()) .put("maxFrameSize", initialSettings.getMaxFrameSize()))
@Test public void testInitialMaxConcurrentStreamZero() throws Exception { server.close(); server = vertx.createHttpServer(createBaseServerOptions().setInitialSettings(new Http2Settings().setMaxConcurrentStreams(0))); server.requestHandler(req -> { req.response().end(); }); server.connectionHandler(conn -> { vertx.setTimer(500, id -> { conn.updateSettings(new Http2Settings().setMaxConcurrentStreams(10)); }); }); startServer(); client.get(DEFAULT_HTTP_PORT, DEFAULT_HTTP_HOST, DEFAULT_TEST_URI, resp -> { testComplete(); }).connectionHandler(conn -> { assertEquals(10, conn.remoteSettings().getMaxConcurrentStreams()); }).setTimeout(10000).exceptionHandler(this::fail).end(); await(); }
assertEquals(expectedSettings.getMaxFrameSize(), settings.getMaxFrameSize()); assertEquals(expectedSettings.getInitialWindowSize(), settings.getInitialWindowSize()); assertEquals(expectedSettings.getMaxConcurrentStreams(), settings.getMaxConcurrentStreams()); assertEquals(expectedSettings.getHeaderTableSize(), settings.getHeaderTableSize()); assertEquals(expectedSettings.get('\u0007'), settings.get(7));
long concurrency = conn.remoteSettings().getMaxConcurrentStreams(); if (http2MaxConcurrency > 0) { concurrency = Math.min(concurrency, http2MaxConcurrency);
assertEquals(Http2Settings.DEFAULT_MAX_CONCURRENT_STREAMS, settings.getMaxConcurrentStreams()); assertEquals(Http2Settings.DEFAULT_INITIAL_WINDOW_SIZE, settings.getInitialWindowSize()); assertEquals(Http2Settings.DEFAULT_MAX_FRAME_SIZE, settings.getMaxFrameSize()); assertSame(settings, settings.setMaxHeaderListSize(update.getMaxHeaderListSize())); assertEquals(settings.getMaxHeaderListSize(), update.getMaxHeaderListSize()); assertSame(settings, settings.setMaxConcurrentStreams(update.getMaxConcurrentStreams())); assertEquals(settings.getMaxConcurrentStreams(), update.getMaxConcurrentStreams()); assertSame(settings, settings.setInitialWindowSize(update.getInitialWindowSize())); assertEquals(settings.getInitialWindowSize(), update.getInitialWindowSize()); assertEquals(settings.isPushEnabled(), update.isPushEnabled()); assertEquals(settings.getMaxHeaderListSize(), update.getMaxHeaderListSize()); assertEquals(settings.getMaxConcurrentStreams(), update.getMaxConcurrentStreams()); assertEquals(settings.getInitialWindowSize(), update.getInitialWindowSize()); assertEquals(settings.getMaxFrameSize(), update.getMaxFrameSize());