[Freeswitch-svn] [commit] r6911 - in freeswitch/trunk/src: include mod/dialplans/mod_dialplan_asterisk

Freeswitch SVN mikej at freeswitch.org
Wed Dec 19 22:07:01 EST 2007


Author: mikej
Date: Wed Dec 19 22:07:00 2007
New Revision: 6911

Modified:
   freeswitch/trunk/src/include/switch_caller.h
   freeswitch/trunk/src/include/switch_core.h
   freeswitch/trunk/src/include/switch_platform.h
   freeswitch/trunk/src/mod/dialplans/mod_dialplan_asterisk/mod_dialplan_asterisk.c

Log:
add more function details for code analysis.

Modified: freeswitch/trunk/src/include/switch_caller.h
==============================================================================
--- freeswitch/trunk/src/include/switch_caller.h	(original)
+++ freeswitch/trunk/src/include/switch_caller.h	Wed Dec 19 22:07:00 2007
@@ -137,7 +137,9 @@
   \param extension_number extension number
   \return a new extension object allocated from the session's memory pool
 */
-SWITCH_DECLARE(switch_caller_extension_t *) switch_caller_extension_new(switch_core_session_t *session, const char *extension_name, const char *extension_number);
+SWITCH_DECLARE(switch_caller_extension_t *) switch_caller_extension_new(_In_ switch_core_session_t *session,
+																		_In_z_ const char *extension_name,
+																		_In_z_ const char *extension_number);
 
 /*!
   \brief Add an application (instruction) to the given extension
@@ -146,8 +148,10 @@
   \param application_name the name of the application
   \param extra_data optional argument to the application
 */
-SWITCH_DECLARE(void) switch_caller_extension_add_application(switch_core_session_t *session,
-															 switch_caller_extension_t *caller_extension, const char *application_name, const char *extra_data);
+SWITCH_DECLARE(void) switch_caller_extension_add_application(_In_ switch_core_session_t *session,
+															 _In_ switch_caller_extension_t *caller_extension,
+															 _In_z_ const char *application_name,
+															 _In_z_ const char *extra_data);
 
 
 /*!
@@ -156,7 +160,8 @@
   \param name the name
   \note this function is meant for situations where the name paramater is the contents of the variable
 */
-SWITCH_DECLARE(const char *) switch_caller_get_field_by_name(switch_caller_profile_t *caller_profile, const char *name);
+_Check_return_ _Ret_opt_z_ SWITCH_DECLARE(const char *) switch_caller_get_field_by_name(_In_ switch_caller_profile_t *caller_profile,
+																						_In_z_ const char *name);
 
 /*!
   \brief Create a new caller profile object
@@ -174,30 +179,32 @@
   \param destination_number destination number
   \return a new profile object allocated from the session's memory pool
 */
-SWITCH_DECLARE(switch_caller_profile_t *) switch_caller_profile_new(switch_memory_pool_t *pool,
-																	const char *username,
-																	const char *dialplan,
-																	const char *caller_id_name,
-																	const char *caller_id_number,
-																	const char *network_addr,
-																	const char *ani,
-																	const char *aniii,
-																	const char *rdnis, const char *source, const char *context,
-																	const char *destination_number);
+SWITCH_DECLARE(switch_caller_profile_t *) switch_caller_profile_new(_In_ switch_memory_pool_t *pool,
+																	_In_opt_z_ const char *username,
+																	_In_opt_z_ const char *dialplan,
+																	_In_opt_z_ const char *caller_id_name,
+																	_In_opt_z_ const char *caller_id_number,
+																	_In_opt_z_ const char *network_addr,
+																	_In_opt_z_ const char *ani,
+																	_In_opt_z_ const char *aniii,
+																	_In_opt_z_ const char *rdnis,
+																	_In_opt_z_ const char *source,
+																	_In_opt_z_ const char *context,
+																	_In_opt_z_ const char *destination_number);
 
 /*!
   \brief Clone an existing caller profile object
   \param session session associated with the profile (bound by scope)
   \param tocopy the existing profile
 */
