Add notion of `ephemeral' associations and a goodbye protocol.
[tripe] / peerdb / peers.in
index b170157..75c039d 100644 (file)
@@ -57,6 +57,10 @@ host = override-me
 ;; the remote peer.
 peer = INET $[$(host)] $(port)
 
+;; ephemeral: whether to send the peer a disconnection notification, or
+;; react to one from the peer.
+ephemeral = nil
+
 ;;;--------------------------------------------------------------------------
 ;;; Temporary association defaults.
 ;;;
@@ -81,9 +85,29 @@ retries = 5
 ;;; The parameters here affect peers to whom dynamic connections are made.
 ;;; The user and connect parameters probably need customizing.
 
-[@DYNAMIC]
+[@EPHEMERAL]
 @inherit = @ACTIVE, @WATCH
 
+;; ephemeral: whether to send the peer a disconnection notification, or
+;; react to one from the peer.
+ephemeral = t
+
+;; every: interval for checking that this connection is alive.
+every = 30s
+
+[@KNOCK]
+@inherit = @EPHEMERAL
+
+;; keepalive: how often to send NOP packets to keep the connection alive, at
+;; least in the minds of intermediate stateful firewalls and NAT routers.
+keepalive = 2m
+
+;; knock: peer-name string to send to the peer.
+knock = $(myhost)
+
+[@DYNAMIC]
+@inherit = @EPHEMERAL
+
 ;; cork: whether to wait for a key-exchange packet from the peer before
 ;; sending one of our own.
 cork = t
@@ -102,9 +126,6 @@ disconnect = ssh -q $(ssh-user)@$[$(host)] goodbye
 ;; least in the minds of intermediate stateful firewalls and NAT routers.
 keepalive = 2m
 
-;; every: interval for checking that this connection is alive.
-every = 30s
-
 ;;;--------------------------------------------------------------------------
 ;;; Passive-peers defaults.
 ;;;
@@ -113,7 +134,7 @@ every = 30s
 ;;; of the parameters and these defaults are probably pretty good.
 
 [@PASSIVE]
-@inherit = @GLOBAL, @WATCH
+@inherit = @WATCH
 
 ;; peer: mark this entry as being a passive peer.
 peer = PASSIVE