Module: kamailio Branch: master Commit: 3d002d8f42eb24e978bc86cd3b4565872e65eb1e URL: https://github.com/kamailio/kamailio/commit/3d002d8f42eb24e978bc86cd3b4565872e65eb1e
Author: Seudin Kasumovic <[email protected]> Committer: Seudin Kasumovic <[email protected]> Date: 2016-04-26T15:55:30+02:00 erlang: extend error message function with variable number of arguments - wrap around vsnprintf --- Modified: modules/erlang/handle_emsg.c --- Diff: https://github.com/kamailio/kamailio/commit/3d002d8f42eb24e978bc86cd3b4565872e65eb1e.diff Patch: https://github.com/kamailio/kamailio/commit/3d002d8f42eb24e978bc86cd3b4565872e65eb1e.patch --- diff --git a/modules/erlang/handle_emsg.c b/modules/erlang/handle_emsg.c index 0d03d97..4dbb0a2 100644 --- a/modules/erlang/handle_emsg.c +++ b/modules/erlang/handle_emsg.c @@ -22,6 +22,7 @@ */ #include <stdio.h> +#include <stdarg.h> #include <string.h> #include <ei.h> @@ -43,7 +44,7 @@ int handle_req_ref_tuple(cnode_handler_t *phandler, erlang_msg * msg); int handle_rpc_response(cnode_handler_t *phandler, erlang_msg * msg, int arity); int handle_rex_call(cnode_handler_t *phandler,erlang_ref_ex_t *ref, erlang_pid *pid); int handle_net_kernel(cnode_handler_t *phandler, erlang_msg * msg); -void encode_error_msg(ei_x_buff *response, erlang_ref_ex_t *ref, const char *type, const char *msg ); +void encode_error_msg(ei_x_buff *response, erlang_ref_ex_t *ref, const char *type, const char *msg, ...); int handle_reg_send(cnode_handler_t *phandler, erlang_msg * msg) { @@ -826,8 +827,16 @@ int handle_erlang_msg(cnode_handler_t *phandler, erlang_msg * msg) return 0; } -void encode_error_msg(ei_x_buff *response, erlang_ref_ex_t *ref, const char *type, const char *msg ) +void encode_error_msg(ei_x_buff *response, erlang_ref_ex_t *ref, const char *type, const char *msg, ... ) { + char buffer[256]; + va_list args; + va_start (args, msg); + + vsnprintf (buffer, 255, msg, args); + + va_end (args); + ei_x_encode_tuple_header(response, 2); if (ref->with_node) @@ -842,5 +851,5 @@ void encode_error_msg(ei_x_buff *response, erlang_ref_ex_t *ref, const char *typ ei_x_encode_tuple_header(response,2); ei_x_encode_atom(response, type); - ei_x_encode_string(response, msg); + ei_x_encode_string(response, buffer); } _______________________________________________ sr-dev mailing list [email protected] http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev
