]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
PJSIP: TOS values should be represented as decimals in sorcery objects
authorJonathan Rose <jrose@digium.com>
Fri, 14 Mar 2014 16:26:07 +0000 (16:26 +0000)
committerJonathan Rose <jrose@digium.com>
Fri, 14 Mar 2014 16:26:07 +0000 (16:26 +0000)
(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

CHANGES
include/asterisk/acl.h
main/acl.c
res/res_pjsip/config_transport.c
res/res_pjsip/pjsip_configuration.c

diff --git a/CHANGES b/CHANGES
index 86c39521edb95173c38542ec03f2b26867c95957..5854f9a44231003948f377cee91483e990ee3e34 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -22,6 +22,10 @@ ARI
  * The live recording object on recording events now contains a target_uri
    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 ------------
index 502e7f447593c1f84f0e3caa2aee41d7ee3e584e..d1773b6b16b6a916b2b85a3a845800d51326bb60 100644 (file)
@@ -357,17 +357,6 @@ int ast_str2tos(const char *value, 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
  *
index a55e87458da7e605997a25cf6de629855f765e08..c341125fd681afe3d91220a98433ba69cb2a8d14 100644 (file)
@@ -894,12 +894,6 @@ const char *ast_tos2str(unsigned int tos)
        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)
 {
        return ast_get_ip_or_srv(addr, hostname, NULL);
index 1559ab77c464fa5b970911f6734ac5b437f958f1..5fbede2bd0765bb60741e11271b4cfaa536576ff 100644 (file)
@@ -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)
 {
        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;
 }
 
@@ -574,7 +577,7 @@ static int cli_print_body(void *obj, void *arg, int flags)
 
        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",
                ast_sorcery_object_get_id(transport),
                ARRAY_IN_BOUNDS(transport->type, transport_types) ? transport_types[transport->type] : "Unknown",
index 97ce72d57e0d43f3dd4699ee2d00d55c1600f23c..a5bac07fff7a98bf4da4061565af0d494316fd54 100644 (file)
@@ -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)
 {
        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;
 }
 
 static int tos_video_to_str(const void *obj, const intptr_t *args, char **buf)
 {
        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;
 }