-/* *** CACHE AND BLACKLIST MANAGEMENT *** */
-
-/* return true if plugin is blacklisted or has an invalid file extension */
-static bool
-vstfx_blacklist_stat (const char *dllpath, int personal)
-{
- const size_t slen = strlen (dllpath);
- if (
- (slen <= 3 || g_ascii_strcasecmp (&dllpath[slen-3], ".so"))
- &&
- (slen <= 4 || g_ascii_strcasecmp (&dllpath[slen-4], ".dll"))
- ) {
- return true;
- }
-
- string const path = vstfx_blacklist_path (dllpath, personal);
-
- if (Glib::file_test (path, Glib::FileTest (Glib::FILE_TEST_EXISTS | Glib::FILE_TEST_IS_REGULAR))) {
- struct stat dllstat;
- struct stat fsbstat;
-
- if (stat (dllpath, &dllstat) == 0 && stat (path.c_str(), &fsbstat) == 0) {
- if (dllstat.st_mtime > fsbstat.st_mtime) {
- /* plugin is newer than blacklist file */
- return true;
- }
- }
- /* stat failed or plugin is older than blacklist file */
- return true;
- }
- /* blacklist file does not exist */
- return false;
-}
-
-/* return true if plugin is blacklisted, checks both personal
- * and global folder */
-static bool
-vstfx_check_blacklist (const char *dllpath)
-{
- if (vstfx_blacklist_stat(dllpath, 0)) return true;
- if (vstfx_blacklist_stat(dllpath, 1)) return true;
- return false;
-}
-
-/* create blacklist file, preferably in same folder as the
- * plugin, fall back to personal folder in $HOME
- */
-static FILE *
-vstfx_blacklist_file (const char *dllpath)
-{
- FILE *f;
- if ((f = g_fopen (vstfx_blacklist_path (dllpath, 0).c_str(), "wb"))) {
-#ifndef NDEBUG
- PBD::info << "Blacklisted VST: '" << vstfx_blacklist_path (dllpath, 0) << "'" << endmsg;
-#endif
- return f;
- }
-#ifndef NDEBUG
- PBD::info << "Blacklisted VST: '" << vstfx_blacklist_path (dllpath, 1) << "'" << endmsg;
-#endif
- return g_fopen (vstfx_blacklist_path (dllpath, 1).c_str(), "wb");
-}
-
-/** mark plugin as blacklisted */
-static bool
-vstfx_blacklist (const char *dllpath)
-{
- FILE *f = vstfx_blacklist_file(dllpath);
- if (f) {
- fclose(f);
- return true;
- }
- return false;
-}
-
-/** mark plugin as not blacklisted */
-static void
-vstfx_un_blacklist (const char *dllpath)
-{
- ::g_unlink(vstfx_blacklist_path (dllpath, 0).c_str());
- ::g_unlink(vstfx_blacklist_path (dllpath, 1).c_str());
-}