mirror of
https://github.com/kaspanet/kaspad.git
synced 2025-06-25 15:32:32 +00:00

* [NOD-1120] Removed closure in NetAdapter.onConnectedHanlder * [NOD-1120] Implement all connection manager methods * [NOD-1120] Integrated connmanager into kaspad + added call for dnsseeder * [NOD-1120] Allow buffer to not be bytes.Buffer * [NOD-1120] Added timeout to connect * [NOD-1120] Don't enter connections to add loop if none needed * [NOD-1120] Add call for addressManager.Good * [NOD-1120] Minor bug fixes * [NOD-1120] Remove errChan from grpcConnection * [NOD-1120] Add comments to exported methods * [NOD-1120] cancel the context for DialContext in gRPCServer.Connect * [NOD-1120] Don't try to remove from connSet a connection that doesn't exist * [NOD-1120] add ok bool to connectionSet.get * [NOD-1120] Remove overuse of if-else in checkConnectionRequests * [NOD-1120] Made some order in ConnectionManager * [NOD-1120] Moved checkIncomingConnections to it's own file * [NOD-1120] cleanup in checkOutgoingConnections * [NOD-1120] Cleanup in SeedDNS, and move call outside of connection manager * [NOD-1120] Add check that both --connect and --addpeer aren't used * [NOD-1120] Move dial timeout to constant * [NOD-1120] Enhance comment * [NOD-1120] Log connection failure out of initiateConnection * [NOD-1148] Reshuffle checkRequestedConnections to make more sense * [NOD-1120] Move continue to correct place + reshuffle logging code * [NOD-1120] Don't expose server.Connection outside netAdapter - expose a wrapper instead * [NOD-1120] Add comments * [NOD-1120] Don't return the connection from netAdapter.Connect() * [NOD-1120] Use .Address as key for connectionSet * [NOD-1120] Fix minRetryDuration usage * [NOD-1120] Remove the correct number of incoming connections * [NOD-1120] Add comment * [NOD-1120] Rename connSet -> incomingConnectionSet * [NOD-1120] fix grammar
41 lines
1.1 KiB
Go
41 lines
1.1 KiB
Go
package server
|
|
|
|
import (
|
|
"fmt"
|
|
"net"
|
|
|
|
"github.com/pkg/errors"
|
|
|
|
"github.com/kaspanet/kaspad/netadapter/router"
|
|
)
|
|
|
|
// OnConnectedHandler is a function that is to be called
|
|
// once a new Connection is successfully established.
|
|
type OnConnectedHandler func(connection Connection) error
|
|
|
|
// OnDisconnectedHandler is a function that is to be
|
|
// called once a Connection has been disconnected.
|
|
type OnDisconnectedHandler func() error
|
|
|
|
// Server represents a p2p server.
|
|
type Server interface {
|
|
Connect(address string) (Connection, error)
|
|
Start() error
|
|
Stop() error
|
|
SetOnConnectedHandler(onConnectedHandler OnConnectedHandler)
|
|
}
|
|
|
|
// Connection represents a p2p server connection.
|
|
type Connection interface {
|
|
fmt.Stringer
|
|
Start(router *router.Router)
|
|
Disconnect() error
|
|
IsConnected() bool
|
|
SetOnDisconnectedHandler(onDisconnectedHandler OnDisconnectedHandler)
|
|
Address() net.Addr
|
|
}
|
|
|
|
// ErrNetwork is an error related to the internals of the connection, and not an error that
|
|
// came from outside (e.g. from OnDisconnectedHandler).
|
|
var ErrNetwork = errors.New("network error")
|