mirror of
				https://github.com/coredns/coredns.git
				synced 2025-10-31 02:03:20 -04:00 
			
		
		
		
	* core: add listening for other protocols
Allow CoreDNS to listen for TLS request coming over port 853. This can
be enabled with `tls://` in the config file.
Implement listening for grps:// as well.
a Corefile like:
~~~
. tls://.:1853 {
    whoami
    tls
}
~~~
Means we listen on 1853 for tls requests, the `tls` config item allows
configuration for TLS parameters. We *might* be tempted to use Caddy's
Let's Encrypt implementation here.
* Refactor coredns/grpc into CoreDNS
This makes gRPC a first class citizen in CoreDNS. Add defines as being
just another server.
* some cleanups
* unexport the servers
* Move protobuf dir
* Hook up TLS properly
* Fix test
* listen for TLS as well. README updates
* disable test, fix package
* fix test
* Fix tests
* Fix remaining test
* Some tests
* Make the test work
* Add grpc test from #580
* fix crash
* Fix tests
* Close conn
* README cleanups
* README
* link RFC
		
	
		
			
				
	
	
		
			141 lines
		
	
	
		
			4.2 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			141 lines
		
	
	
		
			4.2 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| // Code generated by protoc-gen-go.
 | |
| // source: dns.proto
 | |
| // DO NOT EDIT!
 | |
| 
 | |
| /*
 | |
| Package pb is a generated protocol buffer package.
 | |
| 
 | |
| It is generated from these files:
 | |
| 	dns.proto
 | |
| 
 | |
| It has these top-level messages:
 | |
| 	DnsPacket
 | |
| */
 | |
| package pb
 | |
| 
 | |
| import proto "github.com/golang/protobuf/proto"
 | |
| import fmt "fmt"
 | |
| import math "math"
 | |
| 
 | |
| import (
 | |
| 	context "golang.org/x/net/context"
 | |
| 	grpc "google.golang.org/grpc"
 | |
| )
 | |
| 
 | |
| // Reference imports to suppress errors if they are not otherwise used.
 | |
| var _ = proto.Marshal
 | |
| var _ = fmt.Errorf
 | |
| var _ = math.Inf
 | |
| 
 | |
| // This is a compile-time assertion to ensure that this generated file
 | |
| // is compatible with the proto package it is being compiled against.
 | |
| // A compilation error at this line likely means your copy of the
 | |
| // proto package needs to be updated.
 | |
| const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
 | |
| 
 | |
| type DnsPacket struct {
 | |
| 	Msg []byte `protobuf:"bytes,1,opt,name=msg,proto3" json:"msg,omitempty"`
 | |
| }
 | |
| 
 | |
| func (m *DnsPacket) Reset()                    { *m = DnsPacket{} }
 | |
| func (m *DnsPacket) String() string            { return proto.CompactTextString(m) }
 | |
| func (*DnsPacket) ProtoMessage()               {}
 | |
| func (*DnsPacket) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{0} }
 | |
| 
 | |
| func (m *DnsPacket) GetMsg() []byte {
 | |
| 	if m != nil {
 | |
| 		return m.Msg
 | |
| 	}
 | |
| 	return nil
 | |
| }
 | |
| 
 | |
| func init() {
 | |
| 	proto.RegisterType((*DnsPacket)(nil), "coredns.dns.DnsPacket")
 | |
| }
 | |
| 
 | |
| // Reference imports to suppress errors if they are not otherwise used.
 | |
| var _ context.Context
 | |
| var _ grpc.ClientConn
 | |
| 
 | |
| // This is a compile-time assertion to ensure that this generated file
 | |
| // is compatible with the grpc package it is being compiled against.
 | |
| const _ = grpc.SupportPackageIsVersion4
 | |
| 
 | |
| // Client API for DnsService service
 | |
| 
 | |
| type DnsServiceClient interface {
 | |
| 	Query(ctx context.Context, in *DnsPacket, opts ...grpc.CallOption) (*DnsPacket, error)
 | |
| }
 | |
| 
 | |
| type dnsServiceClient struct {
 | |
| 	cc *grpc.ClientConn
 | |
| }
 | |
| 
 | |
| func NewDnsServiceClient(cc *grpc.ClientConn) DnsServiceClient {
 | |
| 	return &dnsServiceClient{cc}
 | |
| }
 | |
