chan_sip: Fix order of variables specified in SIPNotify action

Prior to this patch, sequential variables would be ordered in reverse
from the order specified in the manager action.

Review: https://reviewboard.asterisk.org/r/3588/
........

Merged revisions 415359 from http://svn.asterisk.org/svn/asterisk/branches/1.8
........

Merged revisions 415390 from http://svn.asterisk.org/svn/asterisk/branches/11


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/12@415410 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
Jonathan Rose
2014-06-06 21:35:09 +00:00
parent 913110770a
commit 9608543a7a
5 changed files with 58 additions and 2 deletions

View File

@@ -559,6 +559,16 @@ int ast_realtime_enabled(void);
*/
struct ast_variable *ast_variables_dup(struct ast_variable *var);
/*!
* \brief Reverse a variable list
* \param var the linked list of variables to reverse
* \return The head of the reversed variable list
*
* \note The variable list var is not preserved in this function and should
* not be used after reversing it.
*/
struct ast_variable *ast_variables_reverse(struct ast_variable *var);
/*!
* \brief Free variable list
* \param var the linked list of variables to free

View File

@@ -260,9 +260,21 @@ int __ast_manager_event_multichan(int category, const char *event, int chancount
/*! \brief Get header from mananger transaction */
const char *astman_get_header(const struct message *m, char *var);
/*! \brief Get a linked list of the Variable: headers */
/*! \brief Get a linked list of the Variable: headers
*
* \note Order of variables is reversed from the order they are specified in
* the manager message
*/
struct ast_variable *astman_get_variables(const struct message *m);
enum variable_orders {
ORDER_NATURAL,
ORDER_REVERSE
};
/*! \brief Get a linked list of the Variable: headers with order specified */
struct ast_variable *astman_get_variables_order(const struct message *m, enum variable_orders order);
/*! \brief Send error in manager transaction */
void astman_send_error(struct mansession *s, const struct message *m, char *error);