http3: remove dependency on quic internal packages (#5256)

* Remove http3 dependency on quic internal packages

Remove the dependency on internal/protocol from the http3 package. This
makes it possible for a forked http3 to use the mainline quic-go
package.

* Address review comments

* Fix syntax

* Use broader pattern for http3 directory

* Copy internal/testdata

* Replace perspective with bool

* clone the supported version slice

---------

Co-authored-by: Marten Seemann <martenseemann@gmail.com>
This commit is contained in:
Robin Thellend
2025-07-07 04:41:23 -07:00
committed by GitHub
parent fd32cf5c69
commit 0a9c6ea4c8
18 changed files with 240 additions and 59 deletions

28
http3/internal/testdata/cert_test.go vendored Normal file
View File

@@ -0,0 +1,28 @@
package testdata
import (
"crypto/tls"
"io"
"testing"
"github.com/stretchr/testify/require"
)
func TestCertificates(t *testing.T) {
ln, err := tls.Listen("tcp", "localhost:4433", GetTLSConfig())
require.NoError(t, err)
go func() {
conn, err := ln.Accept()
require.NoError(t, err)
defer conn.Close()
_, err = conn.Write([]byte("foobar"))
require.NoError(t, err)
}()
conn, err := tls.Dial("tcp", "localhost:4433", &tls.Config{RootCAs: GetRootCA()})
require.NoError(t, err)
data, err := io.ReadAll(conn)
require.NoError(t, err)
require.Equal(t, "foobar", string(data))
}