mirror of
https://github.com/asterisk/asterisk.git
synced 2025-10-05 04:32:44 +00:00
PJSIP: TOS values should be represented as decimals in sorcery objects
(closes issue ASTERISK-23235) Reported by: George Joseph Review: https://reviewboard.asterisk.org/r/3324/ git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/12@410574 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
4
CHANGES
4
CHANGES
@@ -22,6 +22,10 @@ ARI
|
|||||||
* The live recording object on recording events now contains a target_uri
|
* The live recording object on recording events now contains a target_uri
|
||||||
field which contains the URI of what is being recorded.
|
field which contains the URI of what is being recorded.
|
||||||
|
|
||||||
|
res_pjsip
|
||||||
|
------------------
|
||||||
|
* transport and endpoint ToS options (tos, tos_audio, and tos_video) may now
|
||||||
|
be set as the named set of ToS values (cs0-cs7, af11-af43, ef).
|
||||||
|
|
||||||
------------------------------------------------------------------------------
|
------------------------------------------------------------------------------
|
||||||
--- Functionality changes from Asterisk 12.0.0 to Asterisk 12.1.0 ------------
|
--- Functionality changes from Asterisk 12.0.0 to Asterisk 12.1.0 ------------
|
||||||
|
@@ -357,17 +357,6 @@ int ast_str2tos(const char *value, unsigned int *tos);
|
|||||||
*/
|
*/
|
||||||
const char *ast_tos2str(unsigned int tos);
|
const char *ast_tos2str(unsigned int tos);
|
||||||
|
|
||||||
/*!
|
|
||||||
* \brief Convert a TOS value into its string representation
|
|
||||||
* and create a dynamically allocated copy
|
|
||||||
*
|
|
||||||
* \param tos The TOS value to look up
|
|
||||||
* \param buf pointer to character pointer where string will be duplicated to
|
|
||||||
*
|
|
||||||
* \note The string allocated at buf must be free'd
|
|
||||||
*/
|
|
||||||
void ast_tos2str_buf(unsigned int tos, char **buf);
|
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* \brief Retrieve a named ACL
|
* \brief Retrieve a named ACL
|
||||||
*
|
*
|
||||||
|
@@ -894,12 +894,6 @@ const char *ast_tos2str(unsigned int tos)
|
|||||||
return "unknown";
|
return "unknown";
|
||||||
}
|
}
|
||||||
|
|
||||||
void ast_tos2str_buf(unsigned int tos, char **buf)
|
|
||||||
{
|
|
||||||
const char *tos_string = ast_tos2str(tos);
|
|
||||||
*buf = ast_strdup(tos_string);
|
|
||||||
}
|
|
||||||
|
|
||||||
int ast_get_ip(struct ast_sockaddr *addr, const char *hostname)
|
int ast_get_ip(struct ast_sockaddr *addr, const char *hostname)
|
||||||
{
|
{
|
||||||
return ast_get_ip_or_srv(addr, hostname, NULL);
|
return ast_get_ip_or_srv(addr, hostname, NULL);
|
||||||
|
@@ -502,7 +502,10 @@ static int transport_tos_handler(const struct aco_option *opt, struct ast_variab
|
|||||||
static int tos_to_str(const void *obj, const intptr_t *args, char **buf)
|
static int tos_to_str(const void *obj, const intptr_t *args, char **buf)
|
||||||
{
|
{
|
||||||
const struct ast_sip_transport *transport = obj;
|
const struct ast_sip_transport *transport = obj;
|
||||||
ast_tos2str_buf(transport->tos, buf);
|
|
||||||
|
if (ast_asprintf(buf, "%d", transport->tos) == -1) {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -574,7 +577,7 @@ static int cli_print_body(void *obj, void *arg, int flags)
|
|||||||
|
|
||||||
pj_sockaddr_print(&transport->host, hoststr, sizeof(hoststr), 3);
|
pj_sockaddr_print(&transport->host, hoststr, sizeof(hoststr), 3);
|
||||||
|
|
||||||
ast_str_append(&context->output_buffer, 0, "%*s: %-21s %6s %5x %5x %s\n",
|
ast_str_append(&context->output_buffer, 0, "%*s: %-21s %6s %5d %5d %s\n",
|
||||||
CLI_INDENT_TO_SPACES(context->indent_level), "Transport",
|
CLI_INDENT_TO_SPACES(context->indent_level), "Transport",
|
||||||
ast_sorcery_object_get_id(transport),
|
ast_sorcery_object_get_id(transport),
|
||||||
ARRAY_IN_BOUNDS(transport->type, transport_types) ? transport_types[transport->type] : "Unknown",
|
ARRAY_IN_BOUNDS(transport->type, transport_types) ? transport_types[transport->type] : "Unknown",
|
||||||
|
@@ -791,14 +791,20 @@ static int tos_handler(const struct aco_option *opt,
|
|||||||
static int tos_audio_to_str(const void *obj, const intptr_t *args, char **buf)
|
static int tos_audio_to_str(const void *obj, const intptr_t *args, char **buf)
|
||||||
{
|
{
|
||||||
const struct ast_sip_endpoint *endpoint = obj;
|
const struct ast_sip_endpoint *endpoint = obj;
|
||||||
ast_tos2str_buf(endpoint->media.tos_audio, buf);
|
|
||||||
|
if (ast_asprintf(buf, "%d", endpoint->media.tos_audio) == -1) {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int tos_video_to_str(const void *obj, const intptr_t *args, char **buf)
|
static int tos_video_to_str(const void *obj, const intptr_t *args, char **buf)
|
||||||
{
|
{
|
||||||
const struct ast_sip_endpoint *endpoint = obj;
|
const struct ast_sip_endpoint *endpoint = obj;
|
||||||
ast_tos2str_buf(endpoint->media.tos_video, buf);
|
|
||||||
|
if (ast_asprintf(buf, "%d", endpoint->media.tos_video) == -1) {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user