]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
Add missing OPTIONAL_API and ARI dependences.
authorCorey Farrell <git@cfware.com>
Thu, 18 Jan 2018 15:01:26 +0000 (10:01 -0500)
committerCorey Farrell <git@cfware.com>
Mon, 22 Jan 2018 17:16:58 +0000 (12:16 -0500)
I've audited all modules that include any header which includes
asterisk/optional_api.h.  All modules which use OPTIONAL_API now declare
those dependencies in AST_MODULE_INFO using requires or optional_modules
as appropriate.

In addition ARI dependency declarations have been reworked.  Instead of
declaring additional required modules in res/ari/resource_*.c we now add
them to an optional array "requiresModules" in api-docs for each module.
This allows the AST_MODULE_INFO dependencies to include those missing
modules.

Change-Id: Ia0c70571f5566784f63605e78e1ceccb4f79c606

33 files changed:
apps/app_mixmonitor.c
apps/app_statsd.c
bridges/bridge_builtin_features.c
res/ari/resource_bridges.c
res/ari/resource_channels.c
res/ari/resource_device_states.c
res/ari/resource_events.c
res/ari/resource_mailboxes.c
res/ari/resource_playbacks.c
res/ari/resource_recordings.c
res/res_ari_bridges.c
res/res_ari_channels.c
res/res_ari_device_states.c
res/res_ari_events.c
res/res_ari_mailboxes.c
res/res_ari_playbacks.c
res/res_ari_recordings.c
res/res_monitor.c
res/res_pjsip.c
res/res_pjsip/config_transport.c
res/res_pjsip_outbound_registration.c
res/res_statsd.c
rest-api-templates/res_ari_resource.c.mustache
rest-api-templates/swagger_model.py
rest-api/api-docs/bridges.json
rest-api/api-docs/channels.json
rest-api/api-docs/deviceStates.json
rest-api/api-docs/events.json
rest-api/api-docs/mailboxes.json
rest-api/api-docs/playbacks.json
rest-api/api-docs/recordings.json
tests/test_utils.c
tests/test_websocket_client.c

index bb47cfc340efdf411f2da6726a67144f5ff62939..af2949209056d91034ca12b886501bc5029a3def 100644 (file)
@@ -1556,4 +1556,9 @@ static int load_module(void)
        return res;
 }
 
-AST_MODULE_INFO_STANDARD(ASTERISK_GPL_KEY, "Mixed Audio Monitoring Application");
+AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_DEFAULT, "Mixed Audio Monitoring Application",
+       .support_level = AST_MODULE_SUPPORT_CORE,
+       .load = load_module,
+       .unload = unload_module,
+       .optional_modules = "func_periodic_hook",
+);
index 54f9511a8b4de7d78dec65165f6c70eeeafd166d..a4ca233ea255fb184469c31ac593dae5c23229d7 100644 (file)
@@ -420,4 +420,9 @@ static int load_module(void)
        return ast_register_application_xml(app, statsd_exec);
 }
 
-AST_MODULE_INFO_STANDARD_EXTENDED(ASTERISK_GPL_KEY, "StatsD Dialplan Application");
+AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_DEFAULT, "StatsD Dialplan Application",
+       .support_level = AST_MODULE_SUPPORT_EXTENDED,
+       .load = load_module,
+       .unload = unload_module,
+       .requires = "res_statsd",
+);
index e6cacbf7eaed42759b70c7435c707295ba32016b..e9efb916cc176dfae711583da8b163884cc23dde 100644 (file)
@@ -519,4 +519,9 @@ static int load_module(void)
        return AST_MODULE_LOAD_SUCCESS;
 }
 
-AST_MODULE_INFO_STANDARD(ASTERISK_GPL_KEY, "Built in bridging features");
+AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_DEFAULT, "Built in bridging features",
+       .support_level = AST_MODULE_SUPPORT_CORE,
+       .load = load_module,
+       .unload = unload_module,
+       .optional_modules = "res_monitor",
+);
index a320c29872985b26ce890400bb608522707773f9..9808288e9c1b682998d88f033b8eef30f436c644 100644 (file)
@@ -24,8 +24,6 @@
  */
 
 /*** MODULEINFO
-       <depend type="module">res_stasis_recording</depend>
-       <depend type="module">res_stasis_playback</depend>
        <support_level>core</support_level>
  ***/
 