-SWITCH_DECLARE(switch_caller_profile_t *) switch_caller_profile_clone(switch_core_session_t *session, switch_caller_profile_t *tocopy);
+SWITCH_DECLARE(switch_caller_profile_t *) switch_caller_profile_clone(_In_ switch_core_session_t *session, _In_ switch_caller_profile_t *tocopy);
 
 /*!
   \brief Duplicate an existing caller profile object
   \param pool pool to duplicate with
   \param tocopy the existing profile
 */
-SWITCH_DECLARE(switch_caller_profile_t *) switch_caller_profile_dup(switch_memory_pool_t *pool, switch_caller_profile_t *tocopy);
+SWITCH_DECLARE(switch_caller_profile_t *) switch_caller_profile_dup(_In_ switch_memory_pool_t *pool, _In_ switch_caller_profile_t *tocopy);
 
 /*!
   \brief Add headers to an existing event in regards to a specific profile
@@ -206,7 +213,9 @@
   \param event the event to add the information to
 */
 
-SWITCH_DECLARE(void) switch_caller_profile_event_set_data(switch_caller_profile_t *caller_profile, const char *prefix, switch_event_t *event);
+SWITCH_DECLARE(void) switch_caller_profile_event_set_data(_In_ switch_caller_profile_t *caller_profile,
+														  _In_opt_z_ const char *prefix,
+														  _In_ switch_event_t *event);
 
 SWITCH_END_EXTERN_C
 /** @} */

Modified: freeswitch/trunk/src/include/switch_core.h
==============================================================================
--- freeswitch/trunk/src/include/switch_core.h	(original)
+++ freeswitch/trunk/src/include/switch_core.h	Wed Dec 19 22:07:00 2007
@@ -128,49 +128,52 @@
   \param new_bug pointer to assign new bug to
   \return SWITCH_STATUS_SUCCESS if the operation was a success
 */
-SWITCH_DECLARE(switch_status_t) switch_core_media_bug_add(switch_core_session_t *session,
-														  switch_media_bug_callback_t callback,
-														  void *user_data, time_t stop_time, switch_media_bug_flag_t flags, switch_media_bug_t **new_bug);
+SWITCH_DECLARE(switch_status_t) switch_core_media_bug_add(_In_ switch_core_session_t *session,
+														  _In_ switch_media_bug_callback_t callback,
+														  _In_opt_ void *user_data,
+														  _In_ time_t stop_time,
+														  _In_ switch_media_bug_flag_t flags,
+														  _Out_ switch_media_bug_t **new_bug);
 /*!
   \brief Obtain private data from a media bug
   \param bug the bug to get the data from
   \return the private data
 */
-SWITCH_DECLARE(void *) switch_core_media_bug_get_user_data(switch_media_bug_t *bug);
+SWITCH_DECLARE(void *) switch_core_media_bug_get_user_data(_In_ switch_media_bug_t *bug);
 
 /*!
   \brief Obtain a replace frame from a media bug
   \param bug the bug to get the data from
 */
-SWITCH_DECLARE(switch_frame_t *) switch_core_media_bug_get_write_replace_frame(switch_media_bug_t *bug);
+SWITCH_DECLARE(switch_frame_t *) switch_core_media_bug_get_write_replace_frame(_In_ switch_media_bug_t *bug);
 
 /*!
   \brief Set a return replace frame
   \param bug the bug to set the frame on
   \param frame the frame to set
 */
-SWITCH_DECLARE(void) switch_core_media_bug_set_write_replace_frame(switch_media_bug_t *bug, switch_frame_t *frame);
+SWITCH_DECLARE(void) switch_core_media_bug_set_write_replace_frame(_In_ switch_media_bug_t *bug, _In_ switch_frame_t *frame);
 
 /*!
   \brief Obtain a replace frame from a media bug
   \param bug the bug to get the data from
 */
-SWITCH_DECLARE(switch_frame_t *) switch_core_media_bug_get_read_replace_frame(switch_media_bug_t *bug);
+SWITCH_DECLARE(switch_frame_t *) switch_core_media_bug_get_read_replace_frame(_In_ switch_media_bug_t *bug);
 
 /*!
   \brief Obtain the session from a media bug
   \param bug the bug to get the data from
 */
-SWITCH_DECLARE(switch_core_session_t *) switch_core_media_bug_get_session(switch_media_bug_t *bug);
+SWITCH_DECLARE(switch_core_session_t *) switch_core_media_bug_get_session(_In_ switch_media_bug_t *bug);
 
