Set a module load priority for format modules.
authorRussell Bryant <russell@russellbryant.com>
Tue, 8 Dec 2009 18:00:16 +0000 (18:00 +0000)
committerRussell Bryant <russell@russellbryant.com>
Tue, 8 Dec 2009 18:00:16 +0000 (18:00 +0000)
A recent change to app_voicemail made it such that the module now assumes that
all format modules are available while processing voicemail configuration.
However, when autoloading modules, it was possible that app_voicemail was
loaded before the format modules.  Since format modules don't depend on
anything, set a module load priority on them to ensure that they get loaded
first when autoloading.

This fix applies to trunk, 1.6.1, and 1.6.2.  The fix for 1.4 and 1.6.0 will
require a different approach since the module load priority functionality is
not present in the module API.

(issue #16412)
Reported by: jiddings

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@233692 65c4cc65-6c06-0410-ace0-fbb531ad65f3

17 files changed:
formats/format_g723.c
formats/format_g726.c
formats/format_g729.c
formats/format_gsm.c
formats/format_h263.c
formats/format_h264.c
formats/format_ilbc.c
formats/format_jpeg.c
formats/format_ogg_vorbis.c
formats/format_pcm.c
formats/format_siren14.c
formats/format_siren7.c
formats/format_sln.c
formats/format_sln16.c
formats/format_vox.c
formats/format_wav.c
formats/format_wav_gsm.c

index c7d84c2..46f22f1 100644 (file)
@@ -149,4 +149,8 @@ static int unload_module(void)
        return ast_format_unregister(g723_1_f.name);
 }      
 
-AST_MODULE_INFO_STANDARD(ASTERISK_GPL_KEY, "G.723.1 Simple Timestamp File Format");
+AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "G.723.1 Simple Timestamp File Format",
+       .load = load_module,
+       .unload = unload_module,
+       .load_pri = 10,
+);
index 4394328..d519fa4 100644 (file)
@@ -258,4 +258,8 @@ static int unload_module(void)
        return(0);
 }      
 
-AST_MODULE_INFO_STANDARD(ASTERISK_GPL_KEY, "Raw G.726 (16/24/32/40kbps) data");
+AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "Raw G.726 (16/24/32/40kbps) data",
+       .load = load_module,
+       .unload = unload_module,
+       .load_pri = 10,
+);
index 6a676e1..19be7a4 100644 (file)
@@ -145,4 +145,8 @@ static int unload_module(void)
        return ast_format_unregister(g729_f.name);
 }      
 
-AST_MODULE_INFO_STANDARD(ASTERISK_GPL_KEY, "Raw G729 data");
+AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "Raw G729 data",
+       .load = load_module,
+       .unload = unload_module,
+       .load_pri = 10,
+);
index 39526b4..f1ba9fb 100644 (file)
@@ -169,4 +169,8 @@ static int unload_module(void)
        return ast_format_unregister(gsm_f.name);
 }      
 
-AST_MODULE_INFO_STANDARD(ASTERISK_GPL_KEY, "Raw GSM data");
+AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "Raw GSM data",
+       .load = load_module,
+       .unload = unload_module,
+       .load_pri = 10,
+);
index 13377f4..02b7f79 100644 (file)
@@ -183,4 +183,8 @@ static int unload_module(void)
        return ast_format_unregister(h263_f.name);
 }      
 
-AST_MODULE_INFO_STANDARD(ASTERISK_GPL_KEY, "Raw H.263 data");
+AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "Raw H.263 data",
+       .load = load_module,
+       .unload = unload_module,
+       .load_pri = 10,
+);
index 1fbad01..1573475 100644 (file)
@@ -172,4 +172,8 @@ static int unload_module(void)
        return ast_format_unregister(h264_f.name);
 }      
 
-AST_MODULE_INFO_STANDARD(ASTERISK_GPL_KEY, "Raw H.264 data");
+AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "Raw H.264 data",
+       .load = load_module,
+       .unload = unload_module,
+       .load_pri = 10,
+);
index 6e34fb4..d01c74f 100644 (file)
@@ -143,4 +143,8 @@ static int unload_module(void)
        return ast_format_unregister(ilbc_f.name);
 }      
 
-AST_MODULE_INFO_STANDARD(ASTERISK_GPL_KEY, "Raw iLBC data");
+AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "Raw iLBC data",
+       .load = load_module,
+       .unload = unload_module,
+       .load_pri = 10,
+);
index 98b98c2..54a2422 100644 (file)
@@ -112,4 +112,8 @@ static int unload_module(void)
        return 0;
 }      
 
