Skip to content
Snippets Groups Projects
Commit f1b27f62 authored by Jake Taylor's avatar Jake Taylor
Browse files

made all handlers use protocomms serve

parent 7e4d7e22
No related branches found
No related tags found
3 merge requests!66Merge release into master,!55Merge channels,!53Xx 4077/multi binder
......@@ -12,13 +12,11 @@ package authorizer
import (
"runtime/debug"
"github.com/pkg/errors"
jww "github.com/spf13/jwalterweatherman"
pb "gitlab.com/elixxir/comms/mixmessages"
"gitlab.com/xx_network/comms/connect"
"gitlab.com/xx_network/comms/messages"
"gitlab.com/xx_network/primitives/id"
"google.golang.org/grpc/reflection"
)
// Authorizer object used to implement
......@@ -34,7 +32,7 @@ type Comms struct {
func StartAuthorizerServer(id *id.ID, localServer string, handler Handler,
certPEMblock, keyPEMblock []byte) *Comms {
pc, lis, err := connect.StartCommServer(id, localServer,
pc, err := connect.StartCommServer(id, localServer,
certPEMblock, keyPEMblock, nil)
if err != nil {
jww.FATAL.Panicf("Unable to start comms server: %+v", err)
......@@ -44,21 +42,10 @@ func StartAuthorizerServer(id *id.ID, localServer string, handler Handler,
ProtoComms: pc,
handler: handler,
}
pb.RegisterAuthorizerServer(authorizerServer.GetServer(), &authorizerServer)
messages.RegisterGenericServer(authorizerServer.GetServer(), &authorizerServer)
go func() {
pb.RegisterAuthorizerServer(authorizerServer.LocalServer, &authorizerServer)
messages.RegisterGenericServer(authorizerServer.LocalServer, &authorizerServer)
// Register reflection service on gRPC server.
reflection.Register(authorizerServer.LocalServer)
if err := authorizerServer.LocalServer.Serve(lis); err != nil {
err = errors.New(err.Error())
jww.FATAL.Panicf("Failed to serve: %+v", err)
}
jww.INFO.Printf("Shutting down authorizer server listener:"+
" %s", lis)
}()
pc.Serve()
return &authorizerServer
}
......
......@@ -12,13 +12,11 @@ package clientregistrar
import (
"runtime/debug"
"github.com/pkg/errors"
jww "github.com/spf13/jwalterweatherman"
pb "gitlab.com/elixxir/comms/mixmessages"
"gitlab.com/xx_network/comms/connect"
"gitlab.com/xx_network/comms/messages"
"gitlab.com/xx_network/primitives/id"
"google.golang.org/grpc/reflection"
)
// Registration object used to implement
......@@ -34,7 +32,7 @@ type Comms struct {
func StartClientRegistrarServer(id *id.ID, localServer string, handler Handler,
certPEMblock, keyPEMblock []byte) *Comms {
pc, lis, err := connect.StartCommServer(id, localServer,
pc, err := connect.StartCommServer(id, localServer,
certPEMblock, keyPEMblock, nil)
if err != nil {
jww.FATAL.Panicf("Unable to start comms server: %+v", err)
......@@ -44,21 +42,10 @@ func StartClientRegistrarServer(id *id.ID, localServer string, handler Handler,
ProtoComms: pc,
handler: handler,
}
pb.RegisterClientRegistrarServer(clientRegistrarServer.GetServer(), &clientRegistrarServer)
messages.RegisterGenericServer(clientRegistrarServer.GetServer(), &clientRegistrarServer)
go func() {
pb.RegisterClientRegistrarServer(clientRegistrarServer.LocalServer, &clientRegistrarServer)
messages.RegisterGenericServer(clientRegistrarServer.LocalServer, &clientRegistrarServer)
// Register reflection service on gRPC server.
reflection.Register(clientRegistrarServer.LocalServer)
if err := clientRegistrarServer.LocalServer.Serve(lis); err != nil {
err = errors.New(err.Error())
jww.FATAL.Panicf("Failed to serve: %+v", err)
}
jww.INFO.Printf("Shutting down registration server listener:"+
" %s", lis)
}()
pc.ServeWithWeb()
return &clientRegistrarServer
}
......
......@@ -19,7 +19,6 @@ import (
"gitlab.com/xx_network/comms/gossip"
"gitlab.com/xx_network/comms/messages"
"gitlab.com/xx_network/primitives/id"
"google.golang.org/grpc/reflection"
"runtime/debug"
)
......@@ -33,7 +32,6 @@ type Comms struct {
// Handler describes the endpoint callbacks for Gateway.
type Handler interface {
// PutMessage uploads a message to the cMix Gateway
PutMessage(message *pb.GatewaySlot, ipAddr string) (*pb.GatewaySlotResponse, error)
PutManyMessages(msgs *pb.GatewaySlots, ipAddr string) (*pb.GatewaySlotResponse, error)
PutMessageProxy(message *pb.GatewaySlot, auth *connect.Auth) (*pb.GatewaySlotResponse, error)
......@@ -48,37 +46,28 @@ type Handler interface {
// and a callback interface for gateway operations
// with given path to public and private key for TLS connection.
func StartGateway(id *id.ID, localServer string, handler Handler,
certPem, keyPem []byte, gossipFlags gossip.ManagerFlags) *Comms {
pc, lis, err := connect.StartCommServer(id, localServer,
certPem, keyPem []byte, gossipFlags gossip.ManagerFlags) (*Comms, error) {
// Initialize the low-level comms listeners
pc, err := connect.StartCommServer(id, localServer,
certPem, keyPem, nil)
if err != nil {
jww.FATAL.Panicf("Unable to start comms server: %+v", err)
return nil, errors.Errorf("Unable to StartCommServer: %+v", err)
}
gatewayServer := Comms{
handler: handler,
ProtoComms: pc,
Manager: gossip.NewManager(pc, gossipFlags),
}
go func() {
pb.RegisterGatewayServer(gatewayServer.LocalServer, &gatewayServer)
messages.RegisterGenericServer(gatewayServer.LocalServer, &gatewayServer)
gossip.RegisterGossipServer(gatewayServer.LocalServer, gatewayServer.Manager)
// Register reflection service on gRPC server.
// This blocks for the lifetime of the listener.
reflection.Register(gatewayServer.LocalServer)
if err := gatewayServer.LocalServer.Serve(lis); err != nil {
jww.FATAL.Panicf("Failed to serve: %+v",
errors.New(err.Error()))
}
jww.INFO.Printf("Shutting down gateway server listener: %s",
lis)
}()
// Register the high-level comms endpoint functionality
grpcServer := gatewayServer.GetServer()
pb.RegisterGatewayServer(grpcServer, &gatewayServer)
messages.RegisterGenericServer(grpcServer, &gatewayServer)
gossip.RegisterGossipServer(grpcServer, gatewayServer.Manager)
return &gatewayServer
pc.ServeWithWeb()
return &gatewayServer, nil
}
// implementationFunctions for the Handler interface.
......
......@@ -7,24 +7,31 @@ require (
github.com/golang/protobuf v1.5.2
github.com/pkg/errors v0.9.1
github.com/spf13/jwalterweatherman v1.1.0
gitlab.com/elixxir/crypto v0.0.7-0.20220606201132-c370d5039cea
gitlab.com/elixxir/crypto v0.0.7-0.20220818194137-973a70947df4
gitlab.com/elixxir/primitives v0.0.3-0.20220810173935-592f34a88326
gitlab.com/xx_network/comms v0.0.4-0.20220630163702-f3d372ef6acd
gitlab.com/xx_network/comms v0.0.4-0.20220818222009-13fefcbe92a1
gitlab.com/xx_network/crypto v0.0.5-0.20220729193517-1e5e96f39f6e
gitlab.com/xx_network/primitives v0.0.4-0.20220712193914-aebd8544396e
gitlab.com/xx_network/ring v0.0.3-0.20220222211904-da613960ad93
golang.org/x/crypto v0.0.0-20220128200615-198e4374d7ed
golang.org/x/crypto v0.0.0-20220525230936-793ad666bf5e
golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2
google.golang.org/grpc v1.38.0
google.golang.org/protobuf v1.27.1
)
require (
github.com/cenkalti/backoff/v4 v4.1.1 // indirect
github.com/desertbit/timer v0.0.0-20180107155436-c41aec40b27f // indirect
github.com/golang-collections/collections v0.0.0-20130729185459-604e922904d3 // indirect
github.com/improbable-eng/grpc-web v0.15.0 // indirect
github.com/klauspost/compress v1.11.7 // indirect
github.com/mitchellh/go-homedir v1.1.0 // indirect
github.com/rs/cors v1.7.0 // indirect
github.com/soheilhy/cmux v0.1.5 // indirect
github.com/zeebo/blake3 v0.1.1 // indirect
golang.org/x/sys v0.0.0-20211007075335-d3039528d8ac // indirect
golang.org/x/text v0.3.6 // indirect
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 // indirect
google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013 // indirect
google.golang.org/genproto v0.0.0-20210126160654-44e461bb6506 // indirect
nhooyr.io/websocket v1.8.6 // indirect
)
This diff is collapsed.
......@@ -10,14 +10,12 @@
package node
import (
"github.com/pkg/errors"
jww "github.com/spf13/jwalterweatherman"
"gitlab.com/elixxir/comms/mixmessages"
"gitlab.com/xx_network/comms/connect"
"gitlab.com/xx_network/comms/interconnect"
"gitlab.com/xx_network/comms/messages"
"gitlab.com/xx_network/primitives/id"
"google.golang.org/grpc/reflection"
"runtime/debug"
"strconv"
)
......@@ -33,7 +31,7 @@ type Comms struct {
// with given path to public and private key for TLS connection
func StartNode(id *id.ID, localServer string, interconnectPort int, handler Handler,
certPEMblock, keyPEMblock []byte) *Comms {
pc, lis, err := connect.StartCommServer(id, localServer,
pc, err := connect.StartCommServer(id, localServer,
certPEMblock, keyPEMblock, nil)
if err != nil {
jww.FATAL.Panicf("Unable to start comms server: %+v", err)
......@@ -43,6 +41,9 @@ func StartNode(id *id.ID, localServer string, interconnectPort int, handler Hand
ProtoComms: pc,
handler: handler,
}
// Register GRPC services to the listening address
mixmessages.RegisterNodeServer(mixmessageServer.GetServer(), &mixmessageServer)
messages.RegisterGenericServer(mixmessageServer.GetServer(), &mixmessageServer)
// Start up interconnect service
if interconnectPort != 0 {
......@@ -53,21 +54,7 @@ func StartNode(id *id.ID, localServer string, interconnectPort int, handler Hand
jww.WARN.Printf("Port for consensus not set, interconnect not started")
}
go func() {
// Register GRPC services to the listening address
mixmessages.RegisterNodeServer(mixmessageServer.LocalServer, &mixmessageServer)
messages.RegisterGenericServer(mixmessageServer.LocalServer, &mixmessageServer)
// Register reflection service on gRPC server.
reflection.Register(mixmessageServer.LocalServer)
if err := mixmessageServer.LocalServer.Serve(lis); err != nil {
jww.FATAL.Panicf("Failed to serve: %+v",
errors.New(err.Error()))
}
jww.INFO.Printf("Shutting down node server listener: %s", lis)
}()
pc.Serve()
return &mixmessageServer
}
......
......@@ -10,13 +10,11 @@
package notificationBot
import (
"github.com/pkg/errors"
jww "github.com/spf13/jwalterweatherman"
pb "gitlab.com/elixxir/comms/mixmessages"
"gitlab.com/xx_network/comms/connect"
"gitlab.com/xx_network/comms/messages"
"gitlab.com/xx_network/primitives/id"
"google.golang.org/grpc/reflection"
"runtime/debug"
)
......@@ -43,7 +41,7 @@ type Comms struct {
func StartNotificationBot(id *id.ID, localServer string, handler Handler,
certPEMblock, keyPEMblock []byte) *Comms {
pc, lis, err := connect.StartCommServer(id, localServer,
pc, err := connect.StartCommServer(id, localServer,
certPEMblock, keyPEMblock, nil)
if err != nil {
jww.FATAL.Panicf("Unable to start comms server: %+v", err)
......@@ -53,21 +51,10 @@ func StartNotificationBot(id *id.ID, localServer string, handler Handler,
ProtoComms: pc,
handler: handler,
}
pb.RegisterNotificationBotServer(notificationBot.GetServer(), &notificationBot)
messages.RegisterGenericServer(notificationBot.GetServer(), &notificationBot)
go func() {
pb.RegisterNotificationBotServer(notificationBot.LocalServer, &notificationBot)
messages.RegisterGenericServer(notificationBot.LocalServer, &notificationBot)
// Register reflection service on gRPC server.
reflection.Register(notificationBot.LocalServer)
if err := notificationBot.LocalServer.Serve(lis); err != nil {
err = errors.New(err.Error())
jww.FATAL.Panicf("Failed to serve: %+v", err)
}
jww.INFO.Printf("Shutting down registration server listener:"+
" %s", lis)
}()
pc.Serve()
return &notificationBot
}
......
......@@ -10,13 +10,11 @@
package registration
import (
"github.com/pkg/errors"
jww "github.com/spf13/jwalterweatherman"
pb "gitlab.com/elixxir/comms/mixmessages"
"gitlab.com/xx_network/comms/connect"
"gitlab.com/xx_network/comms/messages"
"gitlab.com/xx_network/primitives/id"
"google.golang.org/grpc/reflection"
"runtime/debug"
)
......@@ -33,7 +31,7 @@ type Comms struct {
func StartRegistrationServer(id *id.ID, localServer string, handler Handler,
certPEMblock, keyPEMblock []byte, preloadedHosts []*connect.Host) *Comms {
pc, lis, err := connect.StartCommServer(id, localServer,
pc, err := connect.StartCommServer(id, localServer,
certPEMblock, keyPEMblock, preloadedHosts)
if err != nil {
jww.FATAL.Panicf("Unable to start comms server: %+v", err)
......@@ -43,21 +41,10 @@ func StartRegistrationServer(id *id.ID, localServer string, handler Handler,
ProtoComms: pc,
handler: handler,
}
pb.RegisterRegistrationServer(registrationServer.GetServer(), &registrationServer)
messages.RegisterGenericServer(registrationServer.GetServer(), &registrationServer)
go func() {
pb.RegisterRegistrationServer(registrationServer.LocalServer, &registrationServer)
messages.RegisterGenericServer(registrationServer.LocalServer, &registrationServer)
// Register reflection service on gRPC server.
reflection.Register(registrationServer.LocalServer)
if err := registrationServer.LocalServer.Serve(lis); err != nil {
err = errors.New(err.Error())
jww.FATAL.Panicf("Failed to serve: %+v", err)
}
jww.INFO.Printf("Shutting down registration server listener:"+
" %s", lis)
}()
pc.Serve()
return &registrationServer
}
......
......@@ -10,14 +10,11 @@
package udb
import (
"github.com/pkg/errors"
// "github.com/pkg/errors"
jww "github.com/spf13/jwalterweatherman"
pb "gitlab.com/elixxir/comms/mixmessages"
"gitlab.com/xx_network/comms/connect"
"gitlab.com/xx_network/comms/messages"
"google.golang.org/grpc/reflection"
// "gitlab.com/xx_network/comms/messages"
"gitlab.com/xx_network/primitives/id"
// "google.golang.org/grpc/reflection"
......@@ -37,7 +34,7 @@ type Comms struct {
// with given path to public and private key for TLS connection
func StartServer(id *id.ID, localServer string, handler Handler,
certPEMblock, keyPEMblock []byte) *Comms {
pc, lis, err := connect.StartCommServer(id, localServer,
pc, err := connect.StartCommServer(id, localServer,
certPEMblock, keyPEMblock, nil)
if err != nil {
jww.FATAL.Panicf("Unable to start comms server: %+v", err)
......@@ -47,24 +44,11 @@ func StartServer(id *id.ID, localServer string, handler Handler,
ProtoComms: pc,
handler: handler,
}
pb.RegisterUDBServer(udbServer.GetServer(), &udbServer)
messages.RegisterGenericServer(udbServer.GetServer(), &udbServer)
go func() {
pb.RegisterUDBServer(udbServer.LocalServer,
&udbServer)
messages.RegisterGenericServer(udbServer.LocalServer,
&udbServer)
// Register reflection service on gRPC server.
reflection.Register(udbServer.LocalServer)
if err := udbServer.LocalServer.Serve(lis); err != nil {
err = errors.New(err.Error())
jww.FATAL.Panicf("Failed to serve: %+v", err)
}
jww.INFO.Printf("Shutting down registration server listener:"+
" %s", lis)
}()
pc.ServeWithWeb()
return &udbServer
return nil
}
// Handler is the interface udb has to implement to integrate with the comms
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment