]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
add switch_channel_export_variable_printf
authorMathieu Rene <mrene@avgs.ca>
Wed, 7 Apr 2010 18:55:55 +0000 (14:55 -0400)
committerMathieu Rene <mrene@avgs.ca>
Wed, 7 Apr 2010 18:55:55 +0000 (14:55 -0400)
src/include/switch_channel.h
src/switch_channel.c

index 5529d9af66045869f5c22b7ec887d2545831d78e..84b0f7fdafab119712e2c44e84552397d50ef670 100644 (file)
@@ -249,6 +249,8 @@ SWITCH_DECLARE(const char *) switch_channel_get_variable_partner(switch_channel_
 SWITCH_DECLARE(switch_status_t) switch_channel_export_variable_var_check(switch_channel_t *channel, const char *varname, const char *value, switch_bool_t var_check, switch_bool_t nolocal);
 
 #define switch_channel_export_variable(_channel, _varname, _value, _nolocal) switch_channel_export_variable_var_check(_channel, _varname, _value, SWITCH_TRUE, _nolocal)
+SWITCH_DECLARE(switch_status_t) switch_channel_export_variable_printf(switch_channel_t *channel, const char *varname, switch_bool_t nolocal, const char *fmt, ...);
+
 
 /*!
   \brief Retrieve a variable from a given channel
index ba9429721a2ceea74e71640bb7c19fcb51886de1..6019836c1590ebcf8968f25e2146fc6f6a64e0b8 100644 (file)
@@ -768,6 +768,30 @@ done:
        return status;
 }
 
+SWITCH_DECLARE(switch_status_t) switch_channel_export_variable_printf(switch_channel_t *channel, const char *varname, switch_bool_t nolocal, const char *fmt, ...)
+{
+       switch_status_t status = SWITCH_STATUS_FALSE;
+       char *data = NULL;
+       va_list ap;
+       int ret;
+       
+       switch_assert(channel != NULL);
+       
+       va_start(ap, fmt);
+       ret = switch_vasprintf(&data, fmt, ap);
+       va_end(ap);
+       
+       if (ret == -1) {
+               return SWITCH_STATUS_FALSE;
+       }
+       
+       status = switch_channel_export_variable(channel, varname, data, nolocal);
+       
+       free(data);
+       
+       return status;
+}
+
 SWITCH_DECLARE(switch_status_t) switch_channel_set_variable_var_check(switch_channel_t *channel,
                                                                                                                                          const char *varname, const char *value, switch_bool_t var_check)
 {