mieru: add mtu and handshake_mode options

This commit is contained in:
Shtorm
2026-09-04 01:24:10 +03:00
parent b0ec582349
commit eac79f2080
9 changed files with 60 additions and 8 deletions
+10 -6
View File
@@ -309,13 +309,17 @@ func buildMieruServerConfig(_ context.Context, options option.MieruInboundOption
UserHintIsMandatory: proto.Bool(true),
}
}
config := &mierupb.ServerConfig{
PortBindings: portBindings,
Users: users,
TrafficPattern: trafficPattern,
AdvancedSettings: advancedSettings,
}
if options.MTU != 0 {
config.Mtu = proto.Int32(int32(options.MTU))
}
return &mieruserver.ServerConfig{
Config: &mierupb.ServerConfig{
PortBindings: portBindings,
Users: users,
TrafficPattern: trafficPattern,
AdvancedSettings: advancedSettings,
},
Config: config,
}, userNames, nil
}
+11
View File
@@ -235,6 +235,12 @@ func buildMieruClientConfig(options option.MieruOutboundOptions, dialer mieruDia
Level: mierupb.MultiplexingLevel(multiplexing).Enum(),
}
}
if options.MTU != 0 {
config.Profile.Mtu = proto.Int32(int32(options.MTU))
}
if handshakeMode, ok := mierupb.HandshakeMode_value[options.HandshakeMode]; ok {
config.Profile.HandshakeMode = mierupb.HandshakeMode(handshakeMode).Enum()
}
if options.TrafficPattern != "" {
trafficPattern, _ := mierutp.Decode(options.TrafficPattern)
config.Profile.TrafficPattern = trafficPattern
@@ -278,6 +284,11 @@ func validateMieruOptions(options option.MieruOutboundOptions) error {
return fmt.Errorf("invalid multiplexing level: %s", options.Multiplexing)
}
}
if options.HandshakeMode != "" {
if _, ok := mierupb.HandshakeMode_value[options.HandshakeMode]; !ok {
return fmt.Errorf("invalid handshake mode: %s", options.HandshakeMode)
}
}
if options.TrafficPattern != "" {
trafficPattern, err := mierutp.Decode(options.TrafficPattern)
if err != nil {