Commit 3e7a11bd authored by Petar Radovic's avatar Petar Radovic Committed by GitHub

Fullclose on incoming connection + stream close on send/handle headers (#336)

* stream close on headers error

* fullclose on connection
parent 6e001215
...@@ -220,7 +220,7 @@ func New(ctx context.Context, signer beecrypto.Signer, networkID uint64, overlay ...@@ -220,7 +220,7 @@ func New(ctx context.Context, signer beecrypto.Signer, networkID uint64, overlay
} }
if exists := s.peers.addIfNotExists(stream.Conn(), i.BzzAddress.Overlay); exists { if exists := s.peers.addIfNotExists(stream.Conn(), i.BzzAddress.Overlay); exists {
if err = stream.Close(); err != nil { if err = helpers.FullClose(stream); err != nil {
s.logger.Debugf("handshake: could not close stream %s: %v", peerID, err) s.logger.Debugf("handshake: could not close stream %s: %v", peerID, err)
s.logger.Errorf("unable to handshake with peer %v", peerID) s.logger.Errorf("unable to handshake with peer %v", peerID)
_ = s.disconnect(peerID) _ = s.disconnect(peerID)
...@@ -228,7 +228,7 @@ func New(ctx context.Context, signer beecrypto.Signer, networkID uint64, overlay ...@@ -228,7 +228,7 @@ func New(ctx context.Context, signer beecrypto.Signer, networkID uint64, overlay
return return
} }
if err = stream.Close(); err != nil { if err = helpers.FullClose(stream); err != nil {
s.logger.Debugf("handshake: could not close stream %s: %v", peerID, err) s.logger.Debugf("handshake: could not close stream %s: %v", peerID, err)
s.logger.Errorf("unable to handshake with peer %v", peerID) s.logger.Errorf("unable to handshake with peer %v", peerID)
_ = s.disconnect(peerID) _ = s.disconnect(peerID)
...@@ -285,6 +285,9 @@ func (s *Service) AddProtocol(p p2p.ProtocolSpec) (err error) { ...@@ -285,6 +285,9 @@ func (s *Service) AddProtocol(p p2p.ProtocolSpec) (err error) {
// exchange headers // exchange headers
if err := handleHeaders(ss.Headler, stream); err != nil { if err := handleHeaders(ss.Headler, stream); err != nil {
s.logger.Debugf("handle protocol %s/%s: stream %s: peer %s: handle headers: %v", p.Name, p.Version, ss.Name, overlay, err) s.logger.Debugf("handle protocol %s/%s: stream %s: peer %s: handle headers: %v", p.Name, p.Version, ss.Name, overlay, err)
if err := stream.Close(); err != nil {
s.logger.Debugf("handle protocol %s/%s: stream %s: peer %s: handle headers close stream: %v", p.Name, p.Version, ss.Name, overlay, err)
}
return return
} }
...@@ -438,6 +441,9 @@ func (s *Service) NewStream(ctx context.Context, overlay swarm.Address, headers ...@@ -438,6 +441,9 @@ func (s *Service) NewStream(ctx context.Context, overlay swarm.Address, headers
// exchange headers // exchange headers
if err := sendHeaders(ctx, headers, stream); err != nil { if err := sendHeaders(ctx, headers, stream); err != nil {
if err := stream.Close(); err != nil {
s.logger.Debugf("send headers %s: close stream %v", peerID, err)
}
return nil, fmt.Errorf("send headers: %w", err) return nil, fmt.Errorf("send headers: %w", err)
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment