Quellcode durchsuchen

Merge remote-tracking branch 'origin/stable' into v2

tags/v2.2.1
9seconds vor 1 Monat
Ursprung
Commit
dc81f7981c

+ 1
- 1
mtglib/internal/dc/telegram.go Datei anzeigen

@@ -20,7 +20,7 @@ func (t *Telegram) GetAddresses(dc int) []Addr {
20 20
 	case preferIPOnlyIPv4:
21 21
 		return t.view.getV4(dc)
22 22
 	case preferIPOnlyIPv6:
23
-		return t.view.getV4(dc)
23
+		return t.view.getV6(dc)
24 24
 	case preferIPPreferIPv4:
25 25
 		return append(t.view.getV4(dc), t.view.getV6(dc)...)
26 26
 	}

+ 9
- 1
mtglib/internal/tls/fake/server_side.go Datei anzeigen

@@ -9,6 +9,7 @@ import (
9 9
 	"io"
10 10
 	rnd "math/rand/v2"
11 11
 
12
+	"github.com/9seconds/mtg/v2/mtglib/internal/doppel"
12 13
 	"github.com/9seconds/mtg/v2/mtglib/internal/tls"
13 14
 	"golang.org/x/crypto/curve25519"
14 15
 )
@@ -125,7 +126,14 @@ func generateChangeCipherValue(buf *bytes.Buffer) {
125 126
 }
126 127
 
127 128
 func generateNoise(buf *bytes.Buffer) {
128
-	data := make([]byte, int64(1024+rnd.IntN(3092)))
129
+	data := make(
130
+		[]byte,
131
+		int64(
132
+			doppel.TLSRecordSizeStart+rnd.IntN(
133
+				doppel.TLSRecordSizeAccel-doppel.TLSRecordSizeStart,
134
+			),
135
+		),
136
+	)
129 137
 
130 138
 	if _, err := rand.Read(data[:]); err != nil {
131 139
 		panic(err)

+ 15
- 0
network/v2/proxy_network.go Datei anzeigen

@@ -3,6 +3,7 @@ package network
3 3
 import (
4 4
 	"context"
5 5
 	"fmt"
6
+	"net/http"
6 7
 	"net/url"
7 8
 
8 9
 	"github.com/9seconds/mtg/v2/essentials"
@@ -15,6 +16,10 @@ type proxyNetwork struct {
15 16
 	client proxy.ContextDialer
16 17
 }
17 18
 
19
+func (p proxyNetwork) Dial(network, address string) (essentials.Conn, error) {
20
+	return p.DialContext(context.Background(), network, address)
21
+}
22
+
18 23
 func (p proxyNetwork) DialContext(ctx context.Context, network, address string) (essentials.Conn, error) {
19 24
 	conn, err := p.client.DialContext(ctx, network, address)
20 25
 	if err != nil {
@@ -24,6 +29,16 @@ func (p proxyNetwork) DialContext(ctx context.Context, network, address string)
24 29
 	return essentials.WrapNetConn(conn), nil
25 30
 }
26 31
 
32
+func (p proxyNetwork) MakeHTTPClient(
33
+	dialFunc func(context.Context, string, string) (essentials.Conn, error),
34
+) *http.Client {
35
+	if dialFunc == nil {
36
+		dialFunc = p.DialContext
37
+	}
38
+
39
+	return p.Network.MakeHTTPClient(dialFunc)
40
+}
41
+
27 42
 func NewProxyNetwork(base mtglib.Network, proxyURL *url.URL) (*proxyNetwork, error) {
28 43
 	socks, err := proxy.FromURL(proxyURL, base.NativeDialer())
29 44
 	if err != nil {

Laden…
Abbrechen
Speichern