| 
 | |
| func (c *dnsServiceClient) Query(ctx context.Context, in *DnsPacket, opts ...grpc.CallOption) (*DnsPacket, error) {
 | |
| 	out := new(DnsPacket)
 | |
| 	err := grpc.Invoke(ctx, "/coredns.dns.DnsService/Query", in, out, c.cc, opts...)
 | |
| 	if err != nil {
 | |
| 		return nil, err
 | |
| 	}
 | |
| 	return out, nil
 | |
| }
 | |
| 
 | |
| // Server API for DnsService service
 | |
| 
 | |
| type DnsServiceServer interface {
 | |
| 	Query(context.Context, *DnsPacket) (*DnsPacket, error)
 | |
| }
 | |
| 
 | |
| func RegisterDnsServiceServer(s *grpc.Server, srv DnsServiceServer) {
 | |
| 	s.RegisterService(&_DnsService_serviceDesc, srv)
 | |
| }
 | |
| 
 | |
| func _DnsService_Query_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
 | |
| 	in := new(DnsPacket)
 | |
| 	if err := dec(in); err != nil {
 | |
| 		return nil, err
 | |
| 	}
 | |
| 	if interceptor == nil {
 | |
| 		return srv.(DnsServiceServer).Query(ctx, in)
 | |
| 	}
 | |
| 	info := &grpc.UnaryServerInfo{
 | |
| 		Server:     srv,
 | |
| 		FullMethod: "/coredns.dns.DnsService/Query",
 | |
| 	}
 | |
| 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
 | |
| 		return srv.(DnsServiceServer).Query(ctx, req.(*DnsPacket))
 | |
| 	}
 | |
| 	return interceptor(ctx, in, info, handler)
 | |
| }
 | |
| 
 | |
| var _DnsService_serviceDesc = grpc.ServiceDesc{
 | |
| 	ServiceName: "coredns.dns.DnsService",
 | |
| 	HandlerType: (*DnsServiceServer)(nil),
 | |
| 	Methods: []grpc.MethodDesc{
 | |
| 		{
 | |
| 			MethodName: "Query",
 | |
| 			Handler:    _DnsService_Query_Handler,
 | |
| 		},
 | |
| 	},
 | |
| 	Streams:  []grpc.StreamDesc{},
 | |
| 	Metadata: "dns.proto",
 | |
| }
 | |
| 
 | |
| func init() { proto.RegisterFile("dns.proto", fileDescriptor0) }
 | |
| 
 | |
| var fileDescriptor0 = []byte{
 | |
| 	// 120 bytes of a gzipped FileDescriptorProto
 | |
| 	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xe2, 0xe2, 0x4c, 0xc9, 0x2b, 0xd6,
 | |
| 	0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0xe2, 0x4e, 0xce, 0x2f, 0x4a, 0x05, 0x71, 0x53, 0xf2, 0x8a,
 | |
| 	0x95, 0x64, 0xb9, 0x38, 0x5d, 0xf2, 0x8a, 0x03, 0x12, 0x93, 0xb3, 0x53, 0x4b, 0x84, 0x04, 0xb8,
 | |
| 	0x98, 0x73, 0x8b, 0xd3, 0x25, 0x18, 0x15, 0x18, 0x35, 0x78, 0x82, 0x40, 0x4c, 0x23, 0x57, 0x2e,
 | |
| 	0x2e, 0x97, 0xbc, 0xe2, 0xe0, 0xd4, 0xa2, 0xb2, 0xcc, 0xe4, 0x54, 0x21, 0x73, 0x2e, 0xd6, 0xc0,
 | |
| 	0xd2, 0xd4, 0xa2, 0x4a, 0x21, 0x31, 0x3d, 0x24, 0x33, 0xf4, 0xe0, 0x06, 0x48, 0xe1, 0x10, 0x77,
 | |
| 	0x62, 0x89, 0x62, 0x2a, 0x48, 0x4a, 0x62, 0x03, 0xdb, 0x6f, 0x0c, 0x08, 0x00, 0x00, 0xff, 0xff,
 | |
| 	0xf5, 0xd1, 0x3f, 0x26, 0x8c, 0x00, 0x00, 0x00,
 | |
| }
 |