mirror of
https://github.com/ScuroNeko/mtg.git
synced 2026-09-01 00:14:02 +03:00
Propagate random padding to proxy requests
This commit is contained in:
@@ -15,6 +15,7 @@ const (
|
|||||||
proxyRequestFlagsIntermediate = 0x20000000
|
proxyRequestFlagsIntermediate = 0x20000000
|
||||||
proxyRequestFlagsAbdridged = 0x40000000
|
proxyRequestFlagsAbdridged = 0x40000000
|
||||||
proxyRequestFlagsQuickAck = 0x80000000
|
proxyRequestFlagsQuickAck = 0x80000000
|
||||||
|
proxyRequestFlagsPad = 0x8000000
|
||||||
)
|
)
|
||||||
|
|
||||||
var proxyRequestFlagsEncryptedPrefix [8]byte
|
var proxyRequestFlagsEncryptedPrefix [8]byte
|
||||||
@@ -50,6 +51,9 @@ func (r proxyRequestFlags) String() string {
|
|||||||
if r&proxyRequestFlagsQuickAck != 0 {
|
if r&proxyRequestFlagsQuickAck != 0 {
|
||||||
flags = append(flags, "QUICK_ACK")
|
flags = append(flags, "QUICK_ACK")
|
||||||
}
|
}
|
||||||
|
if r&proxyRequestFlagsPad != 0 {
|
||||||
|
flags = append(flags, "PAD")
|
||||||
|
}
|
||||||
|
|
||||||
return strings.Join(flags, " | ")
|
return strings.Join(flags, " | ")
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -67,10 +67,15 @@ func (r *ProxyRequest) MakeHeader(message []byte) (*bytes.Buffer, fmt.Stringer)
|
|||||||
func NewProxyRequest(clientAddr, ownAddr *net.TCPAddr, opts *mtproto.ConnectionOpts, adTag []byte) (*ProxyRequest, error) {
|
func NewProxyRequest(clientAddr, ownAddr *net.TCPAddr, opts *mtproto.ConnectionOpts, adTag []byte) (*ProxyRequest, error) {
|
||||||
flags := proxyRequestFlagsHasAdTag | proxyRequestFlagsMagic | proxyRequestFlagsExtMode2
|
flags := proxyRequestFlagsHasAdTag | proxyRequestFlagsMagic | proxyRequestFlagsExtMode2
|
||||||
|
|
||||||
if opts.ConnectionType == mtproto.ConnectionTypeAbridged {
|
switch opts.ConnectionType {
|
||||||
|
case mtproto.ConnectionTypeAbridged:
|
||||||
flags |= proxyRequestFlagsAbdridged
|
flags |= proxyRequestFlagsAbdridged
|
||||||
} else {
|
case mtproto.ConnectionTypeIntermediate:
|
||||||
flags |= proxyRequestFlagsIntermediate
|
flags |= proxyRequestFlagsIntermediate
|
||||||
|
case mtproto.ConnectionTypeSecure:
|
||||||
|
flags |= proxyRequestFlagsIntermediate | proxyRequestFlagsPad
|
||||||
|
default:
|
||||||
|
panic("Unknown connection type")
|
||||||
}
|
}
|
||||||
|
|
||||||
request := &ProxyRequest{
|
request := &ProxyRequest{
|
||||||
|
|||||||
Reference in New Issue
Block a user