summaryrefslogtreecommitdiffstats
path: root/src/peer.c
diff options
context:
space:
mode:
authorMatthias Schiffer <mschiffer@universe-factory.net>2015-03-23 06:30:10 +0100
committerMatthias Schiffer <mschiffer@universe-factory.net>2015-03-23 06:30:10 +0100
commit69fc8268d0a17cf3b86b327a78e302f049c194e1 (patch)
treed4bdd69b06c1025a3d14a45b292f572a09ba0c8f /src/peer.c
parente2402e41eb0e914078d860273bd7cf8c526664c6 (diff)
downloadfastd-69fc8268d0a17cf3b86b327a78e302f049c194e1.tar
fastd-69fc8268d0a17cf3b86b327a78e302f049c194e1.zip
peer: set peer name in on-up environment for peer-specific interfaces
Diffstat (limited to 'src/peer.c')
-rw-r--r--src/peer.c16
1 files changed, 13 insertions, 3 deletions
diff --git a/src/peer.c b/src/peer.c
index f4b2bae..307d9b6 100644
--- a/src/peer.c
+++ b/src/peer.c
@@ -118,6 +118,16 @@ void fastd_peer_exec_shell_command(const fastd_shell_command_t *command, const f
fastd_shell_env_free(env);
}
+/** Calls the on-up command */
+static inline void on_up(const fastd_peer_t *peer) {
+ fastd_peer_exec_shell_command(&conf.on_up, peer, NULL, NULL);
+}
+
+/** Calls the on-down command */
+static inline void on_down(const fastd_peer_t *peer) {
+ fastd_peer_exec_shell_command(&conf.on_down, peer, NULL, NULL);
+}
+
/** Executes the on-establish command for a peer */
static inline void on_establish(const fastd_peer_t *peer) {
fastd_peer_exec_shell_command(&conf.on_establish, peer, &peer->local_address, &peer->address);
@@ -316,7 +326,7 @@ static void reset_peer(fastd_peer_t *peer) {
if (!conf.iface_persist || peer->config_state == CONFIG_DISABLED) {
if (peer->iface && peer->iface->peer) {
- fastd_on_down(peer->iface);
+ on_down(peer);
fastd_iface_close(peer->iface);
}
@@ -403,7 +413,7 @@ static void setup_peer(fastd_peer_t *peer) {
peer->iface = fastd_iface_open(ifname, peer);
if (peer->iface)
- fastd_on_up(peer->iface);
+ on_up(peer);
else if (!peer->config_source_dir)
/* Fail for statically configured peers;
an error message has already been printed by fastd_iface_open() */
@@ -465,7 +475,7 @@ static void delete_peer(fastd_peer_t *peer) {
conf.protocol->free_peer_state(peer);
if (peer->iface && peer->iface->peer) {
- fastd_on_down(peer->iface);
+ on_down(peer);
fastd_iface_close(peer->iface);
}