From 1517d45ef409717989757caccdc1f5911eac0314 Mon Sep 17 00:00:00 2001 From: problematicconsumer Date: Fri, 19 Jan 2024 22:26:23 +0330 Subject: [PATCH] Add mux --- .../config_option/data/config_option_repository.dart | 4 ++++ .../config_option/model/config_option_entity.dart | 8 ++++++++ lib/features/config_option/model/config_option_patch.dart | 4 ++++ lib/singbox/model/singbox_config_enum.dart | 6 ++++++ lib/singbox/model/singbox_config_option.dart | 4 ++++ libcore | 2 +- 6 files changed, 27 insertions(+), 1 deletion(-) diff --git a/lib/features/config_option/data/config_option_repository.dart b/lib/features/config_option/data/config_option_repository.dart index bffaa6ec..7d8f985d 100644 --- a/lib/features/config_option/data/config_option_repository.dart +++ b/lib/features/config_option/data/config_option_repository.dart @@ -113,6 +113,10 @@ class ConfigOptionRepositoryImpl enableTlsMixedSniCase: persisted.enableTlsMixedSniCase, enableTlsPadding: persisted.enableTlsPadding, tlsPaddingSize: persisted.tlsPaddingSize, + enableMux: persisted.enableMux, + muxPadding: persisted.muxPadding, + muxMaxStreams: persisted.muxMaxStreams, + muxProtocol: persisted.muxProtocol, geoipPath: geoAssetPathResolver.relativePath( geoAssets.geoip.providerName, geoAssets.geoip.fileName, diff --git a/lib/features/config_option/model/config_option_entity.dart b/lib/features/config_option/model/config_option_entity.dart index 82b69db2..e19fe3c4 100644 --- a/lib/features/config_option/model/config_option_entity.dart +++ b/lib/features/config_option/model/config_option_entity.dart @@ -53,6 +53,10 @@ class ConfigOptionEntity with _$ConfigOptionEntity { @RangeWithOptionalCeilJsonConverter() @Default(RangeWithOptionalCeil(min: 100, max: 200)) RangeWithOptionalCeil tlsPaddingSize, + @Default(false) bool enableMux, + @Default(false) bool muxPadding, + @Default(8) int muxMaxStreams, + @Default(MuxProtocol.h2mux) MuxProtocol muxProtocol, }) = _ConfigOptionEntity; static ConfigOptionEntity initial = ConfigOptionEntity( @@ -109,6 +113,10 @@ class ConfigOptionEntity with _$ConfigOptionEntity { patch.enableTlsMixedSniCase ?? enableTlsMixedSniCase, enableTlsPadding: patch.enableTlsPadding ?? enableTlsPadding, tlsPaddingSize: patch.tlsPaddingSize ?? tlsPaddingSize, + enableMux: patch.enableMux ?? enableMux, + muxPadding: patch.muxPadding ?? muxPadding, + muxMaxStreams: patch.muxMaxStreams ?? muxMaxStreams, + muxProtocol: patch.muxProtocol ?? muxProtocol, ); } diff --git a/lib/features/config_option/model/config_option_patch.dart b/lib/features/config_option/model/config_option_patch.dart index d288a759..501117a4 100644 --- a/lib/features/config_option/model/config_option_patch.dart +++ b/lib/features/config_option/model/config_option_patch.dart @@ -43,6 +43,10 @@ class ConfigOptionPatch with _$ConfigOptionPatch { bool? enableTlsMixedSniCase, bool? enableTlsPadding, @RangeWithOptionalCeilJsonConverter() RangeWithOptionalCeil? tlsPaddingSize, + bool? enableMux, + bool? muxPadding, + int? muxMaxStreams, + MuxProtocol? muxProtocol, }) = _ConfigOptionPatch; factory ConfigOptionPatch.fromJson(Map json) => diff --git a/lib/singbox/model/singbox_config_enum.dart b/lib/singbox/model/singbox_config_enum.dart index cb27ee27..5c1a966e 100644 --- a/lib/singbox/model/singbox_config_enum.dart +++ b/lib/singbox/model/singbox_config_enum.dart @@ -72,3 +72,9 @@ enum TunImplementation { system, gVisor; } + +enum MuxProtocol { + h2mux, + smux, + yamux; +} diff --git a/lib/singbox/model/singbox_config_option.dart b/lib/singbox/model/singbox_config_option.dart index d57e1ce1..3a0c66fc 100644 --- a/lib/singbox/model/singbox_config_option.dart +++ b/lib/singbox/model/singbox_config_option.dart @@ -48,6 +48,10 @@ class SingboxConfigOption with _$SingboxConfigOption { required bool enableTlsPadding, @RangeWithOptionalCeilJsonConverter() required RangeWithOptionalCeil tlsPaddingSize, + required bool enableMux, + required bool muxPadding, + required int muxMaxStreams, + required MuxProtocol muxProtocol, required String geoipPath, required String geositePath, required List rules, diff --git a/libcore b/libcore index 7a3b130e..eb2d364f 160000 --- a/libcore +++ b/libcore @@ -1 +1 @@ -Subproject commit 7a3b130ec65b2d05010ae248ef60411e8f28ca6f +Subproject commit eb2d364fcfeb7cfb4b17a666e888ab547d7ea73c