diff options
author | Ole Troan <ot@cisco.com> | 2019-04-15 11:27:22 +0200 |
---|---|---|
committer | Florin Coras <florin.coras@gmail.com> | 2019-04-23 18:49:22 +0000 |
commit | 4ff09ae3483593f51faa160829fbcad4c77ed5b3 (patch) | |
tree | f2fa50765a7deaa081d26841437e9e9f24c00337 /src/plugins/igmp | |
parent | 59e0c8f5dc4b9c2b580c68da5595e4ed750194fe (diff) |
API: Python and Unix domain socket improvement
Handle the case where buffer overflows.
Then SOCK_SEQPACKET assumption that multiple API messages
are not returned by recv() is broken. Use SOCK_STREAM for
API exchanges instead.
Add support for running tests over sockets.
make test SOCKET=1
Change-Id: Ibe5fd69b1bf617de4c7ba6cce0a7c2b3f97a2821
Signed-off-by: Ole Troan <ot@cisco.com>
Diffstat (limited to 'src/plugins/igmp')
-rw-r--r-- | src/plugins/igmp/igmp.api | 2 | ||||
-rw-r--r-- | src/plugins/igmp/igmp_api.c | 8 |
2 files changed, 3 insertions, 7 deletions
diff --git a/src/plugins/igmp/igmp.api b/src/plugins/igmp/igmp.api index db47905ae6f..b061c5e1a35 100644 --- a/src/plugins/igmp/igmp.api +++ b/src/plugins/igmp/igmp.api @@ -215,8 +215,6 @@ service { */ define igmp_event { - u32 context; - u32 sw_if_index; vl_api_filter_mode_t filter; vl_api_ip4_address_t saddr; diff --git a/src/plugins/igmp/igmp_api.c b/src/plugins/igmp/igmp_api.c index d619abdd893..548d828267f 100644 --- a/src/plugins/igmp/igmp_api.c +++ b/src/plugins/igmp/igmp_api.c @@ -60,7 +60,7 @@ _(IGMP_CLEAR_INTERFACE, igmp_clear_interface) \ _(IGMP_CLEAR_INTERFACE, igmp_clear_interface) \ _(IGMP_GROUP_PREFIX_SET, igmp_group_prefix_set) \ _(IGMP_GROUP_PREFIX_DUMP, igmp_group_prefix_dump) \ -_(WANT_IGMP_EVENTS, want_igmp_events) \ +_(WANT_IGMP_EVENTS, want_igmp_events) static void vl_api_igmp_listen_t_handler (vl_api_igmp_listen_t * mp) @@ -373,7 +373,7 @@ vl_api_want_igmp_events_t_handler (vl_api_want_igmp_events_t * mp) } rv = VNET_API_ERROR_INVALID_REGISTRATION; -done:; +done: REPLY_MACRO (VL_API_WANT_IGMP_EVENTS_REPLY + im->msg_id_base); } @@ -399,7 +399,6 @@ VL_MSG_API_REAPER_FUNCTION (want_igmp_events_reaper); void send_igmp_event (vl_api_registration_t * rp, - u32 context, igmp_filter_mode_t filter, u32 sw_if_index, const ip46_address_t * saddr, const ip46_address_t * gaddr) @@ -408,7 +407,6 @@ send_igmp_event (vl_api_registration_t * rp, clib_memset (mp, 0, sizeof (*mp)); mp->_vl_msg_id = ntohs ((VL_API_IGMP_EVENT) + igmp_main.msg_id_base); - mp->context = context; mp->sw_if_index = htonl (sw_if_index); mp->filter = htonl (filter); clib_memcpy (&mp->saddr, &saddr->ip4, sizeof (ip4_address_t)); @@ -440,7 +438,7 @@ igmp_event (igmp_filter_mode_t filter, ({ rp = vl_api_client_index_to_registration (api_client->client_index); if (rp) - send_igmp_event (rp, 0, filter, sw_if_index, saddr, gaddr); + send_igmp_event (rp, filter, sw_if_index, saddr, gaddr); })); /* *INDENT-ON* */ } |