diff options
author | Dave Barach <dave@barachs.net> | 2020-04-14 09:52:26 -0400 |
---|---|---|
committer | Florin Coras <florin.coras@gmail.com> | 2020-04-14 21:40:46 +0000 |
commit | 69eeadc03f30c9fb3fe1bb7e2eeb6b04d1bcc596 (patch) | |
tree | 69b5310a89ee9e556b6edc5b1a7f4c6ecda3add4 /src/vlibapi | |
parent | 1bd461615f31022a7b721990b09b1dcdd543b339 (diff) |
vat: fix socket connection
vat_socket_connect(...) needs to set the api main client index. The M2
helper macro needed to allocate a buffer of size sizeof(*mp) + n, not
sizeof(*mp).
Type: fix
Signed-off-by: Dave Barach <dave@barachs.net>
Change-Id: I7abf35d2ba045d82765bd27f88899287fd351602
Diffstat (limited to 'src/vlibapi')
-rw-r--r-- | src/vlibapi/vat_helper_macros.h | 30 |
1 files changed, 15 insertions, 15 deletions
diff --git a/src/vlibapi/vat_helper_macros.h b/src/vlibapi/vat_helper_macros.h index 0abfa73851f..239e2091dc1 100644 --- a/src/vlibapi/vat_helper_macros.h +++ b/src/vlibapi/vat_helper_macros.h @@ -28,9 +28,9 @@ do { \ mp = vl_socket_client_msg_alloc (sizeof(*mp)); \ else \ mp = vl_msg_api_alloc_as_if_client(sizeof(*mp)); \ - clib_memset (mp, 0, sizeof (*mp)); \ + clib_memset (mp, 0, sizeof (*mp)); \ mp->_vl_msg_id = ntohs (VL_API_##T+__plugin_msg_base); \ - mp->client_index = vam->my_client_index; \ + mp->client_index = vam->my_client_index; \ } while(0); /* MPING: construct a control-ping message, don't send it yet */ @@ -38,35 +38,35 @@ do { \ do { \ socket_client_main_t *scm = vam->socket_client_main; \ vam->result_ready = 0; \ - if (scm && scm->socket_enable) \ + if (scm && scm->socket_enable) \ mp = vl_socket_client_msg_alloc (sizeof(*mp)); \ else \ mp = vl_msg_api_alloc_as_if_client(sizeof(*mp)); \ - clib_memset (mp, 0, sizeof (*mp)); \ + clib_memset (mp, 0, sizeof (*mp)); \ mp->_vl_msg_id = ntohs (VL_API_##T+__plugin_msg_base); \ mp->client_index = vam->my_client_index; \ if (scm) \ - scm->control_pings_outstanding++; \ + scm->control_pings_outstanding++; \ } while(0); #define M2(T, mp, n) \ do { \ socket_client_main_t *scm = vam->socket_client_main; \ vam->result_ready = 0; \ - if (scm && scm->socket_enable) \ - mp = vl_socket_client_msg_alloc (sizeof(*mp)); \ + if (scm && scm->socket_enable) \ + mp = vl_socket_client_msg_alloc (sizeof(*mp) + n); \ else \ mp = vl_msg_api_alloc_as_if_client(sizeof(*mp) + n); \ - clib_memset (mp, 0, sizeof (*mp)); \ + clib_memset (mp, 0, sizeof (*mp)); \ mp->_vl_msg_id = ntohs (VL_API_##T+__plugin_msg_base); \ - mp->client_index = vam->my_client_index; \ + mp->client_index = vam->my_client_index; \ } while(0); /* S: send a message */ #define S(mp) \ do { \ socket_client_main_t *scm = vam->socket_client_main; \ - if (scm && scm->socket_enable) \ + if (scm && scm->socket_enable) \ vl_socket_client_write (); \ else \ vl_msg_api_send_shmem (vam->vl_input_queue, (u8 *)&mp); \ @@ -79,7 +79,7 @@ do { \ socket_client_main_t *scm = vam->socket_client_main; \ ret = -99; \ \ - if (scm && scm->socket_enable) \ + if (scm && scm->socket_enable) \ vl_socket_client_read (5); \ while (vat_time_now (vam) < timeout) { \ if (vam->result_ready == 1) { \ @@ -87,17 +87,17 @@ do { \ break; \ } \ vat_suspend (vam->vlib_main, 1e-5); \ - } \ + } \ } while(0); -/* W2: wait for results, with timeout */ +/* W2: wait for results, with timeout */ \ #define W2(ret, body) \ do { \ f64 timeout = vat_time_now (vam) + 1.0; \ socket_client_main_t *scm = vam->socket_client_main; \ ret = -99; \ \ - if (scm && scm->socket_enable) \ + if (scm && scm->socket_enable) \ vl_socket_client_read (5); \ while (vat_time_now (vam) < timeout) { \ if (vam->result_ready == 1) { \ @@ -106,7 +106,7 @@ do { \ break; \ } \ vat_suspend (vam->vlib_main, 1e-5); \ - } \ + } \ } while(0); #define VAT_PLUGIN_REGISTER(plug) \ |