index 6b4f26c25a86bb86e69f6aae7d689339ff5eb07d..cdf0f88207f5b93866da62427e71cff446ba36f0 100644 (file)
  */
 
 /*** MODULEINFO
-       <depend type="module">res_stasis_answer</depend>
-       <depend type="module">res_stasis_playback</depend>
-       <depend type="module">res_stasis_recording</depend>
-       <depend type="module">res_stasis_snoop</depend>
        <support_level>core</support_level>
  ***/
 
index 020d9301f2792279f591f9bd30cf12c98c5bb4dd..c442fa51b355415157f28f7c92ba3bb23bca4011 100644 (file)
@@ -24,7 +24,6 @@
  */
 
 /*** MODULEINFO
-       <depend type="module">res_stasis_device_state</depend>
        <support_level>core</support_level>
  ***/
 
index d81067f151e764e4a821607b5072bce8d2d4e60c..5a8e8985858cd5c69fa4bf0ed6a74ad5845199b0 100644 (file)
@@ -24,7 +24,6 @@
  */
 
 /*** MODULEINFO
-       <depend type="module">res_http_websocket</depend>
        <support_level>core</support_level>
  ***/
 
index 3577e6515332653bf52abd718f8d1a4e5f3d51c3..ae0f249784bd28980b6d65220b62b2159d27f172 100644 (file)
@@ -24,7 +24,6 @@
  */
 
 /*** MODULEINFO
-       <depend type="module">res_stasis_mailbox</depend>
        <support_level>core</support_level>
  ***/
 
index 57f424c016f4b7cbf7244ef60bff6ff22b86f3e4..fc05a8d03a0543db78f6f2579498dac3059df846 100644 (file)
@@ -24,7 +24,6 @@
  */
 
 /*** MODULEINFO
-       <depend type="module">res_stasis_playback</depend>
        <support_level>core</support_level>
  ***/
 
index 39ef65ce34fb6ba959447903fa824406b94ec0e0..090f26370089e1d1868ded1c61ff81016f9722f8 100644 (file)
@@ -24,7 +24,6 @@
  */
 
 /*** MODULEINFO
-       <depend type="module">res_stasis_recording</depend>
        <support_level>core</support_level>
  ***/
 
index 34b9d898cc49314fa26e8d4d02abad5e4bf79578..93cf7c49bf4aa5bc605f1340f0b68d4b13e53b6f 100644 (file)
@@ -35,6 +35,8 @@
        <depend type="module">res_ari</depend>
        <depend type="module">res_ari_model</depend>
        <depend type="module">res_stasis</depend>
+       <depend type="module">res_stasis_recording</depend>
+       <depend type="module">res_stasis_playback</depend>
        <support_level>core</support_level>
  ***/
 
@@ -1579,5 +1581,5 @@ AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_DEFAULT, "RESTful API module - Bri
        .support_level = AST_MODULE_SUPPORT_CORE,
        .load = load_module,
        .unload = unload_module,
-       .requires = "res_ari,res_ari_model,res_stasis",
+       .requires = "res_ari,res_ari_model,res_stasis,res_stasis_recording,res_stasis_playback",
 );
index 7862c10069b7aae58d4b65f38c1526ea7d3b02e3..7ca7e2e4d356fd7f4efbc908652f239ac80433dd 100644 (file)
        <depend type="module">res_ari</depend>
        <depend type="module">res_ari_model</depend>
        <depend type="module">res_stasis</depend>
+       <depend type="module">res_stasis_answer</depend>
+       <depend type="module">res_stasis_playback</depend>
+       <depend type="module">res_stasis_recording</depend>
+       <depend type="module">res_stasis_snoop</depend>
        <support_level>core</support_level>
  ***/
 
@@ -2869,5 +2873,5 @@ AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_DEFAULT, "RESTful API module - Cha
        .support_level = AST_MODULE_SUPPORT_CORE,
        .load = load_module,
        .unload = unload_module,
-       .requires = "res_ari,res_ari_model,res_stasis",
+       .requires = "res_ari,res_ari_model,res_stasis,res_stasis_answer,res_stasis_playback,res_stasis_recording,res_stasis_snoop",
 );