-SWITCH_DECLARE(uint32_t) switch_core_media_bug_test_flag(switch_media_bug_t *bug, uint32_t flag);
+SWITCH_DECLARE(uint32_t) switch_core_media_bug_test_flag(_In_ switch_media_bug_t *bug, _In_ uint32_t flag);
 
 /*!
   \brief Set a return replace frame
   \param bug the bug to set the frame on
   \param frame the frame to set
 */
-SWITCH_DECLARE(void) switch_core_media_bug_set_read_replace_frame(switch_media_bug_t *bug, switch_frame_t *frame);
+SWITCH_DECLARE(void) switch_core_media_bug_set_read_replace_frame(_In_ switch_media_bug_t *bug, _In_ switch_frame_t *frame);
 
 /*!
   \brief Remove a media bug from the session
@@ -178,20 +181,20 @@
   \param bug bug to remove
   \return SWITCH_STATUS_SUCCESS if the operation was a success
 */
-SWITCH_DECLARE(switch_status_t) switch_core_media_bug_remove(switch_core_session_t *session, switch_media_bug_t **bug);
+SWITCH_DECLARE(switch_status_t) switch_core_media_bug_remove(_In_ switch_core_session_t *session, _Inout_ switch_media_bug_t **bug);
 
 /*!
   \brief Close and destroy a media bug
   \param bug bug to remove
   \return SWITCH_STATUS_SUCCESS if the operation was a success
 */
-SWITCH_DECLARE(switch_status_t) switch_core_media_bug_close(switch_media_bug_t **bug);
+SWITCH_DECLARE(switch_status_t) switch_core_media_bug_close(_Inout_ switch_media_bug_t **bug);
 /*!
   \brief Remove all media bugs from the session
   \param session the session to remove the bugs from
   \return SWITCH_STATUS_SUCCESS if the operation was a success
 */
-SWITCH_DECLARE(switch_status_t) switch_core_media_bug_remove_all(switch_core_session_t *session);
+SWITCH_DECLARE(switch_status_t) switch_core_media_bug_remove_all(_In_ switch_core_session_t *session);
 
 /*!
   \brief Read a frame from the bug
@@ -199,7 +202,7 @@
   \param frame the frame to write the data to
   \return the amount of data 
 */
-SWITCH_DECLARE(switch_status_t) switch_core_media_bug_read(switch_media_bug_t *bug, switch_frame_t *frame);
+SWITCH_DECLARE(switch_status_t) switch_core_media_bug_read(_In_ switch_media_bug_t *bug, _In_ switch_frame_t *frame);
 
 ///\}
 

Modified: freeswitch/trunk/src/include/switch_platform.h
==============================================================================
--- freeswitch/trunk/src/include/switch_platform.h	(original)
+++ freeswitch/trunk/src/include/switch_platform.h	Wed Dec 19 22:07:00 2007
@@ -303,10 +303,14 @@
 #define _In_
 #define _In_z_
 #define _In_opt_z_
+#define _In_opt_
 #define _Printf_format_string_
 #define _Ret_opt_z_
 #define _Ret_z_
+#define _Out_opt_
+#define _Out_
 #define _Check_return_
+#define _Inout_
 #endif
 
 

Modified: freeswitch/trunk/src/mod/dialplans/mod_dialplan_asterisk/mod_dialplan_asterisk.c
==============================================================================
--- freeswitch/trunk/src/mod/dialplans/mod_dialplan_asterisk/mod_dialplan_asterisk.c	(original)
+++ freeswitch/trunk/src/mod/dialplans/mod_dialplan_asterisk/mod_dialplan_asterisk.c	Wed Dec 19 22:07:00 2007
@@ -282,6 +282,10 @@
 				switch_regex_safe_free(re);
 
 				if (!extension) {
+					if (switch_strlen_zero(field_data)) {
+						switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_CRIT, "No extension!\n");
+						break;
+					}
 					if ((extension = switch_caller_extension_new(session, field_data, field_data)) == 0) {
 						switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_CRIT, "memory error!\n");
 						break;



More information about the Freeswitch-svn mailing list