提交 b2b50a10 authored 作者: David Yat Sin's avatar David Yat Sin

freetdm: Removed unnecessary parameter copy

	 Added ftdm_raw_data_t
上级 f8e1fa66
...@@ -4049,7 +4049,7 @@ done: ...@@ -4049,7 +4049,7 @@ done:
return status; return status;
} }
FT_DECLARE(ftdm_iterator_t) *get_iterator(ftdm_iterator_type_t type, ftdm_iterator_t *iter) FT_DECLARE(ftdm_iterator_t) *ftdm_get_iterator(ftdm_iterator_type_t type, ftdm_iterator_t *iter)
{ {
int allocated = 0; int allocated = 0;
if (iter) { if (iter) {
...@@ -4075,7 +4075,7 @@ FT_DECLARE(ftdm_iterator_t) *get_iterator(ftdm_iterator_type_t type, ftdm_iterat ...@@ -4075,7 +4075,7 @@ FT_DECLARE(ftdm_iterator_t) *get_iterator(ftdm_iterator_type_t type, ftdm_iterat
FT_DECLARE(ftdm_iterator_t *) ftdm_span_get_chan_iterator(const ftdm_span_t *span, ftdm_iterator_t *iter) FT_DECLARE(ftdm_iterator_t *) ftdm_span_get_chan_iterator(const ftdm_span_t *span, ftdm_iterator_t *iter)
{ {
if (!(iter = get_iterator(FTDM_ITERATOR_CHANS, iter))) { if (!(iter = ftdm_get_iterator(FTDM_ITERATOR_CHANS, iter))) {
return NULL; return NULL;
} }
iter->pvt.chaniter.index = 1; iter->pvt.chaniter.index = 1;
...@@ -6100,9 +6100,6 @@ FT_DECLARE(ftdm_status_t) ftdm_channel_save_usrmsg(ftdm_channel_t *ftdmchan, ftd ...@@ -6100,9 +6100,6 @@ FT_DECLARE(ftdm_status_t) ftdm_channel_save_usrmsg(ftdm_channel_t *ftdmchan, ftd
memcpy(ftdmchan->usrmsg, usrmsg, sizeof(ftdm_usrmsg_t)); memcpy(ftdmchan->usrmsg, usrmsg, sizeof(ftdm_usrmsg_t));
if (usrmsg->raw.data) { if (usrmsg->raw.data) {
ftdmchan->usrmsg->raw.data = usrmsg->raw.data;
ftdmchan->usrmsg->raw.len = usrmsg->raw.len;
usrmsg->raw.data = NULL; usrmsg->raw.data = NULL;
usrmsg->raw.len = 0; usrmsg->raw.len = 0;
} }
......
...@@ -92,7 +92,7 @@ FT_DECLARE(ftdm_iterator_t *) ftdm_sigmsg_get_var_iterator(const ftdm_sigmsg_t * ...@@ -92,7 +92,7 @@ FT_DECLARE(ftdm_iterator_t *) ftdm_sigmsg_get_var_iterator(const ftdm_sigmsg_t *
return NULL; return NULL;
} }
if (!(iter = get_iterator(FTDM_ITERATOR_VARS, iter))) { if (!(iter = ftdm_get_iterator(FTDM_ITERATOR_VARS, iter))) {
return NULL; return NULL;
} }
iter->pvt.hashiter = hashiter; iter->pvt.hashiter = hashiter;
......
...@@ -550,6 +550,11 @@ typedef struct { ...@@ -550,6 +550,11 @@ typedef struct {
typedef void * ftdm_variable_container_t; typedef void * ftdm_variable_container_t;
typedef struct {
ftdm_size_t len;
void *data;
} ftdm_raw_data_t;
/*! \brief Generic signaling message received from the stack */ /*! \brief Generic signaling message received from the stack */
struct ftdm_sigmsg { struct ftdm_sigmsg {
ftdm_signal_event_t event_id; /*!< The type of message */ ftdm_signal_event_t event_id; /*!< The type of message */
...@@ -565,20 +570,13 @@ struct ftdm_sigmsg { ...@@ -565,20 +570,13 @@ struct ftdm_sigmsg {
ftdm_event_collected_t collected; /*!< valid if event_id is FTDM_SIGEVENT_COLLECTED_DIGIT */ ftdm_event_collected_t collected; /*!< valid if event_id is FTDM_SIGEVENT_COLLECTED_DIGIT */
ftdm_event_indication_completed_t indication_completed; /*!< valid if the event_id is FTDM_SIGEVENT_INDICATION_COMPLETED */ ftdm_event_indication_completed_t indication_completed; /*!< valid if the event_id is FTDM_SIGEVENT_INDICATION_COMPLETED */
} ev_data; } ev_data;
struct { ftdm_raw_data_t raw;
ftdm_size_t len; /*!< Data len */
void *data; /*!< Signaling module specific data */
} raw;
}; };
/*! \brief Generic user message sent to the stack */ /*! \brief Generic user message sent to the stack */
struct ftdm_usrmsg { struct ftdm_usrmsg {
uint32_t call_id; /*!< unique call id for this call */
ftdm_variable_container_t variables; ftdm_variable_container_t variables;
struct { ftdm_raw_data_t raw;
ftdm_size_t len; /*!< Data len */
void *data; /*!< Signaling module specific data */
} raw;
}; };
/*! \brief Crash policy /*! \brief Crash policy
......
...@@ -590,7 +590,7 @@ FT_DECLARE(ftdm_status_t) ftdm_channel_open_chan(ftdm_channel_t *ftdmchan); ...@@ -590,7 +590,7 @@ FT_DECLARE(ftdm_status_t) ftdm_channel_open_chan(ftdm_channel_t *ftdmchan);
FT_DECLARE(void) ftdm_ack_indication(ftdm_channel_t *ftdmchan, ftdm_channel_indication_t indication, ftdm_status_t status); FT_DECLARE(void) ftdm_ack_indication(ftdm_channel_t *ftdmchan, ftdm_channel_indication_t indication, ftdm_status_t status);
FT_DECLARE(ftdm_iterator_t) *get_iterator(ftdm_iterator_type_t type, ftdm_iterator_t *iter); FT_DECLARE(ftdm_iterator_t) *ftdm_get_iterator(ftdm_iterator_type_t type, ftdm_iterator_t *iter);
/*! /*!
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论