From 8cf22c062fce116cc7bad103039097ffb54b8218 Mon Sep 17 00:00:00 2001 From: Juan Batiz-Benet Date: Sat, 25 Oct 2014 05:59:37 -0700 Subject: [PATCH] core is now ctxcloser --- core/core.go | 37 ++++++++++++++++++++++--------------- net/interface.go | 5 ++--- 2 files changed, 24 insertions(+), 18 deletions(-) diff --git a/core/core.go b/core/core.go index 867f1a601..5b4c6ee28 100644 --- a/core/core.go +++ b/core/core.go @@ -26,6 +26,7 @@ import ( routing "github.com/jbenet/go-ipfs/routing" dht "github.com/jbenet/go-ipfs/routing/dht" u "github.com/jbenet/go-ipfs/util" + ctxc "github.com/jbenet/go-ipfs/util/ctxcloser" ) var log = u.Logger("core") @@ -71,6 +72,8 @@ type IpfsNode struct { // the pinning manager Pinning pin.Pinner + + ctxc.ContextCloser } // NewIpfsNode constructs a new IpfsNode based on the given config. @@ -159,21 +162,25 @@ func NewIpfsNode(cfg *config.Config, online bool) (*IpfsNode, error) { } success = true - return &IpfsNode{ - Config: cfg, - Peerstore: peerstore, - Datastore: d, - Blocks: bs, - DAG: dag, - Resolver: &path.Resolver{DAG: dag}, - Exchange: exchangeSession, - Identity: local, - Routing: route, - Namesys: ns, - Diagnostics: diagnostics, - Network: network, - Pinning: p, - }, nil + n := &IpfsNode{ + Config: cfg, + Peerstore: peerstore, + Datastore: d, + Blocks: bs, + DAG: dag, + Resolver: &path.Resolver{DAG: dag}, + Exchange: exchangeSession, + Identity: local, + Routing: route, + Namesys: ns, + Diagnostics: diagnostics, + Network: network, + Pinning: p, + ContextCloser: ctxc.NewContextCloser(ctx, nil), + } + + n.AddCloserChild(n.Network) + return n, nil } func initIdentity(cfg *config.Config, peers peer.Peerstore, online bool) (peer.Peer, error) { diff --git a/net/interface.go b/net/interface.go index bac534975..11918231d 100644 --- a/net/interface.go +++ b/net/interface.go @@ -5,10 +5,12 @@ import ( mux "github.com/jbenet/go-ipfs/net/mux" srv "github.com/jbenet/go-ipfs/net/service" peer "github.com/jbenet/go-ipfs/peer" + ctxc "github.com/jbenet/go-ipfs/util/ctxcloser" ) // Network is the interface IPFS uses for connecting to the world. type Network interface { + ctxc.ContextCloser // Listen handles incoming connections on given Multiaddr. // Listen(*ma.Muliaddr) error @@ -35,9 +37,6 @@ type Network interface { // SendMessage sends given Message out SendMessage(msg.NetMessage) error - - // Close terminates all network operation - Close() error } // Sender interface for network services.