index ec8890b1e9cf3ddf06f01a35ae3cda8d0a01f1aa..04479e6ace14f2ade82dfc1338bda830cf8d7141 100644 (file)
@@ -35,6 +35,7 @@
        <depend type="module">res_ari</depend>
        <depend type="module">res_ari_model</depend>
        <depend type="module">res_stasis</depend>
+       <depend type="module">res_stasis_device_state</depend>
        <support_level>core</support_level>
  ***/
 
@@ -349,5 +350,5 @@ AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_DEFAULT, "RESTful API module - Dev
        .support_level = AST_MODULE_SUPPORT_CORE,
        .load = load_module,
        .unload = unload_module,
-       .requires = "res_ari,res_ari_model,res_stasis",
+       .requires = "res_ari,res_ari_model,res_stasis,res_stasis_device_state",
 );
index f750a5454dc64339d7a9880c7f93322f01d46246..06eb77a3806f9d75bbfea1a3ebc016313bba9cf8 100644 (file)
@@ -35,6 +35,7 @@
        <depend type="module">res_ari</depend>
        <depend type="module">res_ari_model</depend>
        <depend type="module">res_stasis</depend>
+       <depend type="module">res_http_websocket</depend>
        <support_level>core</support_level>
  ***/
 
@@ -473,5 +474,5 @@ AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_DEFAULT, "RESTful API module - Web
        .support_level = AST_MODULE_SUPPORT_CORE,
        .load = load_module,
        .unload = unload_module,
-       .requires = "res_ari,res_ari_model,res_stasis",
+       .requires = "res_ari,res_ari_model,res_stasis,res_http_websocket",
 );
index 6469f936ee23274c54f6225f19a359d900cc30e6..123664e46e73aedc82e7577ee79a3b95a57cfda3 100644 (file)
@@ -35,6 +35,7 @@
        <depend type="module">res_ari</depend>
        <depend type="module">res_ari_model</depend>
        <depend type="module">res_stasis</depend>
+       <depend type="module">res_stasis_mailbox</depend>
        <support_level>core</support_level>
  ***/
 
@@ -355,5 +356,5 @@ AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_DEFAULT, "RESTful API module - Mai
        .support_level = AST_MODULE_SUPPORT_CORE,
        .load = load_module,
        .unload = unload_module,
-       .requires = "res_ari,res_ari_model,res_stasis",
+       .requires = "res_ari,res_ari_model,res_stasis,res_stasis_mailbox",
 );
index 0148a740096175e7515af98365c008bde3d9893d..547b39e391b48196fa8acf0a437455ee23e557af 100644 (file)
@@ -35,6 +35,7 @@
        <depend type="module">res_ari</depend>
        <depend type="module">res_ari_model</depend>
        <depend type="module">res_stasis</depend>
+       <depend type="module">res_stasis_playback</depend>
        <support_level>core</support_level>
  ***/
 
@@ -307,5 +308,5 @@ AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_DEFAULT, "RESTful API module - Pla
        .support_level = AST_MODULE_SUPPORT_CORE,
        .load = load_module,
        .unload = unload_module,
-       .requires = "res_ari,res_ari_model,res_stasis",
+       .requires = "res_ari,res_ari_model,res_stasis,res_stasis_playback",
 );
index 531ff6574dfdb314ab97c995686f0a69775c957a..45c789c2d496c2c7caf53e6c1ba347d31eeef0fd 100644 (file)
@@ -35,6 +35,7 @@
        <depend type="module">res_ari</depend>
        <depend type="module">res_ari_model</depend>
        <depend type="module">res_stasis</depend>
+       <depend type="module">res_stasis_recording</depend>
        <support_level>core</support_level>
  ***/
 
@@ -891,5 +892,5 @@ AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_DEFAULT, "RESTful API module - Rec
        .support_level = AST_MODULE_SUPPORT_CORE,
        .load = load_module,
        .unload = unload_module,
-       .requires = "res_ari,res_ari_model,res_stasis",
+       .requires = "res_ari,res_ari_model,res_stasis,res_stasis_recording",
 );
index 9dcbdbe62fe54255a8d9c70f798258cd37ad74c4..e2b5fb2521da97425e8c5eeb25a3731ee819f92e 100644 (file)
@@ -1013,4 +1013,5 @@ AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_GLOBAL_SYMBOLS | AST_MODFLAG_LOAD_
        .load = load_module,
        .unload = unload_module,
        .load_pri = AST_MODPRI_CHANNEL_DEPEND,
