2015-01-24 08:52:01 -08:00
|
|
|
package dht
|
|
|
|
|
|
|
|
import (
|
2016-05-10 16:06:28 -07:00
|
|
|
ma "gx/ipfs/QmYzDkkgAEmrcNzFCiYo6L1dTX4EAG1gZkbtdbd9trL4vd/go-multiaddr"
|
2015-01-30 20:17:55 -08:00
|
|
|
|
2016-07-04 12:27:26 -07:00
|
|
|
inet "gx/ipfs/QmVCe3SNMjkcPgnpFhZs719dheq6xE7gJwjzV7aWcUM4Ms/go-libp2p/p2p/net"
|
2015-01-24 08:52:01 -08:00
|
|
|
)
|
|
|
|
|
|
|
|
// netNotifiee defines methods to be used with the IpfsDHT
|
|
|
|
type netNotifiee IpfsDHT
|
|
|
|
|
|
|
|
func (nn *netNotifiee) DHT() *IpfsDHT {
|
|
|
|
return (*IpfsDHT)(nn)
|
|
|
|
}
|
|
|
|
|
|
|
|
func (nn *netNotifiee) Connected(n inet.Network, v inet.Conn) {
|
|
|
|
dht := nn.DHT()
|
|
|
|
select {
|
2015-06-18 17:17:38 +07:00
|
|
|
case <-dht.Process().Closing():
|
2015-01-24 08:52:01 -08:00
|
|
|
return
|
2015-02-01 01:43:58 -08:00
|
|
|
default:
|
2015-01-24 08:52:01 -08:00
|
|
|
}
|
|
|
|
dht.Update(dht.Context(), v.RemotePeer())
|
|
|
|
}
|
|
|
|
|
|
|
|
func (nn *netNotifiee) Disconnected(n inet.Network, v inet.Conn) {
|
|
|
|
dht := nn.DHT()
|
|
|
|
select {
|
2015-06-18 17:17:38 +07:00
|
|
|
case <-dht.Process().Closing():
|
2015-01-24 08:52:01 -08:00
|
|
|
return
|
2015-02-01 01:43:58 -08:00
|
|
|
default:
|
2015-01-24 08:52:01 -08:00
|
|
|
}
|
|
|
|
dht.routingTable.Remove(v.RemotePeer())
|
|
|
|
}
|
|
|
|
|
|
|
|
func (nn *netNotifiee) OpenedStream(n inet.Network, v inet.Stream) {}
|
|
|
|
func (nn *netNotifiee) ClosedStream(n inet.Network, v inet.Stream) {}
|
2015-01-30 20:17:55 -08:00
|
|
|
func (nn *netNotifiee) Listen(n inet.Network, a ma.Multiaddr) {}
|
|
|
|
func (nn *netNotifiee) ListenClose(n inet.Network, a ma.Multiaddr) {}
|