summaryrefslogtreecommitdiffstats
path: root/src/peer.c
diff options
context:
space:
mode:
authorMatthias Schiffer <mschiffer@universe-factory.net>2015-10-18 03:32:21 +0200
committerMatthias Schiffer <mschiffer@universe-factory.net>2015-10-18 03:32:21 +0200
commit412e341def88b0734fbac2c2f19fcecf2486ee86 (patch)
treef4050b542181869766dbb437ed06ec08cde1f3cb /src/peer.c
parentdf48485aeab897c50fd792a740d1a5aed4378fc9 (diff)
downloadfastd-412e341def88b0734fbac2c2f19fcecf2486ee86.tar
fastd-412e341def88b0734fbac2c2f19fcecf2486ee86.zip
config: make on_up/down/establish/disestablish commands configurable per peer group
Diffstat (limited to 'src/peer.c')
-rw-r--r--src/peer.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/src/peer.c b/src/peer.c
index de8846e..23cd485 100644
--- a/src/peer.c
+++ b/src/peer.c
@@ -126,22 +126,26 @@ void fastd_peer_exec_shell_command(const fastd_shell_command_t *command, const f
/** Calls the on-up command */
static inline void on_up(const fastd_peer_t *peer, bool sync) {
- fastd_peer_exec_shell_command(&conf.on_up, peer, NULL, NULL, sync);
+ const fastd_shell_command_t *on_up = container_of(fastd_peer_group_lookup_peer(peer, on_up.command), fastd_shell_command_t, command);
+ fastd_peer_exec_shell_command(on_up, peer, NULL, NULL, sync);
}
/** Calls the on-down command */
static inline void on_down(const fastd_peer_t *peer, bool sync) {
- fastd_peer_exec_shell_command(&conf.on_down, peer, NULL, NULL, sync);
+ const fastd_shell_command_t *on_down = container_of(fastd_peer_group_lookup_peer(peer, on_down.command), fastd_shell_command_t, command);
+ fastd_peer_exec_shell_command(on_down, peer, NULL, NULL, sync);
}
/** 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, false);
+ const fastd_shell_command_t *on_establish = container_of(fastd_peer_group_lookup_peer(peer, on_establish.command), fastd_shell_command_t, command);
+ fastd_peer_exec_shell_command(on_establish, peer, &peer->local_address, &peer->address, false);
}
/** Executes the on-disestablish command for a peer */
static inline void on_disestablish(const fastd_peer_t *peer) {
- fastd_peer_exec_shell_command(&conf.on_disestablish, peer, &peer->local_address, &peer->address, false);
+ const fastd_shell_command_t *on_disestablish = container_of(fastd_peer_group_lookup_peer(peer, on_disestablish.command), fastd_shell_command_t, command);
+ fastd_peer_exec_shell_command(on_disestablish, peer, &peer->local_address, &peer->address, false);
}
/** Compares two peers by their peer ID */