stasatdaglabs 8a4ece1101
[NOD-1223] Reorganize project (#868)
* [NOD-1223] Move all network stuff into a new network package.

* [NOD-1223] Delete the unused package testutil.

* [NOD-1223] Move infrastructure stuff into a new instrastructure package.

* [NOD-1223] Move domain stuff into a new domain package.
2020-08-13 17:27:25 +03:00

45 lines
1.0 KiB
Go

package grpcserver
import (
"github.com/kaspanet/kaspad/network/netadapter/server/grpcserver/protowire"
"github.com/kaspanet/kaspad/util/panics"
"github.com/pkg/errors"
"google.golang.org/grpc/peer"
"net"
)
type p2pServer struct {
protowire.UnimplementedP2PServer
server *gRPCServer
}
func newP2PServer(s *gRPCServer) *p2pServer {
return &p2pServer{server: s}
}
func (p *p2pServer) MessageStream(stream protowire.P2P_MessageStreamServer) error {
defer panics.HandlePanic(log, "p2pServer.MessageStream", nil)
peerInfo, ok := peer.FromContext(stream.Context())
if !ok {
return errors.Errorf("Error getting stream peer info from context")
}
tcpAddress, ok := peerInfo.Addr.(*net.TCPAddr)
if !ok {
return errors.Errorf("non-tcp connections are not supported")
}
connection := newConnection(p.server, tcpAddress, false, stream)
err := p.server.onConnectedHandler(connection)
if err != nil {
return err
}
log.Infof("Incoming connection from %s", peerInfo.Addr)
<-connection.stopChan
return nil
}