res_pjsip_endpoint_identifier_ip.c: Remove unnecessary requirement.
authorRichard Mudgett <rmudgett@digium.com>
Wed, 3 Jan 2018 21:20:27 +0000 (15:20 -0600)
committerRichard Mudgett <rmudgett@digium.com>
Tue, 9 Jan 2018 18:34:41 +0000 (12:34 -0600)
The requirement that "ip" must be in the endpoint identify_by list to
allow the type=identify method to identify the endpoint is not necessary.
The "ip" identifier method can match one and only one endpoint.  To even
work, the "ip" identifier method configuration must explicitly specify the
identified endpoint.  Therefore, why bother configuring the type=identify
identifier in the first place?  The requirement only adds the potential
for configuration errors for no benefit.  Even worse, those configuration
errors cannot be detected when the configuration loads.  The requirement
was introduced with the ASTERISK_27206 patch.

* Remove the code change that enforces the requiremnt.  Listing the "ip"
method in the identify_by value is simply documentation.

Change-Id: Ia057f92a33fb5d9f51dc5d5692e3d5ee1a6f2c11

res/res_pjsip_endpoint_identifier_ip.c

index e40f9bf..7cc2dc5 100644 (file)
@@ -229,14 +229,7 @@ static struct ast_sip_endpoint *ip_identify(pjsip_rx_data *rdata)
        }
 
        endpoint = ast_sorcery_retrieve_by_id(ast_sip_get_sorcery(), "endpoint", match->endpoint_name);
-
        if (endpoint) {
-               if (!(endpoint->ident_method & AST_SIP_ENDPOINT_IDENTIFY_BY_IP)) {
-                       ast_debug(3, "Endpoint '%s' found for '%s' but 'ip' method not supported'\n", match->endpoint_name,
-                               ast_sockaddr_stringify(&addr));
-                       ao2_cleanup(endpoint);
-                       return NULL;
-               }
                ast_debug(3, "Retrieved endpoint %s\n", ast_sorcery_object_get_id(endpoint));
        } else {
                ast_log(LOG_WARNING, "Identify section '%s' points to endpoint '%s' but endpoint could not be looked up\n",