Skip to content
Snippets Groups Projects
kmsintercom.go 1.15 KiB
Newer Older
  • Learn to ignore specific revisions
  • 
    import (
    	"context"
    	"flag"
    	"fmt"
    	"log"
    	"net"
    
    
    	pb "code.fbi.h-da.de/danet/proto-kms/api/gen/proto/go/kmsintercom"
    
    	"google.golang.org/grpc"
    )
    
    
    type kmsTalkerServer struct {
    	pb.UnimplementedKmsTalkerServer
    }
    
    func (s *kmsTalkerServer) InterComCapabilities(ctx context.Context, in *pb.InterComCapabilitiesRequest) (capReply *pb.InterComCapabilitiesReply, err error) {
    
    	log.Printf("Received: %v", in.GetMyKmsName())
    
    	return &pb.InterComCapabilitiesReply{
    
    		PeerKmsName: "whatever",
    	}, nil
    
    Martin Stiemerling's avatar
    Martin Stiemerling committed
    func (s *kmsTalkerServer) InterComKeyTransportSessionHandling(ctx context.Context, in *pb.InterComKeyTransportSessionHandlingRequest) (*pb.InterComKeyTransportSessionHandlingReply, error) {
    
    	return &pb.InterComKeyTransportSessionHandlingReply{
    		UsedKey: "whatever",
    	}, nil
    }
    
    
    func StartInterComm(interComPort int) {
    
    	flag.Parse()
    
    
    	lis, err := net.Listen("tcp", fmt.Sprintf(":%d", interComPort))
    
    	if err != nil {
    		log.Fatalf("failed to listen: %v", err)
    	}
    	s := grpc.NewServer()
    
    	pb.RegisterKmsTalkerServer(s, &kmsTalkerServer{})
    
    	log.Printf("server listening at %v", lis.Addr())
    	if err := s.Serve(lis); err != nil {
    		log.Fatalf("failed to serve: %v", err)
    	}
    }