-AST_MODULE_INFO_STANDARD(ASTERISK_GPL_KEY, "JPEG (Joint Picture Experts Group) Image Format");
+AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "jpeg (joint picture experts group) image format",
+       .load = load_module,
+       .unload = unload_module,
+       .load_pri = 10,
+);
index 29d5ad5..928b001 100644 (file)
@@ -556,5 +556,8 @@ static int unload_module(void)
        return ast_format_unregister(vorbis_f.name);
 }
 
-AST_MODULE_INFO_STANDARD(ASTERISK_GPL_KEY, "OGG/Vorbis audio");
-
+AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "OGG/Vorbis audio",
+       .load = load_module,
+       .unload = unload_module,
+       .load_pri = 10,
+);
index b8517af..3129fae 100644 (file)
@@ -494,4 +494,8 @@ static int unload_module(void)
                || ast_format_unregister(g722_f.name);
 }      
 
-AST_MODULE_INFO_STANDARD(ASTERISK_GPL_KEY, "Raw/Sun uLaw/ALaw 8KHz (PCM,PCMA,AU), G.722 16Khz");
+AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "Raw/Sun uLaw/ALaw 8KHz (PCM,PCMA,AU), G.722 16Khz",
+       .load = load_module,
+       .unload = unload_module,
+       .load_pri = 10,
+);
index 8fdd4aa..215450f 100644 (file)
@@ -135,4 +135,8 @@ static int unload_module(void)
        return ast_format_unregister(siren14_f.name);
 }      
 
-AST_MODULE_INFO_STANDARD(ASTERISK_GPL_KEY, "ITU G.722.1 Annex C (Siren14, licensed from Polycom)");
+AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "ITU G.722.1 Annex C (Siren14, licensed from Polycom)",
+       .load = load_module,
+       .unload = unload_module,
+       .load_pri = 10,
+);
index 44d4da7..a2871fc 100644 (file)
@@ -135,4 +135,8 @@ static int unload_module(void)
        return ast_format_unregister(siren7_f.name);
 }      
 
-AST_MODULE_INFO_STANDARD(ASTERISK_GPL_KEY, "ITU G.722.1 (Siren7, licensed from Polycom)");
+AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "ITU G.722.1 (Siren7, licensed from Polycom)",
+       .load = load_module,
+       .unload = unload_module,
+       .load_pri = 10,
+);
index 9c4cce7..11b150d 100644 (file)
@@ -127,4 +127,8 @@ static int unload_module(void)
        return ast_format_unregister(slin_f.name);
 }      
 
-AST_MODULE_INFO_STANDARD(ASTERISK_GPL_KEY, "Raw Signed Linear Audio support (SLN)");
+AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "Raw Signed Linear Audio support (SLN)",
+       .load = load_module,
+       .unload = unload_module,
+       .load_pri = 10,
+);
index 15991f8..3f9a736 100644 (file)
@@ -135,4 +135,8 @@ static int unload_module(void)
        return ast_format_unregister(slin_f.name);
 }      
 
-AST_MODULE_INFO_STANDARD(ASTERISK_GPL_KEY, "Raw Signed Linear 16KHz Audio support (SLN16)");
+AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "Raw Signed Linear 16KHz Audio support (SLN16)",
+       .load = load_module,
+       .unload = unload_module,
+       .load_pri = 10,
+);
index 5467777..db9e646 100644 (file)
@@ -132,4 +132,8 @@ static int unload_module(void)
        return ast_format_unregister(vox_f.name);
 }      
 
-AST_MODULE_INFO_STANDARD(ASTERISK_GPL_KEY, "Dialogic VOX (ADPCM) File Format");
+AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "Dialogic VOX (ADPCM) File Format",
+       .load = load_module,
+       .unload = unload_module,
+       .load_pri = 10,
+);
index ab02a5d..6cd4c54 100644 (file)
@@ -495,4 +495,8 @@ static int unload_module(void)
        return ast_format_unregister(wav_f.name);
 }      
 
-AST_MODULE_INFO_STANDARD(ASTERISK_GPL_KEY, "Microsoft WAV format (8000Hz Signed Linear)");
+AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "Microsoft WAV format (8000Hz Signed Linear)",
+       .load = load_module,
+       .unload = unload_module,
+       .load_pri = 10,
+);
index 5796e28..0b93b6e 100644 (file)
@@ -548,4 +548,8 @@ static int unload_module(void)
        return ast_format_unregister(wav49_f.name);
 }      
 
-AST_MODULE_INFO_STANDARD(ASTERISK_GPL_KEY, "Microsoft WAV format (Proprietary GSM)");
+AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "Microsoft WAV format (Proprietary GSM)",
+       .load = load_module,
+       .unload = unload_module,
+       .load_pri = 10,
+);