+       .optional_modules = "func_periodic_hook",
 );
index ff262c9dc5024b3e82ecd1bbb8ff6aa87b8dd413..6a6ba0f75faf92757cbbe3a1c0d317f5bb92127b 100644 (file)
@@ -5139,4 +5139,5 @@ AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_GLOBAL_SYMBOLS | AST_MODFLAG_LOAD_
        .reload = reload_module,
        .load_pri = AST_MODPRI_CHANNEL_DEPEND - 5,
        .requires = "res_pjproject",
+       .optional_modules = "res_statsd",
 );
index 63bf11812f7385c97f1250e65923eb1875826e15..713ab024beb01e056f6a193e63805494caf8758f 100644 (file)
@@ -30,6 +30,7 @@
 #include "asterisk/acl.h"
 #include "asterisk/utils.h"
 #include "include/res_pjsip_private.h"
+/* We're only using a #define from http_websocket.h, no OPTIONAL_API symbols are used. */
 #include "asterisk/http_websocket.h"
 
 #define MAX_POINTER_STRING 33
index 79bea482bdca2b8a4836d36d708fde2d88b8d461..80b885fb43363c187c8ab1dc4328d93e50d2e85b 100644 (file)
@@ -2290,4 +2290,5 @@ AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "PJSIP Outbound Regist
        .unload = unload_module,
        .load_pri = AST_MODPRI_APP_DEPEND,
        .requires = "res_pjsip",
+       .optional_modules = "res_statsd",
 );
index 221b359c9e878fce45ea2d3749f3eb6e65d8e19b..8565e41cb491701b1c16261b9fc9177b0e5b0ef1 100644 (file)
@@ -381,13 +381,13 @@ static int reload_module(void)
        }
 }
 
-/* The priority of this module is set to be as low as possible, since it could
- * be used by any other sort of module.
+/* The priority of this module is set just after realtime, since it loads
+ * configuration and could be used by any other sort of module.
  */
 AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_GLOBAL_SYMBOLS | AST_MODFLAG_LOAD_ORDER, "Statsd client support",
        .support_level = AST_MODULE_SUPPORT_EXTENDED,
        .load = load_module,
        .unload = unload_module,
        .reload = reload_module,
-       .load_pri = 0,
+       .load_pri = AST_MODPRI_REALTIME_DRIVER + 5,
 );
index c1f680f21d16ef9bdd3a2d19c622451db6b5dca7..c69734539075de41b4c82db685fbd14e972b31d2 100644 (file)
@@ -40,6 +40,9 @@
        <depend type="module">res_ari</depend>
        <depend type="module">res_ari_model</depend>
        <depend type="module">res_stasis</depend>
