Version the plugins, to stop from loading old versions, plus fix up search paths for ipkg based installs

This commit is contained in:
Ron Pedde 2007-09-11 04:29:52 +00:00
parent 491d1038eb
commit 196ac7b468
3 changed files with 17 additions and 2 deletions

View File

@ -20,7 +20,7 @@
#define PLUGIN_EVENT_ABORTSTREAM 6
#define PLUGIN_EVENT_ENDSTREAM 7
#define PLUGIN_VERSION 1
#define PLUGIN_VERSION 2
#endif /* _FF_PLUGIN_EVENTS_ */

View File

@ -307,6 +307,7 @@ int main(int argc, char *argv[]) {
char *apppath;
int debuglevel=0;
int plugins_loaded = 0;
config.use_mdns=1;
err_setlevel(2);
@ -455,15 +456,21 @@ int main(int argc, char *argv[]) {
* and load each of them */
if(!load_plugin_dir(plugindir)) {
DPRINTF(E_LOG,L_MAIN,"Warning: Could not load plugins\n");
} else {
plugins_loaded = TRUE;
}
free(plugindir);
} else {
}
if(!plugins_loaded) {
if((!load_plugin_dir("/usr/lib/firefly/plugins")) &&
(!load_plugin_dir("/usr/lib/mt-daapd/plugins")) &&
(!load_plugin_dir("/lib/mt-daapd/plugins")) &&
(!load_plugin_dir("/lib/mt-daapd/plugins")) &&
(!load_plugin_dir("/usr/local/lib/mt-daapd/plugins")) &&
(!load_plugin_dir("/usr/local/lib/mt-daapd/plugins")) &&
(!load_plugin_dir("/opt/share/firefly/plugins")) &&
(!load_plugin_dir("/opt/share/mt-daapd/plugins")) &&
(!load_plugin_dir("/opt/lib/firefly/plugins")) &&
(!load_plugin_dir("/opt/lib/mt-daapd/plugins")) &&
(!load_plugin_dir("plugins/.libs"))) {

View File

@ -260,6 +260,14 @@ int plugin_load(char **pe, char *path) {
return PLUGIN_E_NOLOAD;
}
if(pinfo->version != PLUGIN_VERSION) {
DPRINTF(E_INF,L_PLUG,"Plugin is too old: version %d, expecting %d\n",
pinfo->version, PLUGIN_VERSION);
os_unload(phandle);
free(ppi);
return PLUGIN_E_NOLOAD;
}
DPRINTF(E_INF,L_PLUG,"Loaded plugin %s (%s)\n",path,pinfo->server);
if(!_plugin_initialized) {