Revision
17239
Author
mrene
Date
2010-04-07 13:55:55 -0500 (Wed, 07 Apr 2010)

Log Message

add switch_channel_export_variable_printf

Modified Paths

Diff

Modified: freeswitch/trunk/src/include/switch_channel.h (17238 => 17239)


--- freeswitch/trunk/src/include/switch_channel.h	2010-04-07 17:31:59 UTC (rev 17238)
+++ freeswitch/trunk/src/include/switch_channel.h	2010-04-07 18:55:55 UTC (rev 17239)
@@ -249,7 +249,9 @@
 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
   \param channel channel to retrieve variable from

Modified: freeswitch/trunk/src/switch_channel.c (17238 => 17239)


--- freeswitch/trunk/src/switch_channel.c	2010-04-07 17:31:59 UTC (rev 17238)
+++ freeswitch/trunk/src/switch_channel.c	2010-04-07 18:55:55 UTC (rev 17239)
@@ -768,6 +768,30 @@
 	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)
 {