Unverified Commit 9bf002cd authored by Marten Seemann's avatar Marten Seemann
Browse files

reject non-QUIC listen addresses

parent 0b44affe
package libp2pquic
import (
"fmt"
"sync"
pstore "github.com/libp2p/go-libp2p-peerstore"
......@@ -33,7 +34,10 @@ func (t *QuicTransport) Dialer(laddr ma.Multiaddr, opts ...tpt.DialOpt) (tpt.Dia
// Listen starts listening on laddr
func (t *QuicTransport) Listen(laddr ma.Multiaddr) (tpt.Listener, error) {
// TODO: check if laddr is actually a QUIC address
if !t.Matches(laddr) {
return nil, fmt.Errorf("quic transport cannot listen on %q", laddr)
}
t.mutex.Lock()
defer t.mutex.Unlock()
......
......@@ -34,6 +34,13 @@ var _ = Describe("Transport", func() {
Expect(ln2).To(Equal(ln))
Expect(t.listeners).To(HaveLen(1))
})
It("errors if the address is not a QUIC address", func() {
maddr, err := ma.NewMultiaddr("/ip4/127.0.0.1/udp/1235/utp")
Expect(err).ToNot(HaveOccurred())
_, err = t.Listen(maddr)
Expect(err).To(MatchError("quic transport cannot listen on \"/ip4/127.0.0.1/udp/1235/utp\""))
})
})
It("matches", func() {
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment