fix sniffer.sniff config (#455)

This commit is contained in:
ForestL 2025-02-19 18:17:56 +08:00 committed by GitHub
parent 356a845b69
commit 9db73ea07b
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 120 additions and 46 deletions

View File

@ -179,8 +179,8 @@ data class ConfigurationOverride(
@SerialName("enable")
var enable: Boolean? = null,
@SerialName("sniffing")
var sniffing: List<String>? = null,
@SerialName("sniff")
var sniff: Sniff = Sniff(),
@SerialName("force-dns-mapping")
var forceDnsMapping: Boolean? = null,
@ -197,8 +197,11 @@ data class ConfigurationOverride(
@SerialName("skip-domain")
var skipDomain: List<String>? = null,
@SerialName("port-whitelist")
var portWhitelist: List<String>? = null,
@SerialName("skip-src-address")
var skipSrcAddress: List<String>? = null,
@SerialName("skip-dst-address")
var skipDstAddress: List<String>? = null,
)
@Serializable
@ -222,6 +225,27 @@ data class ConfigurationOverride(
var allowPrivateNetwork: Boolean? = null,
)
@Serializable
data class Sniff(
@SerialName("HTTP")
var http: ProtocolConig = ProtocolConig(),
@SerialName("TLS")
var tls: ProtocolConig = ProtocolConig(),
@SerialName("QUIC")
var quic: ProtocolConig = ProtocolConig(),
)
@Serializable
data class ProtocolConig(
@SerialName("ports")
var ports: List<String>? = null,
@SerialName("override-destination")
var overrideDestination: Boolean? = null,
)
override fun writeToParcel(parcel: Parcel, flags: Int) {
Parcelizer.encodeToParcel(serializer(), parcel, this)
}

View File

@ -137,13 +137,53 @@ class MetaFeatureSettingsDesign(
}
editableTextList(
value = configuration.sniffer::sniffing,
value = configuration.sniffer.sniff.http::ports,
adapter = TextAdapter.String,
title = R.string.sniffing,
title = R.string.sniff_http_ports,
placeholder = R.string.dont_modify,
configure = snifferDependencies::add,
)
selectableList(
value = configuration.sniffer.sniff.http::overrideDestination,
values = booleanValues,
valuesText = booleanValuesText,
title = R.string.sniff_http_override_destination,
configure = snifferDependencies::add,
)
editableTextList(
value = configuration.sniffer.sniff.tls::ports,
adapter = TextAdapter.String,
title = R.string.sniff_tls_ports,
placeholder = R.string.dont_modify,
configure = snifferDependencies::add,
)
selectableList(
value = configuration.sniffer.sniff.tls::overrideDestination,
values = booleanValues,
valuesText = booleanValuesText,
title = R.string.sniff_tls_override_destination,
configure = snifferDependencies::add,
)
editableTextList(
value = configuration.sniffer.sniff.quic::ports,
adapter = TextAdapter.String,
title = R.string.sniff_quic_ports,
placeholder = R.string.dont_modify,
configure = snifferDependencies::add,
)
selectableList(
value = configuration.sniffer.sniff.quic::overrideDestination,
values = booleanValues,
valuesText = booleanValuesText,
title = R.string.sniff_quic_override_destination,
configure = snifferDependencies::add,
)
selectableList(
value = configuration.sniffer::forceDnsMapping,
values = booleanValues,
@ -185,9 +225,17 @@ class MetaFeatureSettingsDesign(
)
editableTextList(
value = configuration.sniffer::portWhitelist,
value = configuration.sniffer::skipSrcAddress,
adapter = TextAdapter.String,
title = R.string.port_whitelist,
title = R.string.skip_src_address,
placeholder = R.string.dont_modify,
configure = snifferDependencies::add,
)
editableTextList(
value = configuration.sniffer::skipDstAddress,
adapter = TextAdapter.String,
title = R.string.skip_dst_address,
placeholder = R.string.dont_modify,
configure = snifferDependencies::add,
)

View File

@ -133,9 +133,9 @@
<string name="fakeip">Fake-IP 至 域名映射</string>
<string name="blacklist">黑名单</string>
<string name="whitelist">白名单</string>
<string name="off">OFF</string>
<string name="strict">Strict</string>
<string name="always">Always</string>
<string name="off">关闭</string>
<string name="strict">严格</string>
<string name="always">强制开启</string>
<string name="sort">排序</string>
<string name="layout">布局</string>
<string name="single">单列</string>
@ -220,40 +220,39 @@
<string name="allow_ipv6">允许 Ipv6</string>
<string name="allow_ipv6_summary">通过 VpnService 代理 Ipv6 流量</string>
<string name="clash_meta_wiki">Clash Meta Wiki</string>
<string name="meta_features">Meta Features</string>
<string name="unified_delay">Unified Delay</string>
<string name="geodata_mode">Geodata Mode</string>
<string name="tcp_concurrent">TCP Concurrent</string>
<string name="find_process_mode">Find Process Mode</string>
<string name="sniffer_setting">Sniffer Setting</string>
<string name="sniffer">Sniffer</string>
<string name="sniffing">Sniffer Mode</string>
<string name="force_domain">Force Domain</string>
<string name="skip_domain">Skip Domain</string>
<string name="disable_sniffer">Disable Sniffer</string>
<string name="sniffer_config">Load Sniffer From Config</string>
<string name="sniffer_override">Override Sniffer Config</string>
<string name="geox_url_setting">GeoX Url Setting</string>
<string name="geox_geoip">GeoIp Url</string>
<string name="geox_mmdb">MMDB Url</string>
<string name="geox_geosite">Geosite Url</string>
<string name="prefer_h3">Prefer h3</string>
<string name="port_whitelist">Port Whitelist</string>
<string name="geox_files" >Geo Files</string>
<string name="meta_features">Meta 特性</string>
<string name="unified_delay">统一延迟</string>
<string name="geodata_mode">Geodata 模式</string>
<string name="tcp_concurrent">TCP 并发</string>
<string name="find_process_mode">查找进程模式</string>
<string name="sniffer_setting">嗅探设置</string>
<string name="sniffer">嗅探器</string>
<string name="sniff">嗅探</string>
<string name="force_dns_mapping">强制 DNS 映射</string>
<string name="parse_pure_ip">解析纯 IP 连接</string>
<string name="override_destination">覆盖目标地址</string>
<string name="force_domain">强制解析域名</string>
<string name="skip_domain">跳过域名</string>
<string name="skip_src_address">跳过源 IP</string>
<string name="skip_dst_address">跳过目标 IP</string>
<string name="geox_url_setting">GeoX 链接设置</string>
<string name="geox_geoip">GeoIp 链接</string>
<string name="geox_mmdb">MMDB 链接</string>
<string name="geox_geosite">Geosite 链接</string>
<string name="prefer_h3">H3 优先</string>
<string name="geox_files" >Geo 文件</string>
<string name="import_geoip_file">导入 GeoIP 数据库</string>
<string name="press_to_import">Press to import...</string>
<string name="import_geosite_file">导入 GeoSite 数据库</string>
<string name="import_country_file">导入 Country 数据库</string>
<string name="import_asn_file">导入 ASN 数据库</string>
<string name="press_to_import">点击导入...</string>
<string name="geofile_import_failed">导入失败</string>
<string name="geofile_unknown_db_format">数据库类型错误</string>
<string name="geofile_unknown_db_format_message">只支持 %1$s 格式的 Geo 数据库</string>
<string name="geofile_imported">%1$s 已导入</string>
<string name="toast_profile_updated_complete">更新配置 %s 成功</string>
<string name="toast_profile_updated_failed">更新配置 %1$s 失败:%2$s</string>
<string name="external_control_activity">External Control</string>
<string name="external_control_activity">外部控制</string>
<string name="external_control_started">Clash.Meta 服务已启动</string>
<string name="external_control_stopped">Clash.Meta 服务已停止</string>
<string name="force_dns_mapping">Force DNS Mapping</string>
<string name="parse_pure_ip">Parse Pure IP</string>
<string name="override_destination">Override Destination</string>
</resources>
</resources>

View File

@ -305,13 +305,19 @@
<string name="sniffer_setting">Sniffer Setting</string>
<string name="sniffer">Sniffer</string>
<string name="sniffing">Sniffer Mode</string>
<string name="force_dns_mapping">Force DNS Mapping</string>
<string name="parse_pure_ip">Parse Pure IP</string>
<string name="override_destination">Override Destination</string>
<string name="force_domain">Force Domain</string>
<string name="skip_domain">Skip Domain</string>
<string name="port_whitelist">Port Whitelist</string>
<string name="disable_sniffer">Disable Sniffer</string>
<string name="sniffer_config">Load Sniffer From Config</string>
<string name="sniffer_override">Override Sniffer Config</string>
<string name="skip_src_address">Skip Src Address</string>
<string name="skip_dst_address">Skip Dst Address</string>
<string name="sniff_http_ports">Sniff HTTP Ports</string>
<string name="sniff_tls_ports">Sniff TLS Ports</string>
<string name="sniff_quic_ports">Sniff QUIC Ports</string>
<string name="sniff_http_override_destination">Sniff HTTP Override Destination</string>
<string name="sniff_tls_override_destination">Sniff TLS Override Destination</string>
<string name="sniff_quic_override_destination">Sniff QUIC Override Destination</string>
<string name="geox_url_setting">GeoX Url Setting</string>
<string name="geox_geoip">GeoIp Url</string>
@ -322,10 +328,10 @@
<string name="geosite_url" translatable="false">https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/release/geosite.dat</string>
<string name="geox_files" >Geo Files</string>
<string name="import_geoip_file">Import GeoIP Database</string>
<string name="press_to_import">Press to import...</string>
<string name="import_geosite_file">Import GeoSite Database</string>
<string name="import_country_file">Import Country Database</string>
<string name="import_asn_file">Import ASN Database</string>
<string name="press_to_import">Press to import...</string>
<string name="geofile_import_failed">Import failed</string>
<string name="geofile_unknown_db_format">Unknown Database format</string>
<string name="geofile_unknown_db_format_message">Only %1$s are supported</string>
@ -335,7 +341,4 @@
<string name="external_control_activity">External Control</string>
<string name="external_control_started">Clash.Meta service started</string>
<string name="external_control_stopped">Clash.Meta service stopped</string>
<string name="force_dns_mapping">Force DNS Mapping</string>
<string name="parse_pure_ip">Parse Pure IP</string>
<string name="override_destination">Override Destination</string>
</resources>