|
|
@@ -56,19 +56,21 @@ func ReadTCPSession(user *protocol.User, reader io.Reader) (*protocol.RequestHea
|
|
|
return nil, nil, newError("failed to read address type").Base(err)
|
|
|
}
|
|
|
|
|
|
- addrType := (buffer.Byte(0) & 0x0F)
|
|
|
- if (buffer.Byte(0) & 0x10) == 0x10 {
|
|
|
- request.Option.Set(RequestOptionOneTimeAuth)
|
|
|
- }
|
|
|
+ if !account.Cipher.IsAEAD() {
|
|
|
+ if (buffer.Byte(0) & 0x10) == 0x10 {
|
|
|
+ request.Option.Set(RequestOptionOneTimeAuth)
|
|
|
+ }
|
|
|
|
|
|
- if request.Option.Has(RequestOptionOneTimeAuth) && (account.OneTimeAuth == Account_Disabled || account.Cipher.IsAEAD()) {
|
|
|
- return nil, nil, newError("rejecting connection with OTA enabled, while server disables OTA")
|
|
|
- }
|
|
|
+ if request.Option.Has(RequestOptionOneTimeAuth) && account.OneTimeAuth == Account_Disabled {
|
|
|
+ return nil, nil, newError("rejecting connection with OTA enabled, while server disables OTA")
|
|
|
+ }
|
|
|
|
|
|
- if !account.Cipher.IsAEAD() && !request.Option.Has(RequestOptionOneTimeAuth) && account.OneTimeAuth == Account_Enabled {
|
|
|
- return nil, nil, newError("rejecting connection with OTA disabled, while server enables OTA")
|
|
|
+ if !request.Option.Has(RequestOptionOneTimeAuth) && account.OneTimeAuth == Account_Enabled {
|
|
|
+ return nil, nil, newError("rejecting connection with OTA disabled, while server enables OTA")
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
+ addrType := (buffer.Byte(0) & 0x0F)
|
|
|
switch addrType {
|
|
|
case AddrTypeIPv4:
|
|
|
if err := buffer.AppendSupplier(buf.ReadFullFrom(reader, 4)); err != nil {
|