Skip to content

Commit

Permalink
tests: plugins: add listener event support
Browse files Browse the repository at this point in the history
Adding new hooks, checking the laddr value -- similar to what is done
when a new connection is created -- and incrementing the linked counter,
like the other hooks.

Signed-off-by: Matthieu Baerts (NGI0) <[email protected]>
  • Loading branch information
matttbe committed Oct 9, 2024
1 parent 810a407 commit 67bb520
Show file tree
Hide file tree
Showing 5 changed files with 107 additions and 1 deletion.
16 changes: 16 additions & 0 deletions tests/plugins/noop/noop.c
Original file line number Diff line number Diff line change
Expand Up @@ -113,6 +113,20 @@ static void plugin_noop_subflow_priority(mptcpd_token_t token,
(void) pm;
}

static void plugin_noop_listener_created(struct sockaddr const *laddr,
struct mptcpd_pm *pm)
{
(void) laddr;
(void) pm;
}

static void plugin_noop_listener_closed(struct sockaddr const *laddr,
struct mptcpd_pm *pm)
{
(void) laddr;
(void) pm;
}

void plugin_noop_new_interface(struct mptcpd_interface const *i,
struct mptcpd_pm *pm)
{
Expand Down Expand Up @@ -161,6 +175,8 @@ static struct mptcpd_plugin_ops const pm_ops = {
.new_subflow = plugin_noop_new_subflow,
.subflow_closed = plugin_noop_subflow_closed,
.subflow_priority = plugin_noop_subflow_priority,
.listener_created = plugin_noop_listener_created,
.listener_closed = plugin_noop_listener_closed,
.new_interface = plugin_noop_new_interface,
.update_interface = plugin_noop_update_interface,
.delete_interface = plugin_noop_delete_interface,
Expand Down
28 changes: 27 additions & 1 deletion tests/plugins/priority/one.c
Original file line number Diff line number Diff line change
Expand Up @@ -158,6 +158,28 @@ static void plugin_one_subflow_priority(mptcpd_token_t token,
++call_count.subflow_priority;
}

static void plugin_one_listener_created(struct sockaddr const *laddr,
struct mptcpd_pm *pm)
{
(void) pm;

assert(laddr != NULL);
assert(sockaddr_is_equal(laddr, local_addr));

++call_count.listener_created;
}

static void plugin_one_listener_closed(struct sockaddr const *laddr,
struct mptcpd_pm *pm)
{
(void) pm;

assert(laddr != NULL);
assert(sockaddr_is_equal(laddr, local_addr));

++call_count.listener_closed;
}

static struct mptcpd_plugin_ops const pm_ops = {
.new_connection = plugin_one_new_connection,
.connection_established = plugin_one_connection_established,
Expand All @@ -166,7 +188,9 @@ static struct mptcpd_plugin_ops const pm_ops = {
.address_removed = plugin_one_address_removed,
.new_subflow = plugin_one_new_subflow,
.subflow_closed = plugin_one_subflow_closed,
.subflow_priority = plugin_one_subflow_priority
.subflow_priority = plugin_one_subflow_priority,
.listener_created = plugin_one_listener_created,
.listener_closed = plugin_one_listener_closed
};

static int plugin_one_init(struct mptcpd_pm *pm)
Expand Down Expand Up @@ -204,6 +228,8 @@ static void plugin_one_exit(struct mptcpd_pm *pm)
.new_subflow = test_count_1.new_subflow * 2,
.subflow_closed = test_count_1.subflow_closed * 2,
.subflow_priority = test_count_1.subflow_priority * 2,
.listener_created = test_count_1.listener_created * 2,
.listener_closed = test_count_1.listener_closed * 2,
};

assert(call_count_is_sane(&call_count));
Expand Down
24 changes: 24 additions & 0 deletions tests/plugins/priority/two.c
Original file line number Diff line number Diff line change
Expand Up @@ -160,6 +160,28 @@ static void plugin_two_subflow_priority(mptcpd_token_t token,
++call_count.subflow_priority;
}

static void plugin_two_listener_created(struct sockaddr const *laddr,
struct mptcpd_pm *pm)
{
(void) pm;

assert(laddr != NULL);
assert(sockaddr_is_equal(laddr, local_addr));

++call_count.listener_created;
}

static void plugin_two_listener_closed(struct sockaddr const *laddr,
struct mptcpd_pm *pm)
{
(void) pm;

assert(laddr != NULL);
assert(sockaddr_is_equal(laddr, local_addr));

++call_count.listener_closed;
}

void plugin_two_new_interface(struct mptcpd_interface const *i,
struct mptcpd_pm *pm)
{
Expand Down Expand Up @@ -218,6 +240,8 @@ static struct mptcpd_plugin_ops const pm_ops = {
.new_subflow = plugin_two_new_subflow,
.subflow_closed = plugin_two_subflow_closed,
.subflow_priority = plugin_two_subflow_priority,
.listener_created = plugin_two_listener_created,
.listener_closed = plugin_two_listener_closed,
.new_interface = plugin_two_new_interface,
.update_interface = plugin_two_update_interface,
.delete_interface = plugin_two_delete_interface,
Expand Down
20 changes: 20 additions & 0 deletions tests/plugins/security/four.c
Original file line number Diff line number Diff line change
Expand Up @@ -140,6 +140,24 @@ static void plugin_four_subflow_priority(mptcpd_token_t token,
++call_count.subflow_priority;
}

static void plugin_four_listener_created(struct sockaddr const *laddr,
struct mptcpd_pm *pm)
{
(void) laddr;
(void) pm;

++call_count.listener_created;
}

static void plugin_four_listener_closed(struct sockaddr const *laddr,
struct mptcpd_pm *pm)
{
(void) laddr;
(void) pm;

++call_count.listener_closed;
}

static struct mptcpd_plugin_ops const pm_ops = {
.new_connection = plugin_four_new_connection,
.connection_established = plugin_four_connection_established,
Expand All @@ -149,6 +167,8 @@ static struct mptcpd_plugin_ops const pm_ops = {
.new_subflow = plugin_four_new_subflow,
.subflow_closed = plugin_four_subflow_closed,
.subflow_priority = plugin_four_subflow_priority,
.listener_created = plugin_four_listener_created,
.listener_closed = plugin_four_listener_closed,
};

static int plugin_four_init(struct mptcpd_pm *pm)
Expand Down
20 changes: 20 additions & 0 deletions tests/plugins/security/three.c
Original file line number Diff line number Diff line change
Expand Up @@ -140,6 +140,24 @@ static void plugin_three_subflow_priority(mptcpd_token_t token,
++call_count.subflow_priority;
}

static void plugin_three_listener_created(struct sockaddr const *laddr,
struct mptcpd_pm *pm)
{
(void) laddr;
(void) pm;

++call_count.listener_created;
}

static void plugin_three_listener_closed(struct sockaddr const *laddr,
struct mptcpd_pm *pm)
{
(void) laddr;
(void) pm;

++call_count.listener_closed;
}

static struct mptcpd_plugin_ops const pm_ops = {
.new_connection = plugin_three_new_connection,
.connection_established = plugin_three_connection_established,
Expand All @@ -149,6 +167,8 @@ static struct mptcpd_plugin_ops const pm_ops = {
.new_subflow = plugin_three_new_subflow,
.subflow_closed = plugin_three_subflow_closed,
.subflow_priority = plugin_three_subflow_priority,
.listener_created = plugin_three_listener_created,
.listener_closed = plugin_three_listener_closed,
};

static int plugin_three_init(struct mptcpd_pm *pm)
Expand Down

0 comments on commit 67bb520

Please sign in to comment.