hash_set_mem (am->msg_id_by_name, c->name, c->id);
}
-/*
- * vl_msg_api_set_handlers
- * preserve the old API for a while
- */
-void
-vl_msg_api_set_handlers (int id, char *name, void *handler, void *endian,
- format_function_t *format, int size, int traced,
- void *tojson, void *fromjson, void *calc_size)
-{
- vl_msg_api_msg_config_t cfg;
- vl_msg_api_msg_config_t *c = &cfg;
-
- clib_memset (c, 0, sizeof (*c));
-
- c->id = id;
- c->name = name;
- c->handler = handler;
- c->endian = endian;
- c->format_fn = format;
- c->traced = traced;
- c->replay = 1;
- c->message_bounce = 0;
- c->is_mp_safe = 0;
- c->is_autoendian = 0;
- c->tojson = tojson;
- c->fromjson = fromjson;
- c->calc_size = calc_size;
- vl_msg_api_config (c);
-}
-
void
vl_msg_api_clean_handlers (int msg_id)
{
while (!svm_queue_sub (q, (u8 *) &msg, SVM_Q_WAIT, 0))
{
+ VL_MSG_API_UNPOISON ((u8 *) msg);
msgbuf_t *msgbuf = (msgbuf_t *) ((u8 *) msg - offsetof (msgbuf_t, data));
vl_msg_api_handler ((void *) msg, ntohl (msgbuf->data_len));
}
u8 *v = 0;
if (vl_msg_api_max_length (mp) < clib_net_to_host_u32 (astr->length))
- return format (0, "insane astr->length %u%c",
- clib_net_to_host_u32 (astr->length), 0);
+ return format (0, "Invalid astr->length %u > max (%u)%c",
+ clib_net_to_host_u32 (astr->length),
+ vl_msg_api_max_length (mp), 0);
vec_add (v, astr->buf, clib_net_to_host_u32 (astr->length));
return v;
}