Set a module load priority for format modules.

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 version of the patch is specific to Asterisk 1.4 and 1.6.0.  These versions
did not already support module load priority in the module API.  This adds a
trivial version of this which is just a module flag to include it in a pass before
loading "everything".

Thanks to mmichelson for the review!

(closes issue #16412)
Reported by: jiddings
Tested by: russell

Review: https://reviewboard.asterisk.org/r/445/


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.0@233841 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
Russell Bryant
2009-12-09 15:28:59 +00:00
parent a632989c97
commit 886ea54ec5
17 changed files with 141 additions and 63 deletions

View File

@@ -149,4 +149,7 @@ 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_FIRST, "G.723.1 Simple Timestamp File Format",
.load = load_module,
.unload = unload_module,
);

View File

@@ -258,4 +258,7 @@ 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_FIRST, "Raw G.726 (16/24/32/40kbps) data",
.load = load_module,
.unload = unload_module,
);

View File

@@ -145,4 +145,7 @@ 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_FIRST, "Raw G729 data",
.load = load_module,
.unload = unload_module,
);

View File

@@ -169,4 +169,7 @@ 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_FIRST, "Raw GSM data",
.load = load_module,
.unload = unload_module,
);

View File

@@ -183,4 +183,7 @@ 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_FIRST, "Raw H.263 data",
.load = load_module,
.unload = unload_module,
);

View File

@@ -172,4 +172,7 @@ 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_FIRST, "Raw H.264 data",
.load = load_module,
.unload = unload_module,
);

View File

@@ -143,4 +143,7 @@ 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_FIRST, "Raw iLBC data",
.load = load_module,
.unload = unload_module,
);

View File

@@ -112,4 +112,7 @@ 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_FIRST, "JPEG (Joint Picture Experts Group) Image Format",
.load = load_module,
.unload = unload_module,
);

View 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_FIRST, "OGG/Vorbis audio",
.load = load_module,
.unload = unload_module,
);

View File

@@ -494,4 +494,7 @@ 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_FIRST, "Raw/Sun uLaw/ALaw 8KHz (PCM,PCMA,AU), G.722 16Khz",
.load = load_module,
.unload = unload_module,
);

View File

@@ -127,4 +127,7 @@ 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_FIRST, "Raw Signed Linear Audio support (SLN)",
.load = load_module,
.unload = unload_module,
);

View File

@@ -135,4 +135,7 @@ 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_FIRST, "Raw Signed Linear 16KHz Audio support (SLN16)",
.load = load_module,
.unload = unload_module,
);

View File

@@ -132,4 +132,7 @@ 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_FIRST, "Dialogic VOX (ADPCM) File Format",
.load = load_module,
.unload = unload_module,
);

View File

@@ -491,4 +491,7 @@ 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_FIRST, "Microsoft WAV format (8000Hz Signed Linear)",
.load = load_module,
.unload = unload_module,
);

View File

@@ -548,4 +548,7 @@ 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_FIRST, "Microsoft WAV format (Proprietary GSM)",
.load = load_module,
.unload = unload_module,
);