Skip to content

Commit 9db73ea

Browse files
authored
fix sniffer.sniff config (#455)
1 parent 356a845 commit 9db73ea

File tree

4 files changed

+120
-46
lines changed

4 files changed

+120
-46
lines changed

core/src/main/java/com/github/kr328/clash/core/model/ConfigurationOverride.kt

Lines changed: 28 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -179,8 +179,8 @@ data class ConfigurationOverride(
179179
@SerialName("enable")
180180
var enable: Boolean? = null,
181181

182-
@SerialName("sniffing")
183-
var sniffing: List<String>? = null,
182+
@SerialName("sniff")
183+
var sniff: Sniff = Sniff(),
184184

185185
@SerialName("force-dns-mapping")
186186
var forceDnsMapping: Boolean? = null,
@@ -197,8 +197,11 @@ data class ConfigurationOverride(
197197
@SerialName("skip-domain")
198198
var skipDomain: List<String>? = null,
199199

200-
@SerialName("port-whitelist")
201-
var portWhitelist: List<String>? = null,
200+
@SerialName("skip-src-address")
201+
var skipSrcAddress: List<String>? = null,
202+
203+
@SerialName("skip-dst-address")
204+
var skipDstAddress: List<String>? = null,
202205
)
203206

204207
@Serializable
@@ -222,6 +225,27 @@ data class ConfigurationOverride(
222225
var allowPrivateNetwork: Boolean? = null,
223226
)
224227

228+
@Serializable
229+
data class Sniff(
230+
@SerialName("HTTP")
231+
var http: ProtocolConig = ProtocolConig(),
232+
233+
@SerialName("TLS")
234+
var tls: ProtocolConig = ProtocolConig(),
235+
236+
@SerialName("QUIC")
237+
var quic: ProtocolConig = ProtocolConig(),
238+
)
239+
240+
@Serializable
241+
data class ProtocolConig(
242+
@SerialName("ports")
243+
var ports: List<String>? = null,
244+
245+
@SerialName("override-destination")
246+
var overrideDestination: Boolean? = null,
247+
)
248+
225249
override fun writeToParcel(parcel: Parcel, flags: Int) {
226250
Parcelizer.encodeToParcel(serializer(), parcel, this)
227251
}

design/src/main/java/com/github/kr328/clash/design/MetaFeatureSettingsDesign.kt

Lines changed: 52 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -137,13 +137,53 @@ class MetaFeatureSettingsDesign(
137137
}
138138

139139
editableTextList(
140-
value = configuration.sniffer::sniffing,
140+
value = configuration.sniffer.sniff.http::ports,
141141
adapter = TextAdapter.String,
142-
title = R.string.sniffing,
142+
title = R.string.sniff_http_ports,
143143
placeholder = R.string.dont_modify,
144144
configure = snifferDependencies::add,
145145
)
146146

147+
selectableList(
148+
value = configuration.sniffer.sniff.http::overrideDestination,
149+
values = booleanValues,
150+
valuesText = booleanValuesText,
151+
title = R.string.sniff_http_override_destination,
152+
configure = snifferDependencies::add,
153+
)
154+
155+
editableTextList(
156+
value = configuration.sniffer.sniff.tls::ports,
157+
adapter = TextAdapter.String,
158+
title = R.string.sniff_tls_ports,
159+
placeholder = R.string.dont_modify,
160+
configure = snifferDependencies::add,
161+
)
162+
163+
selectableList(
164+
value = configuration.sniffer.sniff.tls::overrideDestination,
165+
values = booleanValues,
166+
valuesText = booleanValuesText,
167+
title = R.string.sniff_tls_override_destination,
168+
configure = snifferDependencies::add,
169+
)
170+
171+
editableTextList(
172+
value = configuration.sniffer.sniff.quic::ports,
173+
adapter = TextAdapter.String,
174+
title = R.string.sniff_quic_ports,
175+
placeholder = R.string.dont_modify,
176+
configure = snifferDependencies::add,
177+
)
178+
179+
selectableList(
180+
value = configuration.sniffer.sniff.quic::overrideDestination,
181+
values = booleanValues,
182+
valuesText = booleanValuesText,
183+
title = R.string.sniff_quic_override_destination,
184+
configure = snifferDependencies::add,
185+
)
186+
147187
selectableList(
148188
value = configuration.sniffer::forceDnsMapping,
149189
values = booleanValues,
@@ -185,9 +225,17 @@ class MetaFeatureSettingsDesign(
185225
)
186226

187227
editableTextList(
188-
value = configuration.sniffer::portWhitelist,
228+
value = configuration.sniffer::skipSrcAddress,
229+
adapter = TextAdapter.String,
230+
title = R.string.skip_src_address,
231+
placeholder = R.string.dont_modify,
232+
configure = snifferDependencies::add,
233+
)
234+
235+
editableTextList(
236+
value = configuration.sniffer::skipDstAddress,
189237
adapter = TextAdapter.String,
190-
title = R.string.port_whitelist,
238+
title = R.string.skip_dst_address,
191239
placeholder = R.string.dont_modify,
192240
configure = snifferDependencies::add,
193241
)

design/src/main/res/values-zh/strings.xml

Lines changed: 28 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -133,9 +133,9 @@
133133
<string name="fakeip">Fake-IP 至 域名映射</string>
134134
<string name="blacklist">黑名单</string>
135135
<string name="whitelist">白名单</string>
136-
<string name="off">OFF</string>
137-
<string name="strict">Strict</string>
138-
<string name="always">Always</string>
136+
<string name="off">关闭</string>
137+
<string name="strict">严格</string>
138+
<string name="always">强制开启</string>
139139
<string name="sort">排序</string>
140140
<string name="layout">布局</string>
141141
<string name="single">单列</string>
@@ -220,40 +220,39 @@
220220
<string name="allow_ipv6">允许 Ipv6</string>
221221
<string name="allow_ipv6_summary">通过 VpnService 代理 Ipv6 流量</string>
222222
<string name="clash_meta_wiki">Clash Meta Wiki</string>
223-
<string name="meta_features">Meta Features</string>
224-
<string name="unified_delay">Unified Delay</string>
225-
<string name="geodata_mode">Geodata Mode</string>
226-
<string name="tcp_concurrent">TCP Concurrent</string>
227-
<string name="find_process_mode">Find Process Mode</string>
228-
<string name="sniffer_setting">Sniffer Setting</string>
229-
<string name="sniffer">Sniffer</string>
230-
<string name="sniffing">Sniffer Mode</string>
231-
<string name="force_domain">Force Domain</string>
232-
<string name="skip_domain">Skip Domain</string>
233-
<string name="disable_sniffer">Disable Sniffer</string>
234-
<string name="sniffer_config">Load Sniffer From Config</string>
235-
<string name="sniffer_override">Override Sniffer Config</string>
236-
<string name="geox_url_setting">GeoX Url Setting</string>
237-
<string name="geox_geoip">GeoIp Url</string>
238-
<string name="geox_mmdb">MMDB Url</string>
239-
<string name="geox_geosite">Geosite Url</string>
240-
<string name="prefer_h3">Prefer h3</string>
241-
<string name="port_whitelist">Port Whitelist</string>
242-
<string name="geox_files" >Geo Files</string>
223+
<string name="meta_features">Meta 特性</string>
224+
<string name="unified_delay">统一延迟</string>
225+
<string name="geodata_mode">Geodata 模式</string>
226+
<string name="tcp_concurrent">TCP 并发</string>
227+
<string name="find_process_mode">查找进程模式</string>
228+
<string name="sniffer_setting">嗅探设置</string>
229+
<string name="sniffer">嗅探器</string>
230+
<string name="sniff">嗅探</string>
231+
<string name="force_dns_mapping">强制 DNS 映射</string>
232+
<string name="parse_pure_ip">解析纯 IP 连接</string>
233+
<string name="override_destination">覆盖目标地址</string>
234+
<string name="force_domain">强制解析域名</string>
235+
<string name="skip_domain">跳过域名</string>
236+
<string name="skip_src_address">跳过源 IP</string>
237+
<string name="skip_dst_address">跳过目标 IP</string>
238+
<string name="geox_url_setting">GeoX 链接设置</string>
239+
<string name="geox_geoip">GeoIp 链接</string>
240+
<string name="geox_mmdb">MMDB 链接</string>
241+
<string name="geox_geosite">Geosite 链接</string>
242+
<string name="prefer_h3">H3 优先</string>
243+
<string name="geox_files" >Geo 文件</string>
243244
<string name="import_geoip_file">导入 GeoIP 数据库</string>
244-
<string name="press_to_import">Press to import...</string>
245245
<string name="import_geosite_file">导入 GeoSite 数据库</string>
246246
<string name="import_country_file">导入 Country 数据库</string>
247+
<string name="import_asn_file">导入 ASN 数据库</string>
248+
<string name="press_to_import">点击导入...</string>
247249
<string name="geofile_import_failed">导入失败</string>
248250
<string name="geofile_unknown_db_format">数据库类型错误</string>
249251
<string name="geofile_unknown_db_format_message">只支持 %1$s 格式的 Geo 数据库</string>
250252
<string name="geofile_imported">%1$s 已导入</string>
251253
<string name="toast_profile_updated_complete">更新配置 %s 成功</string>
252254
<string name="toast_profile_updated_failed">更新配置 %1$s 失败:%2$s</string>
253-
<string name="external_control_activity">External Control</string>
255+
<string name="external_control_activity">外部控制</string>
254256
<string name="external_control_started">Clash.Meta 服务已启动</string>
255257
<string name="external_control_stopped">Clash.Meta 服务已停止</string>
256-
<string name="force_dns_mapping">Force DNS Mapping</string>
257-
<string name="parse_pure_ip">Parse Pure IP</string>
258-
<string name="override_destination">Override Destination</string>
259-
</resources>
258+
</resources>

design/src/main/res/values/strings.xml

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -305,13 +305,19 @@
305305

306306
<string name="sniffer_setting">Sniffer Setting</string>
307307
<string name="sniffer">Sniffer</string>
308-
<string name="sniffing">Sniffer Mode</string>
308+
<string name="force_dns_mapping">Force DNS Mapping</string>
309+
<string name="parse_pure_ip">Parse Pure IP</string>
310+
<string name="override_destination">Override Destination</string>
309311
<string name="force_domain">Force Domain</string>
310312
<string name="skip_domain">Skip Domain</string>
311-
<string name="port_whitelist">Port Whitelist</string>
312-
<string name="disable_sniffer">Disable Sniffer</string>
313-
<string name="sniffer_config">Load Sniffer From Config</string>
314-
<string name="sniffer_override">Override Sniffer Config</string>
313+
<string name="skip_src_address">Skip Src Address</string>
314+
<string name="skip_dst_address">Skip Dst Address</string>
315+
<string name="sniff_http_ports">Sniff HTTP Ports</string>
316+
<string name="sniff_tls_ports">Sniff TLS Ports</string>
317+
<string name="sniff_quic_ports">Sniff QUIC Ports</string>
318+
<string name="sniff_http_override_destination">Sniff HTTP Override Destination</string>
319+
<string name="sniff_tls_override_destination">Sniff TLS Override Destination</string>
320+
<string name="sniff_quic_override_destination">Sniff QUIC Override Destination</string>
315321

316322
<string name="geox_url_setting">GeoX Url Setting</string>
317323
<string name="geox_geoip">GeoIp Url</string>
@@ -322,10 +328,10 @@
322328
<string name="geosite_url" translatable="false">https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/release/geosite.dat</string>
323329
<string name="geox_files" >Geo Files</string>
324330
<string name="import_geoip_file">Import GeoIP Database</string>
325-
<string name="press_to_import">Press to import...</string>
326331
<string name="import_geosite_file">Import GeoSite Database</string>
327332
<string name="import_country_file">Import Country Database</string>
328333
<string name="import_asn_file">Import ASN Database</string>
334+
<string name="press_to_import">Press to import...</string>
329335
<string name="geofile_import_failed">Import failed</string>
330336
<string name="geofile_unknown_db_format">Unknown Database format</string>
331337
<string name="geofile_unknown_db_format_message">Only %1$s are supported</string>
@@ -335,7 +341,4 @@
335341
<string name="external_control_activity">External Control</string>
336342
<string name="external_control_started">Clash.Meta service started</string>
337343
<string name="external_control_stopped">Clash.Meta service stopped</string>
338-
<string name="force_dns_mapping">Force DNS Mapping</string>
339-
<string name="parse_pure_ip">Parse Pure IP</string>
340-
<string name="override_destination">Override Destination</string>
341344
</resources>

0 commit comments

Comments
 (0)