| 71 | } |
| 72 | |
| 73 | bool ModuleLoader::isLoadableModule(const Firebird::PathName& module) |
| 74 | { |
| 75 | struct STAT sb; |
| 76 | |
| 77 | if (-1 == os_utils::stat(module.c_str(), &sb)) |
| 78 | return false; |
| 79 | |
| 80 | if ( ! (sb.st_mode & S_IFREG) ) // Make sure it is a plain file |
| 81 | return false; |
| 82 | |
| 83 | if ( -1 == access(module.c_str(), R_OK | X_OK)) |
| 84 | return false; |
| 85 | |
| 86 | return true; |
| 87 | } |
| 88 | |
| 89 | bool ModuleLoader::doctorModuleExtension(Firebird::PathName& name, int& step) |
| 90 | { |