From 6059d63504255a1e1a0edfc1c73e396287fe8442 Mon Sep 17 00:00:00 2001 From: lionsoul2014 Date: Fri, 12 Dec 2025 14:29:09 +0800 Subject: [PATCH] build from InputStream supports --- .../lionsoul/ip2region/service/ConfigBuilder.java | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/binding/java/src/main/java/org/lionsoul/ip2region/service/ConfigBuilder.java b/binding/java/src/main/java/org/lionsoul/ip2region/service/ConfigBuilder.java index 7ffbd53..06dd6d6 100644 --- a/binding/java/src/main/java/org/lionsoul/ip2region/service/ConfigBuilder.java +++ b/binding/java/src/main/java/org/lionsoul/ip2region/service/ConfigBuilder.java @@ -73,9 +73,17 @@ public class ConfigBuilder { // you must know what you are doing. throw new InvalidConfigException("SetXdbInputStream could ONLY be used with cachePolicy = Config.BufferCache"); } else { + // 1, load the content buffer + final LongByteArray cBuffer = Searcher.loadContentFromInputStream(xdbInputStream); - // return new Config(cachePolicy, ipVersion, null, header, null, cBuffer, searchers); - return null; + // 2, verify the xdb from the buffer + Searcher.verify(Searcher.loadHeaderFromBuffer(cBuffer), cBuffer.length()); + + // 3, load the header + final Header header = Searcher.loadHeaderFromBuffer(cBuffer); + + // create the config without xdbFile and vIndex + return new Config(cachePolicy, ipVersion, null, header, null, cBuffer, searchers); } // load the header and the cache buffer