]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
res_pjsip: Move tenantid to end of ast_sip_endpoint
authorGeorge Joseph <gjoseph@sangoma.com>
Wed, 6 Nov 2024 17:31:08 +0000 (10:31 -0700)
committerGeorge Joseph <gjoseph@sangoma.com>
Tue, 12 Nov 2024 20:16:33 +0000 (20:16 +0000)
The tenantid field was originally added to the ast_sip_endpoint
structure at the end of the AST_DECLARE_STRING_FIELDS block.  This
caused everything after it in the structure to move down in memory
and break ABI compatibility.  It's now at the end of the structure
as an AST_STRING_FIELD_EXTENDED.  Given the number of string fields
in the structure now, the initial string field allocation was
also increased from 64 to 128 bytes.

Resolves: #982

include/asterisk/res_pjsip.h
res/res_pjsip/pjsip_configuration.c

index 044d66d2280e949f6e4979442d23f0a2885cfe3a..f83cbe82cfe18907a7266fe384417de8ea822a39 100644 (file)
@@ -977,8 +977,6 @@ struct ast_sip_endpoint {
                AST_STRING_FIELD(incoming_mwi_mailbox);
                /*! STIR/SHAKEN profile to use */
                AST_STRING_FIELD(stir_shaken_profile);
-               /*! Tenant ID for the endpoint */
-               AST_STRING_FIELD(tenantid);
        );
        /*! Configuration for extensions */
        struct ast_sip_endpoint_extensions extensions;
@@ -1062,6 +1060,8 @@ struct ast_sip_endpoint {
        enum ast_sip_100rel_mode rel100;
        /*! Send Advice-of-Charge messages */
        unsigned int send_aoc;
+       /*! Tenant ID for the endpoint */
+       AST_STRING_FIELD_EXTENDED(tenantid);
 };
 
 /*! URI parameter for symmetric transport */
index 9dbc8337adf51426284fd376e354aa84d2fcf1d4..8b24f29ae54d30218be4c0bd626712f40476d4a8 100644 (file)
@@ -2453,7 +2453,7 @@ void *ast_sip_endpoint_alloc(const char *name)
        if (!endpoint) {
                return NULL;
        }
-       if (ast_string_field_init(endpoint, 64)) {
+       if (ast_string_field_init(endpoint, 128)) {
                ao2_cleanup(endpoint);
                return NULL;
        }
@@ -2467,6 +2467,10 @@ void *ast_sip_endpoint_alloc(const char *name)
                ao2_cleanup(endpoint);
                return NULL;
        }
+       if (ast_string_field_init_extended(endpoint, tenantid)) {
+               ao2_cleanup(endpoint);
+               return NULL;
+       }
 
        if (!(endpoint->media.codecs = ast_format_cap_alloc(AST_FORMAT_CAP_FLAG_DEFAULT))) {
                ao2_cleanup(endpoint);