diff --git a/pkg/registrars/dns-registrar/examples/client/main.go b/pkg/registrars/dns-registrar/examples/client/main.go new file mode 100644 index 00000000..3690d9a0 --- /dev/null +++ b/pkg/registrars/dns-registrar/examples/client/main.go @@ -0,0 +1,62 @@ +package main + +import ( + "bufio" + "encoding/hex" + "flag" + "fmt" + "net" + "os" + "strings" + + "github.com/pion/dtls/v2/examples/util" + "github.com/refraction-networking/conjure/pkg/registrars/dns-registrar/requester" + "github.com/refraction-networking/conjure/pkg/registrars/dns-registrar/tworeqresp" +) + +const key = "0b63baad7f2f4bb5b547c53adc0fbb179852910607935e6f4b5639fd989b1156" +const bufSize = 8192 + +func main() { + var remoteAddr = flag.String("saddr", "127.0.0.1:6666", "remote address") + var baseDomain = flag.String("domain", "test.xyz", "base domain to use") + flag.Parse() + + addr, err := net.ResolveUDPAddr("udp", *remoteAddr) + util.Check(err) + + pubKey, err := hex.DecodeString(key) + util.Check(err) + + req, err := requester.NewRequester(&requester.Config{ + TransportMethod: requester.UDP, + Target: addr.String(), + BaseDomain: *baseDomain, + Pubkey: pubKey, + }) + + util.Check(err) + + tworeq, err := tworeqresp.NewRequester(req, 80) + util.Check(err) + + reader := bufio.NewReader(os.Stdin) + + fmt.Println("type 'exit' to shutdown gracefully") + + for { + text, err := reader.ReadString('\n') + util.Check(err) + + if strings.TrimSpace(text) == "exit" { + return + } + + resp, err := tworeq.RequestAndRecv([]byte(text)) + util.Check(err) + + fmt.Printf("Got message: %s\n", string(resp)) + + } + +} diff --git a/pkg/registrars/dns-registrar/examples/server/main.go b/pkg/registrars/dns-registrar/examples/server/main.go new file mode 100644 index 00000000..85aeca58 --- /dev/null +++ b/pkg/registrars/dns-registrar/examples/server/main.go @@ -0,0 +1,42 @@ +package main + +import ( + "encoding/hex" + "flag" + "fmt" + "net" + + "github.com/pion/dtls/v2/examples/util" + "github.com/refraction-networking/conjure/pkg/registrars/dns-registrar/responder" + "github.com/refraction-networking/conjure/pkg/registrars/dns-registrar/tworeqresp" +) + +const key = "203963feed62ddda89b98857940f09866ae840f42e8c90160e411a0029b87e60" + +func main() { + var localAddr = flag.String("laddr", "[::]:6666", "source address") + var domain = flag.String("domain", "test.xyz", "domain to use") + var msg = flag.String("msg", "hey", "message to respond") + flag.Parse() + + privKey, err := hex.DecodeString(key) + util.Check(err) + + // Prepare the IP to connect to + laddr, err := net.ResolveUDPAddr("udp", *localAddr) + util.Check(err) + + responder, err := responder.NewDnsResponder(*domain, laddr.String(), privKey) + util.Check(err) + + tworesponder, err := tworeqresp.NewResponder(responder) + util.Check(err) + + fmt.Println("Listening") + + tworesponder.RecvAndRespond(func(b []byte) ([]byte, error) { + fmt.Println(string(b)) + return []byte(*msg), nil + }) + +} diff --git a/pkg/registrars/dns-registrar/tworeqresp/requester.go b/pkg/registrars/dns-registrar/tworeqresp/requester.go new file mode 100644 index 00000000..e2dd3a22 --- /dev/null +++ b/pkg/registrars/dns-registrar/tworeqresp/requester.go @@ -0,0 +1,94 @@ +package tworeqresp + +import ( + "context" + "crypto/rand" + "fmt" + "net" + + pb "github.com/refraction-networking/conjure/proto" + "google.golang.org/protobuf/proto" +) + +type dialFunc = func(ctx context.Context, network, addr string) (net.Conn, error) + +const idLen = 8 + +type onerequester interface { + RequestAndRecv(sendBytes []byte) ([]byte, error) + Close() error + SetDialer(dialer dialFunc) error +} + +type Requester struct { + parent onerequester + mtu uint +} + +func NewRequester(parent onerequester, mtu uint) (*Requester, error) { + return &Requester{parent: parent, mtu: mtu}, nil +} + +func (r *Requester) RequestAndRecv(sendBytes []byte) ([]byte, error) { + + id := [idLen]byte{} + _, err := rand.Read(id[:]) + if err != nil { + return nil, fmt.Errorf("error generating id: %v", err) + } + + parts := splitIntoChunks(sendBytes, int(r.mtu)) + + for i, partBytes := range parts { + toSend := &pb.DnsPartReq{Id: id[:], PartNum: proto.Uint32(uint32(i)), TotalParts: proto.Uint32(uint32(len(parts))), Data: partBytes} + toSendBytes, err := proto.Marshal(toSend) + if err != nil { + return nil, fmt.Errorf("error marshal part %v: %v", i, err) + } + + respBytes, err := r.parent.RequestAndRecv(toSendBytes) + if err != nil { + return nil, fmt.Errorf("error request part %v: %v", i, err) + } + + resp := &pb.DnsPartResp{} + err = proto.Unmarshal(respBytes, resp) + if err != nil { + return nil, fmt.Errorf("error unmarshal response: %v", err) + } + + if resp.GetWaiting() { + continue + } + + return resp.GetData(), nil + } + + return nil, fmt.Errorf("no response") +} + +func splitIntoChunks(data []byte, mtu int) [][]byte { + var chunks [][]byte + + for i := 0; i < len(data); i += mtu { + end := i + mtu + + if end > len(data) { + end = len(data) + } + + chunks = append(chunks, data[i:end]) + } + + return chunks +} + +// Close closes the parent transport +func (r *Requester) Close() error { + return r.parent.Close() +} + +// SetDialer sets the parent dialer +func (r *Requester) SetDialer(dialer dialFunc) error { + return r.parent.SetDialer(dialer) +} diff --git a/pkg/registrars/dns-registrar/tworeqresp/responder.go b/pkg/registrars/dns-registrar/tworeqresp/responder.go new file mode 100644 index 00000000..2655c0a8 --- /dev/null +++ b/pkg/registrars/dns-registrar/tworeqresp/responder.go @@ -0,0 +1,99 @@ +package tworeqresp + +import ( + "bytes" + "fmt" + + pb "github.com/refraction-networking/conjure/proto" + "google.golang.org/protobuf/proto" +) + +type oneresponder interface { + RecvAndRespond(getResponse func([]byte) ([]byte, error)) error + Close() error +} + +type Responder struct { + parent oneresponder + parts map[[idLen]byte][][]byte +} + +func NewResponder(parent oneresponder) (*Responder, error) { + return &Responder{ + parent: parent, + parts: make(map[[idLen]byte][][]byte), + }, nil +} + +func (r *Responder) RecvAndRespond(parentGetResponse func([]byte) ([]byte, error)) error { + getResponse := func(data []byte) ([]byte, error) { + partIn := &pb.DnsPartReq{} + err := proto.Unmarshal(data, partIn) + if err != nil { + return nil, fmt.Errorf("error umarshal part: %v", err) + } + + if len(partIn.GetId()) != idLen { + return nil, fmt.Errorf("invalid part ID") + } + + partId := (*[idLen]byte)(partIn.GetId()) + + if _, ok := r.parts[*partId]; !ok { + r.parts[*partId] = make([][]byte, partIn.GetTotalParts()) + } + + if int(partIn.GetTotalParts()) != len(r.parts[*partId]) { + return nil, fmt.Errorf("invalid total parts") + } + + if int(partIn.GetPartNum()) >= len(r.parts[*partId]) { + return nil, fmt.Errorf("part number out of bound") + } + + r.parts[*partId][partIn.GetPartNum()] = partIn.GetData() + + waiting := false + for _, part := range r.parts[*partId] { + if part == nil { + waiting = true + break + } + } + + if waiting { + resp := &pb.DnsPartResp{Waiting: proto.Bool(true)} + respBytes, err := proto.Marshal(resp) + if err != nil { + return nil, fmt.Errorf("error marshal resp: %v", err) + } + + return respBytes, nil + } + + var buffer bytes.Buffer + for _, part := range r.parts[*partId] { + buffer.Write(part) + } + res, err := parentGetResponse(buffer.Bytes()) + if err != nil { + return nil, fmt.Errorf("error from parent getResponse: %v", err) + } + + resp := &pb.DnsPartResp{Waiting: proto.Bool(false), Data: res} + + respBytes, err := proto.Marshal(resp) + if err != nil { + return nil, fmt.Errorf("error marshal resp: %v", err) + } + + return respBytes, nil + + } + return r.parent.RecvAndRespond(getResponse) +} + +// Close closes the parent transport +func (r *Responder) Close() error { + return r.parent.Close() +} diff --git a/pkg/registrars/registration/dns-registrar.go b/pkg/registrars/registration/dns-registrar.go index 58cbaacb..ed502ebd 100644 --- a/pkg/registrars/registration/dns-registrar.go +++ b/pkg/registrars/registration/dns-registrar.go @@ -10,6 +10,7 @@ import ( "github.com/pion/stun" "github.com/refraction-networking/conjure/pkg/registrars/dns-registrar/requester" + "github.com/refraction-networking/conjure/pkg/registrars/dns-registrar/tworeqresp" "github.com/refraction-networking/conjure/pkg/registrars/lib" pb "github.com/refraction-networking/conjure/proto" "github.com/refraction-networking/gotapdance/tapdance" @@ -18,7 +19,7 @@ import ( ) type DNSRegistrar struct { - req *requester.Requester + req *tworeqresp.Requester maxRetries int connectionDelay time.Duration bidirectional bool @@ -63,13 +64,15 @@ func NewDNSRegistrar(config *Config) (*DNSRegistrar, error) { return nil, fmt.Errorf("error creating requester: %v", err) } + tworeq, err := tworeqresp.NewRequester(req, 80) + ip, err := getPublicIp(config.STUNAddr) if err != nil { return nil, fmt.Errorf("failed to get public IP: %v", err) } return &DNSRegistrar{ - req: req, + req: tworeq, ip: ip, maxRetries: config.MaxRetries, bidirectional: config.Bidirectional, diff --git a/pkg/regserver/dnsregserver/dnsregserver.go b/pkg/regserver/dnsregserver/dnsregserver.go index 5745b8c0..0bd635ea 100644 --- a/pkg/regserver/dnsregserver/dnsregserver.go +++ b/pkg/regserver/dnsregserver/dnsregserver.go @@ -8,6 +8,7 @@ import ( "github.com/refraction-networking/conjure/pkg/metrics" "github.com/refraction-networking/conjure/pkg/registrars/dns-registrar/responder" + "github.com/refraction-networking/conjure/pkg/registrars/dns-registrar/tworeqresp" "github.com/refraction-networking/conjure/pkg/regserver/regprocessor" pb "github.com/refraction-networking/conjure/proto" log "github.com/sirupsen/logrus" @@ -22,7 +23,7 @@ type registrar interface { // DNSRegServer provides an interface to forward DNS registration requests. Use a dns responder to receive requests and send responses. type DNSRegServer struct { // dns responder to recieve and forward responses with - dnsResponder *responder.Responder + dnsResponder *tworeqresp.Responder processor registrar latestCCGen uint32 logger log.FieldLogger @@ -45,8 +46,10 @@ func NewDNSRegServer(domain string, udpAddr string, privkey []byte, regprocessor return nil, fmt.Errorf("failed to create DNS responder: %v", err) } + tworesponder, err := tworeqresp.NewResponder(respder) + return &DNSRegServer{ - dnsResponder: respder, + dnsResponder: tworesponder, processor: regprocessor, latestCCGen: latestClientConfGeneration, logger: logger, diff --git a/proto/signalling.pb.go b/proto/signalling.pb.go index 95441d05..d9705513 100644 --- a/proto/signalling.pb.go +++ b/proto/signalling.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.30.0 -// protoc v4.24.2 +// protoc-gen-go v1.34.2 +// protoc v5.27.1 // source: signalling.proto // TODO: We're using proto2 because it's the default on Ubuntu 16.04. @@ -2422,6 +2422,132 @@ func (x *DnsResponse) GetBidirectionalResponse() *RegistrationResponse { return nil } +type DnsPartReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id []byte `protobuf:"bytes,1,opt,name=id" json:"id,omitempty"` + PartNum *uint32 `protobuf:"varint,2,opt,name=partNum" json:"partNum,omitempty"` + TotalParts *uint32 `protobuf:"varint,3,opt,name=totalParts" json:"totalParts,omitempty"` + Data []byte `protobuf:"bytes,4,opt,name=data" json:"data,omitempty"` +} + +func (x *DnsPartReq) Reset() { + *x = DnsPartReq{} + if protoimpl.UnsafeEnabled { + mi := &file_signalling_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DnsPartReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DnsPartReq) ProtoMessage() {} + +func (x *DnsPartReq) ProtoReflect() protoreflect.Message { + mi := &file_signalling_proto_msgTypes[22] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DnsPartReq.ProtoReflect.Descriptor instead. +func (*DnsPartReq) Descriptor() ([]byte, []int) { + return file_signalling_proto_rawDescGZIP(), []int{22} +} + +func (x *DnsPartReq) GetId() []byte { + if x != nil { + return x.Id + } + return nil +} + +func (x *DnsPartReq) GetPartNum() uint32 { + if x != nil && x.PartNum != nil { + return *x.PartNum + } + return 0 +} + +func (x *DnsPartReq) GetTotalParts() uint32 { + if x != nil && x.TotalParts != nil { + return *x.TotalParts + } + return 0 +} + +func (x *DnsPartReq) GetData() []byte { + if x != nil { + return x.Data + } + return nil +} + +type DnsPartResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Waiting *bool `protobuf:"varint,1,opt,name=waiting" json:"waiting,omitempty"` + Data []byte `protobuf:"bytes,2,opt,name=data" json:"data,omitempty"` +} + +func (x *DnsPartResp) Reset() { + *x = DnsPartResp{} + if protoimpl.UnsafeEnabled { + mi := &file_signalling_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DnsPartResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DnsPartResp) ProtoMessage() {} + +func (x *DnsPartResp) ProtoReflect() protoreflect.Message { + mi := &file_signalling_proto_msgTypes[23] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DnsPartResp.ProtoReflect.Descriptor instead. +func (*DnsPartResp) Descriptor() ([]byte, []int) { + return file_signalling_proto_rawDescGZIP(), []int{23} +} + +func (x *DnsPartResp) GetWaiting() bool { + if x != nil && x.Waiting != nil { + return *x.Waiting + } + return false +} + +func (x *DnsPartResp) GetData() []byte { + if x != nil { + return x.Data + } + return nil +} + var File_signalling_proto protoreflect.FileDescriptor var file_signalling_proto_rawDesc = []byte{ @@ -2715,71 +2841,82 @@ var file_signalling_proto_rawDesc = []byte{ 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x15, 0x62, 0x69, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2a, 0x2b, 0x0a, 0x07, 0x4b, - 0x65, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x41, 0x45, 0x53, 0x5f, 0x47, 0x43, - 0x4d, 0x5f, 0x31, 0x32, 0x38, 0x10, 0x5a, 0x12, 0x0f, 0x0a, 0x0b, 0x41, 0x45, 0x53, 0x5f, 0x47, - 0x43, 0x4d, 0x5f, 0x32, 0x35, 0x36, 0x10, 0x5b, 0x2a, 0x29, 0x0a, 0x0c, 0x44, 0x6e, 0x73, 0x52, - 0x65, 0x67, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x07, 0x0a, 0x03, 0x55, 0x44, 0x50, 0x10, - 0x01, 0x12, 0x07, 0x0a, 0x03, 0x44, 0x4f, 0x54, 0x10, 0x02, 0x12, 0x07, 0x0a, 0x03, 0x44, 0x4f, - 0x48, 0x10, 0x03, 0x2a, 0xe7, 0x01, 0x0a, 0x0e, 0x43, 0x32, 0x53, 0x5f, 0x54, 0x72, 0x61, 0x6e, - 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x11, 0x0a, 0x0d, 0x43, 0x32, 0x53, 0x5f, 0x4e, 0x4f, - 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x43, 0x32, 0x53, - 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x49, 0x4e, 0x49, 0x54, 0x10, 0x01, 0x12, - 0x1b, 0x0a, 0x17, 0x43, 0x32, 0x53, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x43, - 0x4f, 0x56, 0x45, 0x52, 0x54, 0x5f, 0x49, 0x4e, 0x49, 0x54, 0x10, 0x0b, 0x12, 0x18, 0x0a, 0x14, - 0x43, 0x32, 0x53, 0x5f, 0x45, 0x58, 0x50, 0x45, 0x43, 0x54, 0x5f, 0x52, 0x45, 0x43, 0x4f, 0x4e, - 0x4e, 0x45, 0x43, 0x54, 0x10, 0x02, 0x12, 0x15, 0x0a, 0x11, 0x43, 0x32, 0x53, 0x5f, 0x53, 0x45, - 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x43, 0x4c, 0x4f, 0x53, 0x45, 0x10, 0x03, 0x12, 0x14, 0x0a, - 0x10, 0x43, 0x32, 0x53, 0x5f, 0x59, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x55, 0x50, 0x4c, 0x4f, 0x41, - 0x44, 0x10, 0x04, 0x12, 0x16, 0x0a, 0x12, 0x43, 0x32, 0x53, 0x5f, 0x41, 0x43, 0x51, 0x55, 0x49, - 0x52, 0x45, 0x5f, 0x55, 0x50, 0x4c, 0x4f, 0x41, 0x44, 0x10, 0x05, 0x12, 0x20, 0x0a, 0x1c, 0x43, - 0x32, 0x53, 0x5f, 0x45, 0x58, 0x50, 0x45, 0x43, 0x54, 0x5f, 0x55, 0x50, 0x4c, 0x4f, 0x41, 0x44, - 0x4f, 0x4e, 0x4c, 0x59, 0x5f, 0x52, 0x45, 0x43, 0x4f, 0x4e, 0x4e, 0x10, 0x06, 0x12, 0x0e, 0x0a, - 0x09, 0x43, 0x32, 0x53, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0xff, 0x01, 0x2a, 0x98, 0x01, - 0x0a, 0x0e, 0x53, 0x32, 0x43, 0x5f, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x12, 0x11, 0x0a, 0x0d, 0x53, 0x32, 0x43, 0x5f, 0x4e, 0x4f, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, - 0x45, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x53, 0x32, 0x43, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, - 0x4f, 0x4e, 0x5f, 0x49, 0x4e, 0x49, 0x54, 0x10, 0x01, 0x12, 0x1b, 0x0a, 0x17, 0x53, 0x32, 0x43, - 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x43, 0x4f, 0x56, 0x45, 0x52, 0x54, 0x5f, - 0x49, 0x4e, 0x49, 0x54, 0x10, 0x0b, 0x12, 0x19, 0x0a, 0x15, 0x53, 0x32, 0x43, 0x5f, 0x43, 0x4f, - 0x4e, 0x46, 0x49, 0x52, 0x4d, 0x5f, 0x52, 0x45, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x10, - 0x02, 0x12, 0x15, 0x0a, 0x11, 0x53, 0x32, 0x43, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, - 0x5f, 0x43, 0x4c, 0x4f, 0x53, 0x45, 0x10, 0x03, 0x12, 0x0e, 0x0a, 0x09, 0x53, 0x32, 0x43, 0x5f, - 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0xff, 0x01, 0x2a, 0xac, 0x01, 0x0a, 0x0e, 0x45, 0x72, 0x72, - 0x6f, 0x72, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x53, 0x32, 0x43, 0x12, 0x0c, 0x0a, 0x08, 0x4e, - 0x4f, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x43, 0x4f, 0x56, - 0x45, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, - 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x44, 0x10, - 0x02, 0x12, 0x13, 0x0a, 0x0f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x50, 0x52, 0x4f, 0x54, - 0x4f, 0x43, 0x4f, 0x4c, 0x10, 0x03, 0x12, 0x14, 0x0a, 0x10, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, - 0x4e, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x4e, 0x41, 0x4c, 0x10, 0x04, 0x12, 0x12, 0x0a, 0x0e, - 0x44, 0x45, 0x43, 0x4f, 0x59, 0x5f, 0x4f, 0x56, 0x45, 0x52, 0x4c, 0x4f, 0x41, 0x44, 0x10, 0x05, - 0x12, 0x11, 0x0a, 0x0d, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, - 0x4d, 0x10, 0x64, 0x12, 0x12, 0x0a, 0x0e, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x49, - 0x4d, 0x45, 0x4f, 0x55, 0x54, 0x10, 0x65, 0x2a, 0x82, 0x01, 0x0a, 0x0d, 0x54, 0x72, 0x61, 0x6e, - 0x73, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x08, 0x0a, 0x04, 0x4e, 0x75, 0x6c, - 0x6c, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x4d, 0x69, 0x6e, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, - 0x4f, 0x62, 0x66, 0x73, 0x34, 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x44, 0x54, 0x4c, 0x53, 0x10, - 0x03, 0x12, 0x0a, 0x0a, 0x06, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x10, 0x04, 0x12, 0x08, 0x0a, - 0x04, 0x75, 0x54, 0x4c, 0x53, 0x10, 0x05, 0x12, 0x0a, 0x0a, 0x06, 0x46, 0x6f, 0x72, 0x6d, 0x61, - 0x74, 0x10, 0x06, 0x12, 0x08, 0x0a, 0x04, 0x57, 0x41, 0x53, 0x4d, 0x10, 0x07, 0x12, 0x07, 0x0a, - 0x03, 0x46, 0x54, 0x45, 0x10, 0x08, 0x12, 0x08, 0x0a, 0x04, 0x51, 0x75, 0x69, 0x63, 0x10, 0x09, - 0x12, 0x0a, 0x0a, 0x06, 0x57, 0x65, 0x62, 0x72, 0x74, 0x63, 0x10, 0x63, 0x2a, 0x86, 0x01, 0x0a, - 0x12, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x6f, 0x75, - 0x72, 0x63, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, - 0x65, 0x64, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x6f, 0x72, - 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x41, 0x50, 0x49, 0x10, 0x02, 0x12, 0x13, 0x0a, 0x0f, 0x44, - 0x65, 0x74, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x65, 0x73, 0x63, 0x61, 0x6e, 0x10, 0x03, - 0x12, 0x14, 0x0a, 0x10, 0x42, 0x69, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, - 0x6c, 0x41, 0x50, 0x49, 0x10, 0x04, 0x12, 0x07, 0x0a, 0x03, 0x44, 0x4e, 0x53, 0x10, 0x05, 0x12, - 0x14, 0x0a, 0x10, 0x42, 0x69, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, - 0x44, 0x4e, 0x53, 0x10, 0x06, 0x2a, 0x40, 0x0a, 0x11, 0x53, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x6e, - 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x4e, 0x65, 0x77, 0x10, 0x01, - 0x12, 0x0a, 0x0a, 0x06, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, - 0x43, 0x6c, 0x65, 0x61, 0x72, 0x10, 0x03, 0x2a, 0x24, 0x0a, 0x07, 0x49, 0x50, 0x50, 0x72, 0x6f, - 0x74, 0x6f, 0x12, 0x07, 0x0a, 0x03, 0x55, 0x6e, 0x6b, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x54, - 0x63, 0x70, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x55, 0x64, 0x70, 0x10, 0x02, + 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x6a, 0x0a, 0x0a, 0x44, + 0x6e, 0x73, 0x50, 0x61, 0x72, 0x74, 0x52, 0x65, 0x71, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x02, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x72, + 0x74, 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x70, 0x61, 0x72, 0x74, + 0x4e, 0x75, 0x6d, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x61, 0x72, 0x74, + 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x61, + 0x72, 0x74, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x3b, 0x0a, 0x0b, 0x44, 0x6e, 0x73, 0x50, 0x61, + 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x77, 0x61, 0x69, 0x74, 0x69, 0x6e, + 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x77, 0x61, 0x69, 0x74, 0x69, 0x6e, 0x67, + 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, + 0x64, 0x61, 0x74, 0x61, 0x2a, 0x2b, 0x0a, 0x07, 0x4b, 0x65, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x0f, 0x0a, 0x0b, 0x41, 0x45, 0x53, 0x5f, 0x47, 0x43, 0x4d, 0x5f, 0x31, 0x32, 0x38, 0x10, 0x5a, + 0x12, 0x0f, 0x0a, 0x0b, 0x41, 0x45, 0x53, 0x5f, 0x47, 0x43, 0x4d, 0x5f, 0x32, 0x35, 0x36, 0x10, + 0x5b, 0x2a, 0x29, 0x0a, 0x0c, 0x44, 0x6e, 0x73, 0x52, 0x65, 0x67, 0x4d, 0x65, 0x74, 0x68, 0x6f, + 0x64, 0x12, 0x07, 0x0a, 0x03, 0x55, 0x44, 0x50, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x44, 0x4f, + 0x54, 0x10, 0x02, 0x12, 0x07, 0x0a, 0x03, 0x44, 0x4f, 0x48, 0x10, 0x03, 0x2a, 0xe7, 0x01, 0x0a, + 0x0e, 0x43, 0x32, 0x53, 0x5f, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x11, 0x0a, 0x0d, 0x43, 0x32, 0x53, 0x5f, 0x4e, 0x4f, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, + 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x43, 0x32, 0x53, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, + 0x4e, 0x5f, 0x49, 0x4e, 0x49, 0x54, 0x10, 0x01, 0x12, 0x1b, 0x0a, 0x17, 0x43, 0x32, 0x53, 0x5f, + 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x43, 0x4f, 0x56, 0x45, 0x52, 0x54, 0x5f, 0x49, + 0x4e, 0x49, 0x54, 0x10, 0x0b, 0x12, 0x18, 0x0a, 0x14, 0x43, 0x32, 0x53, 0x5f, 0x45, 0x58, 0x50, + 0x45, 0x43, 0x54, 0x5f, 0x52, 0x45, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x10, 0x02, 0x12, + 0x15, 0x0a, 0x11, 0x43, 0x32, 0x53, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x43, + 0x4c, 0x4f, 0x53, 0x45, 0x10, 0x03, 0x12, 0x14, 0x0a, 0x10, 0x43, 0x32, 0x53, 0x5f, 0x59, 0x49, + 0x45, 0x4c, 0x44, 0x5f, 0x55, 0x50, 0x4c, 0x4f, 0x41, 0x44, 0x10, 0x04, 0x12, 0x16, 0x0a, 0x12, + 0x43, 0x32, 0x53, 0x5f, 0x41, 0x43, 0x51, 0x55, 0x49, 0x52, 0x45, 0x5f, 0x55, 0x50, 0x4c, 0x4f, + 0x41, 0x44, 0x10, 0x05, 0x12, 0x20, 0x0a, 0x1c, 0x43, 0x32, 0x53, 0x5f, 0x45, 0x58, 0x50, 0x45, + 0x43, 0x54, 0x5f, 0x55, 0x50, 0x4c, 0x4f, 0x41, 0x44, 0x4f, 0x4e, 0x4c, 0x59, 0x5f, 0x52, 0x45, + 0x43, 0x4f, 0x4e, 0x4e, 0x10, 0x06, 0x12, 0x0e, 0x0a, 0x09, 0x43, 0x32, 0x53, 0x5f, 0x45, 0x52, + 0x52, 0x4f, 0x52, 0x10, 0xff, 0x01, 0x2a, 0x98, 0x01, 0x0a, 0x0e, 0x53, 0x32, 0x43, 0x5f, 0x54, + 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x11, 0x0a, 0x0d, 0x53, 0x32, 0x43, + 0x5f, 0x4e, 0x4f, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, + 0x53, 0x32, 0x43, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x49, 0x4e, 0x49, 0x54, + 0x10, 0x01, 0x12, 0x1b, 0x0a, 0x17, 0x53, 0x32, 0x43, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, + 0x4e, 0x5f, 0x43, 0x4f, 0x56, 0x45, 0x52, 0x54, 0x5f, 0x49, 0x4e, 0x49, 0x54, 0x10, 0x0b, 0x12, + 0x19, 0x0a, 0x15, 0x53, 0x32, 0x43, 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x52, 0x4d, 0x5f, 0x52, + 0x45, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x10, 0x02, 0x12, 0x15, 0x0a, 0x11, 0x53, 0x32, + 0x43, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x43, 0x4c, 0x4f, 0x53, 0x45, 0x10, + 0x03, 0x12, 0x0e, 0x0a, 0x09, 0x53, 0x32, 0x43, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0xff, + 0x01, 0x2a, 0xac, 0x01, 0x0a, 0x0e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x65, 0x61, 0x73, 0x6f, + 0x6e, 0x53, 0x32, 0x43, 0x12, 0x0c, 0x0a, 0x08, 0x4e, 0x4f, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, + 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x43, 0x4f, 0x56, 0x45, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x52, + 0x45, 0x41, 0x4d, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, + 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x44, 0x10, 0x02, 0x12, 0x13, 0x0a, 0x0f, 0x43, 0x4c, + 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x43, 0x4f, 0x4c, 0x10, 0x03, 0x12, + 0x14, 0x0a, 0x10, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, + 0x4e, 0x41, 0x4c, 0x10, 0x04, 0x12, 0x12, 0x0a, 0x0e, 0x44, 0x45, 0x43, 0x4f, 0x59, 0x5f, 0x4f, + 0x56, 0x45, 0x52, 0x4c, 0x4f, 0x41, 0x44, 0x10, 0x05, 0x12, 0x11, 0x0a, 0x0d, 0x43, 0x4c, 0x49, + 0x45, 0x4e, 0x54, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x10, 0x64, 0x12, 0x12, 0x0a, 0x0e, + 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x4f, 0x55, 0x54, 0x10, 0x65, + 0x2a, 0x82, 0x01, 0x0a, 0x0d, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x08, 0x0a, 0x04, 0x4e, 0x75, 0x6c, 0x6c, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, + 0x4d, 0x69, 0x6e, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x4f, 0x62, 0x66, 0x73, 0x34, 0x10, 0x02, + 0x12, 0x08, 0x0a, 0x04, 0x44, 0x54, 0x4c, 0x53, 0x10, 0x03, 0x12, 0x0a, 0x0a, 0x06, 0x50, 0x72, + 0x65, 0x66, 0x69, 0x78, 0x10, 0x04, 0x12, 0x08, 0x0a, 0x04, 0x75, 0x54, 0x4c, 0x53, 0x10, 0x05, + 0x12, 0x0a, 0x0a, 0x06, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x10, 0x06, 0x12, 0x08, 0x0a, 0x04, + 0x57, 0x41, 0x53, 0x4d, 0x10, 0x07, 0x12, 0x07, 0x0a, 0x03, 0x46, 0x54, 0x45, 0x10, 0x08, 0x12, + 0x08, 0x0a, 0x04, 0x51, 0x75, 0x69, 0x63, 0x10, 0x09, 0x12, 0x0a, 0x0a, 0x06, 0x57, 0x65, 0x62, + 0x72, 0x74, 0x63, 0x10, 0x63, 0x2a, 0x86, 0x01, 0x0a, 0x12, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x0f, 0x0a, 0x0b, + 0x55, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0c, 0x0a, + 0x08, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x41, + 0x50, 0x49, 0x10, 0x02, 0x12, 0x13, 0x0a, 0x0f, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x6f, 0x72, + 0x50, 0x72, 0x65, 0x73, 0x63, 0x61, 0x6e, 0x10, 0x03, 0x12, 0x14, 0x0a, 0x10, 0x42, 0x69, 0x64, + 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x41, 0x50, 0x49, 0x10, 0x04, 0x12, + 0x07, 0x0a, 0x03, 0x44, 0x4e, 0x53, 0x10, 0x05, 0x12, 0x14, 0x0a, 0x10, 0x42, 0x69, 0x64, 0x69, + 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x44, 0x4e, 0x53, 0x10, 0x06, 0x2a, 0x40, + 0x0a, 0x11, 0x53, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x10, 0x00, + 0x12, 0x07, 0x0a, 0x03, 0x4e, 0x65, 0x77, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x10, 0x03, + 0x2a, 0x24, 0x0a, 0x07, 0x49, 0x50, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x07, 0x0a, 0x03, 0x55, + 0x6e, 0x6b, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x54, 0x63, 0x70, 0x10, 0x01, 0x12, 0x07, 0x0a, + 0x03, 0x55, 0x64, 0x70, 0x10, 0x02, } var ( @@ -2795,8 +2932,8 @@ func file_signalling_proto_rawDescGZIP() []byte { } var file_signalling_proto_enumTypes = make([]protoimpl.EnumInfo, 9) -var file_signalling_proto_msgTypes = make([]protoimpl.MessageInfo, 22) -var file_signalling_proto_goTypes = []interface{}{ +var file_signalling_proto_msgTypes = make([]protoimpl.MessageInfo, 24) +var file_signalling_proto_goTypes = []any{ (KeyType)(0), // 0: proto.KeyType (DnsRegMethod)(0), // 1: proto.DnsRegMethod (C2S_Transition)(0), // 2: proto.C2S_Transition @@ -2828,7 +2965,9 @@ var file_signalling_proto_goTypes = []interface{}{ (*StationToDetector)(nil), // 28: proto.StationToDetector (*RegistrationResponse)(nil), // 29: proto.RegistrationResponse (*DnsResponse)(nil), // 30: proto.DnsResponse - (*anypb.Any)(nil), // 31: google.protobuf.Any + (*DnsPartReq)(nil), // 31: proto.DnsPartReq + (*DnsPartResp)(nil), // 32: proto.DnsPartResp + (*anypb.Any)(nil), // 33: google.protobuf.Any } var file_signalling_proto_depIdxs = []int32{ 0, // 0: proto.PubKey.type:type_name -> proto.KeyType @@ -2851,7 +2990,7 @@ var file_signalling_proto_depIdxs = []int32{ 2, // 17: proto.ClientToStation.state_transition:type_name -> proto.C2S_Transition 27, // 18: proto.ClientToStation.stats:type_name -> proto.SessionStats 5, // 19: proto.ClientToStation.transport:type_name -> proto.TransportType - 31, // 20: proto.ClientToStation.transport_params:type_name -> google.protobuf.Any + 33, // 20: proto.ClientToStation.transport_params:type_name -> google.protobuf.Any 22, // 21: proto.ClientToStation.flags:type_name -> proto.RegistrationFlags 18, // 22: proto.ClientToStation.webrtc_signal:type_name -> proto.WebRTCSignal 23, // 23: proto.C2SWrapper.registration_payload:type_name -> proto.ClientToStation @@ -2860,7 +2999,7 @@ var file_signalling_proto_depIdxs = []int32{ 7, // 26: proto.StationToDetector.operation:type_name -> proto.StationOperations 8, // 27: proto.StationToDetector.proto:type_name -> proto.IPProto 11, // 28: proto.RegistrationResponse.clientConf:type_name -> proto.ClientConf - 31, // 29: proto.RegistrationResponse.transport_params:type_name -> google.protobuf.Any + 33, // 29: proto.RegistrationResponse.transport_params:type_name -> google.protobuf.Any 29, // 30: proto.DnsResponse.bidirectional_response:type_name -> proto.RegistrationResponse 31, // [31:31] is the sub-list for method output_type 31, // [31:31] is the sub-list for method input_type @@ -2875,7 +3014,7 @@ func file_signalling_proto_init() { return } if !protoimpl.UnsafeEnabled { - file_signalling_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + file_signalling_proto_msgTypes[0].Exporter = func(v any, i int) any { switch v := v.(*PubKey); i { case 0: return &v.state @@ -2887,7 +3026,7 @@ func file_signalling_proto_init() { return nil } } - file_signalling_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + file_signalling_proto_msgTypes[1].Exporter = func(v any, i int) any { switch v := v.(*TLSDecoySpec); i { case 0: return &v.state @@ -2899,7 +3038,7 @@ func file_signalling_proto_init() { return nil } } - file_signalling_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + file_signalling_proto_msgTypes[2].Exporter = func(v any, i int) any { switch v := v.(*ClientConf); i { case 0: return &v.state @@ -2911,7 +3050,7 @@ func file_signalling_proto_init() { return nil } } - file_signalling_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + file_signalling_proto_msgTypes[3].Exporter = func(v any, i int) any { switch v := v.(*DnsRegConf); i { case 0: return &v.state @@ -2923,7 +3062,7 @@ func file_signalling_proto_init() { return nil } } - file_signalling_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + file_signalling_proto_msgTypes[4].Exporter = func(v any, i int) any { switch v := v.(*DecoyList); i { case 0: return &v.state @@ -2935,7 +3074,7 @@ func file_signalling_proto_init() { return nil } } - file_signalling_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + file_signalling_proto_msgTypes[5].Exporter = func(v any, i int) any { switch v := v.(*PhantomSubnetsList); i { case 0: return &v.state @@ -2947,7 +3086,7 @@ func file_signalling_proto_init() { return nil } } - file_signalling_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + file_signalling_proto_msgTypes[6].Exporter = func(v any, i int) any { switch v := v.(*PhantomSubnets); i { case 0: return &v.state @@ -2959,7 +3098,7 @@ func file_signalling_proto_init() { return nil } } - file_signalling_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + file_signalling_proto_msgTypes[7].Exporter = func(v any, i int) any { switch v := v.(*WebRTCICECandidate); i { case 0: return &v.state @@ -2971,7 +3110,7 @@ func file_signalling_proto_init() { return nil } } - file_signalling_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + file_signalling_proto_msgTypes[8].Exporter = func(v any, i int) any { switch v := v.(*WebRTCSDP); i { case 0: return &v.state @@ -2983,7 +3122,7 @@ func file_signalling_proto_init() { return nil } } - file_signalling_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + file_signalling_proto_msgTypes[9].Exporter = func(v any, i int) any { switch v := v.(*WebRTCSignal); i { case 0: return &v.state @@ -2995,7 +3134,7 @@ func file_signalling_proto_init() { return nil } } - file_signalling_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + file_signalling_proto_msgTypes[10].Exporter = func(v any, i int) any { switch v := v.(*Addr); i { case 0: return &v.state @@ -3007,7 +3146,7 @@ func file_signalling_proto_init() { return nil } } - file_signalling_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + file_signalling_proto_msgTypes[11].Exporter = func(v any, i int) any { switch v := v.(*DTLSTransportParams); i { case 0: return &v.state @@ -3019,7 +3158,7 @@ func file_signalling_proto_init() { return nil } } - file_signalling_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + file_signalling_proto_msgTypes[12].Exporter = func(v any, i int) any { switch v := v.(*StationToClient); i { case 0: return &v.state @@ -3031,7 +3170,7 @@ func file_signalling_proto_init() { return nil } } - file_signalling_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + file_signalling_proto_msgTypes[13].Exporter = func(v any, i int) any { switch v := v.(*RegistrationFlags); i { case 0: return &v.state @@ -3043,7 +3182,7 @@ func file_signalling_proto_init() { return nil } } - file_signalling_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + file_signalling_proto_msgTypes[14].Exporter = func(v any, i int) any { switch v := v.(*ClientToStation); i { case 0: return &v.state @@ -3055,7 +3194,7 @@ func file_signalling_proto_init() { return nil } } - file_signalling_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + file_signalling_proto_msgTypes[15].Exporter = func(v any, i int) any { switch v := v.(*PrefixTransportParams); i { case 0: return &v.state @@ -3067,7 +3206,7 @@ func file_signalling_proto_init() { return nil } } - file_signalling_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + file_signalling_proto_msgTypes[16].Exporter = func(v any, i int) any { switch v := v.(*GenericTransportParams); i { case 0: return &v.state @@ -3079,7 +3218,7 @@ func file_signalling_proto_init() { return nil } } - file_signalling_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + file_signalling_proto_msgTypes[17].Exporter = func(v any, i int) any { switch v := v.(*C2SWrapper); i { case 0: return &v.state @@ -3091,7 +3230,7 @@ func file_signalling_proto_init() { return nil } } - file_signalling_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + file_signalling_proto_msgTypes[18].Exporter = func(v any, i int) any { switch v := v.(*SessionStats); i { case 0: return &v.state @@ -3103,7 +3242,7 @@ func file_signalling_proto_init() { return nil } } - file_signalling_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + file_signalling_proto_msgTypes[19].Exporter = func(v any, i int) any { switch v := v.(*StationToDetector); i { case 0: return &v.state @@ -3115,7 +3254,7 @@ func file_signalling_proto_init() { return nil } } - file_signalling_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + file_signalling_proto_msgTypes[20].Exporter = func(v any, i int) any { switch v := v.(*RegistrationResponse); i { case 0: return &v.state @@ -3127,7 +3266,7 @@ func file_signalling_proto_init() { return nil } } - file_signalling_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + file_signalling_proto_msgTypes[21].Exporter = func(v any, i int) any { switch v := v.(*DnsResponse); i { case 0: return &v.state @@ -3139,6 +3278,30 @@ func file_signalling_proto_init() { return nil } } + file_signalling_proto_msgTypes[22].Exporter = func(v any, i int) any { + switch v := v.(*DnsPartReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_signalling_proto_msgTypes[23].Exporter = func(v any, i int) any { + switch v := v.(*DnsPartResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } } type x struct{} out := protoimpl.TypeBuilder{ @@ -3146,7 +3309,7 @@ func file_signalling_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_signalling_proto_rawDesc, NumEnums: 9, - NumMessages: 22, + NumMessages: 24, NumExtensions: 0, NumServices: 0, }, diff --git a/proto/signalling.proto b/proto/signalling.proto index 1870e0f4..3f3c62d1 100644 --- a/proto/signalling.proto +++ b/proto/signalling.proto @@ -437,3 +437,15 @@ message DnsResponse { optional bool clientconf_outdated = 2; optional RegistrationResponse bidirectional_response = 3; } + +message DnsPartReq { + optional bytes id = 1; + optional uint32 partNum = 2; + optional uint32 totalParts = 3; + optional bytes data = 4; + +} +message DnsPartResp { + optional bool waiting = 1; + optional bytes data = 2; +}