Author: kharwell Date: Fri Mar 13 09:48:40 2015 New Revision: 432868 URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=432868 Log: Revert - res_pjsip: Allow configuration of endpoint identifier query order
Due to a break in binary compatibility with some other modules these changes are being reverted until the issue can be resolved. ASTERISK-24840 Reported by: Mark Michelson Modified: branches/13/CHANGES branches/13/configs/samples/pjsip.conf.sample branches/13/contrib/ast-db-manage/config/versions/45e3f47c6c44_add_pjsip_endpoint_identifier_order.py branches/13/include/asterisk/res_pjsip.h branches/13/res/res_pjsip.c branches/13/res/res_pjsip/config_global.c branches/13/res/res_pjsip_endpoint_identifier_anonymous.c branches/13/res/res_pjsip_endpoint_identifier_ip.c branches/13/res/res_pjsip_endpoint_identifier_user.c Modified: branches/13/CHANGES URL: http://svnview.digium.com/svn/asterisk/branches/13/CHANGES?view=diff&rev=432868&r1=432867&r2=432868 ============================================================================== --- branches/13/CHANGES (original) +++ branches/13/CHANGES Fri Mar 13 09:48:40 2015 @@ -25,13 +25,6 @@ on the channel to a specified endpoint or destination. In the case of SIP technologies, this is either a 302 Redirect response to an on-going INVITE dialog or a SIP REFER request. - -res_pjsip ------------------- - * A new 'endpoint_identifier_order' option has been added that allows one to - set the order by which endpoint identifiers are processed and checked. This - option is specified under the 'global' type configuration section. - ------------------------------------------------------------------------------ --- Functionality changes from Asterisk 13.1.0 to Asterisk 13.2.0 ------------ Modified: branches/13/configs/samples/pjsip.conf.sample URL: http://svnview.digium.com/svn/asterisk/branches/13/configs/samples/pjsip.conf.sample?view=diff&rev=432868&r1=432867&r2=432868 ============================================================================== --- branches/13/configs/samples/pjsip.conf.sample (original) +++ branches/13/configs/samples/pjsip.conf.sample Fri Mar 13 09:48:40 2015 @@ -854,10 +854,6 @@ ;keep_alive_interval=20 ; The interval (in seconds) at which to send keepalive ; messages on all active connection-oriented transports ; (default: "0") -;endpoint_identifier_order=ip,username,anonymous - ; The order by which endpoint identifiers are given priority. - ; Identifier names are derived from res_pjsip_endpoint_identifier_* - ; modules. (default: ip,username,anonymous) ; MODULE PROVIDING BELOW SECTION(S): res_pjsip_acl Modified: branches/13/contrib/ast-db-manage/config/versions/45e3f47c6c44_add_pjsip_endpoint_identifier_order.py URL: http://svnview.digium.com/svn/asterisk/branches/13/contrib/ast-db-manage/config/versions/45e3f47c6c44_add_pjsip_endpoint_identifier_order.py?view=diff&rev=432868&r1=432867&r2=432868 ============================================================================== --- branches/13/contrib/ast-db-manage/config/versions/45e3f47c6c44_add_pjsip_endpoint_identifier_order.py (original) +++ branches/13/contrib/ast-db-manage/config/versions/45e3f47c6c44_add_pjsip_endpoint_identifier_order.py Fri Mar 13 09:48:40 2015 @@ -1,21 +1,0 @@ -"""add pjsip endpoint_identifier_order - -Revision ID: 45e3f47c6c44 -Revises: 371a3bf4143e -Create Date: 2015-03-02 09:32:20.632015 - -""" - -# revision identifiers, used by Alembic. -revision = '45e3f47c6c44' -down_revision = '371a3bf4143e' - -from alembic import op -import sqlalchemy as sa - - -def upgrade(): - op.add_column('ps_globals', sa.Column('endpoint_identifier_order', sa.String(40))) - -def downgrade(): - op.drop_column('ps_globals', 'endpoint_identifier_order') Modified: branches/13/include/asterisk/res_pjsip.h URL: http://svnview.digium.com/svn/asterisk/branches/13/include/asterisk/res_pjsip.h?view=diff&rev=432868&r1=432867&r2=432868 ============================================================================== --- branches/13/include/asterisk/res_pjsip.h (original) +++ branches/13/include/asterisk/res_pjsip.h Fri Mar 13 09:48:40 2015 @@ -697,8 +697,6 @@ * \brief An entity responsible for identifying the source of a SIP message */ struct ast_sip_endpoint_identifier { - /*! Name of the endpoint identifier */ - const char *name; /*! * \brief Callback used to identify the source of a message. * See ast_sip_identify_endpoint for more details @@ -1883,15 +1881,6 @@ */ char *ast_sip_get_debug(void); -/*! - * \brief Retrieve the global endpoint_identifier_order setting. - * - * Specifies the order by which endpoint identifiers should be regarded. - * - * \retval the global endpoint_identifier_order value - */ -char *ast_sip_get_endpoint_identifier_order(void); - /*! \brief Determines whether the res_pjsip module is loaded */ #define CHECK_PJSIP_MODULE_LOADED() \ do { \ Modified: branches/13/res/res_pjsip.c URL: http://svnview.digium.com/svn/asterisk/branches/13/res/res_pjsip.c?view=diff&rev=432868&r1=432867&r2=432868 ============================================================================== --- branches/13/res/res_pjsip.c (original) +++ branches/13/res/res_pjsip.c Fri Mar 13 09:48:40 2015 @@ -36,7 +36,6 @@ #include "asterisk/uuid.h" #include "asterisk/sorcery.h" #include "asterisk/file.h" -#include "asterisk/cli.h" /*** MODULEINFO <depend>pjproject</depend> @@ -1193,11 +1192,6 @@ <configOption name="debug" default="no"> <synopsis>Enable/Disable SIP debug logging. Valid options include yes|no or a host address</synopsis> - </configOption> - <configOption name="endpoint_identifier_order" default="ip,username,anonymous"> - <synopsis>The order by which endpoint identifiers are processed and checked. - Identifier names are usually derived from and can be found in the endpoint - identifier module itself (res_pjsip_endpoint_identifier_*)</synopsis> </configOption> </configObject> </configFile> @@ -1964,7 +1958,6 @@ } struct endpoint_identifier_list { - unsigned int priority; struct ast_sip_endpoint_identifier *identifier; AST_RWLIST_ENTRY(endpoint_identifier_list) list; }; @@ -1973,8 +1966,7 @@ int ast_sip_register_endpoint_identifier(struct ast_sip_endpoint_identifier *identifier) { - char *prev, *current, *identifier_order; - struct endpoint_identifier_list *iter, *id_list_item; + struct endpoint_identifier_list *id_list_item; SCOPED_LOCK(lock, &endpoint_identifiers, AST_RWLIST_WRLOCK, AST_RWLIST_UNLOCK); id_list_item = ast_calloc(1, sizeof(*id_list_item)); @@ -1984,67 +1976,10 @@ } id_list_item->identifier = identifier; - ast_debug(1, "Register endpoint identifier %s (%p)\n", identifier->name, identifier); - - if (ast_strlen_zero(identifier->name)) { - /* if an identifier has no name then place in front */ - AST_RWLIST_INSERT_HEAD(&endpoint_identifiers, id_list_item, list); - ast_module_ref(ast_module_info->self); - return 0; - } - - /* see if the name of the identifier is in the global endpoint_identifier_order list */ - identifier_order = prev = current = ast_sip_get_endpoint_identifier_order(); - - if (ast_strlen_zero(identifier_order)) { - AST_RWLIST_INSERT_TAIL(&endpoint_identifiers, id_list_item, list); - ast_module_ref(ast_module_info->self); - ast_free(identifier_order); - return 0; - } - - id_list_item->priority = 0; - while ((current = strchr(current, ','))) { - ++id_list_item->priority; - if (!strncmp(prev, identifier->name, current - prev)) { - break; - } - prev = ++current; - } - - if (!current) { - /* check to see if it the only or last item */ - if (!strcmp(prev, identifier->name)) { - ++id_list_item->priority; - } else { - id_list_item->priority = UINT_MAX; - } - } - - if (id_list_item->priority == UINT_MAX || AST_RWLIST_EMPTY(&endpoint_identifiers)) { - /* if not in the endpoint_identifier_order list then consider it less in - priority and add it to the end */ - AST_RWLIST_INSERT_TAIL(&endpoint_identifiers, id_list_item, list); - ast_module_ref(ast_module_info->self); - ast_free(identifier_order); - return 0; - } - - AST_RWLIST_TRAVERSE_SAFE_BEGIN(&endpoint_identifiers, iter, list) { - if (id_list_item->priority < iter->priority) { - AST_RWLIST_INSERT_BEFORE_CURRENT(id_list_item, list); - break; - } - - if (!AST_RWLIST_NEXT(iter, list)) { - AST_RWLIST_INSERT_AFTER(&endpoint_identifiers, iter, id_list_item, list); - break; - } - } - AST_RWLIST_TRAVERSE_SAFE_END; + AST_RWLIST_INSERT_TAIL(&endpoint_identifiers, id_list_item, list); + ast_debug(1, "Registered endpoint identifier %p\n", identifier); ast_module_ref(ast_module_info->self); - ast_free(identifier_order); return 0; } @@ -2078,41 +2013,6 @@ } return endpoint; } - -static char *cli_show_endpoint_identifiers(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a) -{ -#define ENDPOINT_IDENTIFIER_FORMAT "%-20.20s\n" - struct endpoint_identifier_list *iter; - - switch (cmd) { - case CLI_INIT: - e->command = "pjsip show identifiers"; - e->usage = "Usage: pjsip show identifiers\n" - " List all registered endpoint identifiers\n"; - return NULL; - case CLI_GENERATE: - return NULL; - } - - if (a->argc != 3) { - return CLI_SHOWUSAGE; - } - - ast_cli(a->fd, ENDPOINT_IDENTIFIER_FORMAT, "Identifier Names:"); - { - SCOPED_LOCK(lock, &endpoint_identifiers, AST_RWLIST_RDLOCK, AST_RWLIST_UNLOCK); - AST_RWLIST_TRAVERSE(&endpoint_identifiers, iter, list) { - ast_cli(a->fd, ENDPOINT_IDENTIFIER_FORMAT, - iter->identifier->name ? iter->identifier->name : "name not specified"); - } - } - return CLI_SUCCESS; -#undef ENDPOINT_IDENTIFIER_FORMAT -} - -static struct ast_cli_entry cli_commands[] = { - AST_CLI_DEFINE(cli_show_endpoint_identifiers, "List registered endpoint identifiers") -}; AST_RWLIST_HEAD_STATIC(endpoint_formatters, ast_sip_endpoint_formatter); @@ -3450,7 +3350,6 @@ } ast_res_pjsip_init_options_handling(0); - ast_cli_register_multiple(cli_commands, ARRAY_LEN(cli_commands)); return AST_MODULE_LOAD_SUCCESS; } @@ -3471,7 +3370,6 @@ static int unload_pjsip(void *data) { - ast_cli_unregister_multiple(cli_commands, ARRAY_LEN(cli_commands)); if (memory_pool) { pj_pool_release(memory_pool); memory_pool = NULL; Modified: branches/13/res/res_pjsip/config_global.c URL: http://svnview.digium.com/svn/asterisk/branches/13/res/res_pjsip/config_global.c?view=diff&rev=432868&r1=432867&r2=432868 ============================================================================== --- branches/13/res/res_pjsip/config_global.c (original) +++ branches/13/res/res_pjsip/config_global.c Fri Mar 13 09:48:40 2015 @@ -31,7 +31,6 @@ #define DEFAULT_USERAGENT_PREFIX "Asterisk PBX" #define DEFAULT_OUTBOUND_ENDPOINT "default_outbound_endpoint" #define DEFAULT_DEBUG "no" -#define DEFAULT_ENDPOINT_IDENTIFIER_ORDER "ip,username,anonymous" static char default_useragent[256]; @@ -42,8 +41,6 @@ AST_STRING_FIELD(default_outbound_endpoint); /*! Debug logging yes|no|host */ AST_STRING_FIELD(debug); - /*! Order by which endpoint identifiers are checked (comma separated list) */ - AST_STRING_FIELD(endpoint_identifier_order); ); /* Value to put in Max-Forwards header */ unsigned int max_forwards; @@ -126,21 +123,6 @@ } res = ast_strdup(cfg->debug); - ao2_ref(cfg, -1); - return res; -} - -char *ast_sip_get_endpoint_identifier_order(void) -{ - char *res; - struct global_config *cfg; - - cfg = get_global_cfg(); - if (!cfg) { - return ast_strdup(DEFAULT_ENDPOINT_IDENTIFIER_ORDER); - } - - res = ast_strdup(cfg->endpoint_identifier_order); ao2_ref(cfg, -1); return res; } @@ -246,9 +228,6 @@ OPT_STRINGFIELD_T, 0, STRFLDSET(struct global_config, default_outbound_endpoint)); ast_sorcery_object_field_register(sorcery, "global", "debug", DEFAULT_DEBUG, OPT_STRINGFIELD_T, 0, STRFLDSET(struct global_config, debug)); - ast_sorcery_object_field_register(sorcery, "global", "endpoint_identifier_order", - DEFAULT_ENDPOINT_IDENTIFIER_ORDER, - OPT_STRINGFIELD_T, 0, STRFLDSET(struct global_config, endpoint_identifier_order)); ast_sorcery_object_field_register(sorcery, "global", "keep_alive_interval", __stringify(DEFAULT_KEEPALIVE_INTERVAL), OPT_UINT_T, 0, FLDSET(struct global_config, keep_alive_interval)); Modified: branches/13/res/res_pjsip_endpoint_identifier_anonymous.c URL: http://svnview.digium.com/svn/asterisk/branches/13/res/res_pjsip_endpoint_identifier_anonymous.c?view=diff&rev=432868&r1=432867&r2=432868 ============================================================================== --- branches/13/res/res_pjsip_endpoint_identifier_anonymous.c (original) +++ branches/13/res/res_pjsip_endpoint_identifier_anonymous.c Fri Mar 13 09:48:40 2015 @@ -103,7 +103,6 @@ } static struct ast_sip_endpoint_identifier anonymous_identifier = { - .name = "anonymous", .identify_endpoint = anonymous_identify, }; Modified: branches/13/res/res_pjsip_endpoint_identifier_ip.c URL: http://svnview.digium.com/svn/asterisk/branches/13/res/res_pjsip_endpoint_identifier_ip.c?view=diff&rev=432868&r1=432867&r2=432868 ============================================================================== --- branches/13/res/res_pjsip_endpoint_identifier_ip.c (original) +++ branches/13/res/res_pjsip_endpoint_identifier_ip.c Fri Mar 13 09:48:40 2015 @@ -150,7 +150,6 @@ } static struct ast_sip_endpoint_identifier ip_identifier = { - .name = "ip", .identify_endpoint = ip_identify, }; Modified: branches/13/res/res_pjsip_endpoint_identifier_user.c URL: http://svnview.digium.com/svn/asterisk/branches/13/res/res_pjsip_endpoint_identifier_user.c?view=diff&rev=432868&r1=432867&r2=432868 ============================================================================== --- branches/13/res/res_pjsip_endpoint_identifier_user.c (original) +++ branches/13/res/res_pjsip_endpoint_identifier_user.c Fri Mar 13 09:48:40 2015 @@ -109,7 +109,6 @@ } static struct ast_sip_endpoint_identifier username_identifier = { - .name = "username", .identify_endpoint = username_identify, }; -- _____________________________________________________________________ -- Bandwidth and Colocation Provided by http://www.api-digital.com -- svn-commits mailing list To UNSUBSCRIBE or update options visit: http://lists.digium.com/mailman/listinfo/svn-commits