diff options
author | Matthias Schiffer <mschiffer@universe-factory.net> | 2015-10-18 03:32:21 +0200 |
---|---|---|
committer | Matthias Schiffer <mschiffer@universe-factory.net> | 2015-10-18 03:32:21 +0200 |
commit | 412e341def88b0734fbac2c2f19fcecf2486ee86 (patch) | |
tree | f4050b542181869766dbb437ed06ec08cde1f3cb /src/peer.c | |
parent | df48485aeab897c50fd792a740d1a5aed4378fc9 (diff) | |
download | fastd-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.c | 12 |
1 files changed, 8 insertions, 4 deletions
@@ -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 */ |