+{{#requires_modules}}
+       <depend type="module">{{.}}</depend>
+{{/requires_modules}}
        <support_level>core</support_level>
  ***/
 
@@ -324,6 +327,6 @@ AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_DEFAULT, "RESTful API module - {{{
        .support_level = AST_MODULE_SUPPORT_CORE,
        .load = load_module,
        .unload = unload_module,
-       .requires = "res_ari,res_ari_model,res_stasis",
+       .requires = "res_ari,res_ari_model,res_stasis{{#requires_modules}},{{.}}{{/requires_modules}}",
 );
 {{/api_declaration}}
index 08852415c00eb658e7114ce2852db17775cca7f8..3f729d8b52dc46f2386ddd8b2a262a62724d4e0a 100644 (file)
@@ -647,6 +647,7 @@ class ApiDeclaration(Stringify):
         self.api_version = api_decl_json.get('apiVersion')
         self.base_path = api_decl_json.get('basePath')
         self.resource_path = api_decl_json.get('resourcePath')
+        self.requires_modules = api_decl_json.get('requiresModules') or []
         api_json = api_decl_json.get('apis') or []
         self.apis = [
             Api().load(j, processor, context) for j in api_json]
index cf8ee3156b3770615064f00ace0fcb83eb956257..04416c1236130458db1e04b2b37ea337dd0f2d5b 100644 (file)
@@ -6,6 +6,10 @@
        "swaggerVersion": "1.1",
        "basePath": "http://localhost:8088/ari",
        "resourcePath": "/api-docs/bridges.{format}",
+       "requiresModules": [
+               "res_stasis_recording",
+               "res_stasis_playback"
+       ],
        "apis": [
                {
                        "path": "/bridges",
index 602606cfe7cbbec90c4aa9efd23e9c2bf32d0614..ec8bae235d32a2909dd6329d9b91965f944e3fe0 100644 (file)
@@ -6,6 +6,12 @@
        "swaggerVersion": "1.1",
        "basePath": "http://localhost:8088/ari",
        "resourcePath": "/api-docs/channels.{format}",
+       "requiresModules": [
+               "res_stasis_answer",
+               "res_stasis_playback",
+               "res_stasis_recording",
+               "res_stasis_snoop"
+       ],
        "apis": [
                {
                        "path": "/channels",
index 94d5b93ce08384db4e72456f56206749c5486c4a..bd389355c4cd407d6cd803b027426baca131b1b6 100644 (file)
@@ -6,6 +6,9 @@
        "swaggerVersion": "1.1",
        "basePath": "http://localhost:8088/ari",
        "resourcePath": "/api-docs/deviceStates.{format}",
+       "requiresModules": [
+               "res_stasis_device_state"
+       ],
        "apis": [
                {
                        "path": "/deviceStates",
index e1b31bb9764647992ace61d8c8f380785625db94..d85d8d9fe4fabde2b3bcd6cbc36655cb0b2316eb 100644 (file)
@@ -6,6 +6,9 @@
        "swaggerVersion": "1.2",
        "basePath": "http://localhost:8088/ari",
        "resourcePath": "/api-docs/events.{format}",
+       "requiresModules": [
+               "res_http_websocket"
+       ],
        "apis": [
                {
                        "path": "/events",
index ed50019f5001c2162c4dd911cadb3cb6e8d3e7f3..8f5941b8179c57b3a513a982343a56677bfd4d95 100644 (file)
@@ -6,6 +6,9 @@
        "swaggerVersion": "1.1",
        "basePath": "http://localhost:8088/ari",
        "resourcePath": "/api-docs/mailboxes.{format}",
+       "requiresModules": [
+               "res_stasis_mailbox"
+       ],
        "apis": [
                {
                        "path": "/mailboxes",
index 3dc4e1da5a9e2c61b5bcec729f470bbd2e50fa3c..a78dcae7103ae90f958a2fa0d7e91796f300a901 100644 (file)
@@ -6,6 +6,9 @@
        "swaggerVersion": "1.1",
        "basePath": "http://localhost:8088/ari",
        "resourcePath": "/api-docs/playbacks.{format}",
+       "requiresModules": [
+               "res_stasis_playback"
+       ],
        "apis": [
                {
                        "path": "/playbacks/{playbackId}",
index d0b9630da282bba6ccda10ece291df98110863b9..6ffd6d8e9c0f4a7862a270f72e9ecc2cd2617c51 100644 (file)
@@ -6,6 +6,9 @@
        "swaggerVersion": "1.1",
        "basePath": "http://localhost:8088/ari",
        "resourcePath": "/api-docs/recordings.{format}",
+       "requiresModules": [
+               "res_stasis_recording"
+       ],
        "apis": [
                {
                        "path": "/recordings/stored",
index 68a285727b26e73c90e919449bc88a6750d044a9..bcb2df3758108ea321e09d47f3a60523d7b22764 100644 (file)
@@ -646,4 +646,9 @@ static int load_module(void)
        return AST_MODULE_LOAD_SUCCESS;
 }
 
-AST_MODULE_INFO_STANDARD(ASTERISK_GPL_KEY, "Utils test module");
+AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_DEFAULT, "Utils test module",
+       .support_level = AST_MODULE_SUPPORT_CORE,
+       .load = load_module,
+       .unload = unload_module,
+       .requires = "res_agi,res_crypto",
+);
index 6743b53693aaf461746f4109acc3acf4811b861d..e33f3f930da588c53b6bbf89afbd5436a35b288b 100644 (file)
@@ -156,4 +156,9 @@ static int unload_module(void)
        return 0;
 }
 
-AST_MODULE_INFO_STANDARD(ASTERISK_GPL_KEY, "Websocket client test module");
+AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_DEFAULT, "Websocket client test module",
+       .support_level = AST_MODULE_SUPPORT_CORE,
+       .load = load_module,
+       .unload = unload_module,
+       .requires = "res_http_websocket",
+);