--- a/src/internfile/internfile.cpp
+++ b/src/internfile/internfile.cpp
@@ -441,6 +441,42 @@
}
}
+#include "fsindexer.h"
+bool FileInterner::makesig(const Rcl::Doc& idoc, string& sig)
+{
+ if (idoc.url.empty()) {
+ LOGERR(("FileInterner::makesig:: no url!\n"));
+ return false;
+ }
+ string backend;
+ idoc.getmeta(Rcl::Doc::keybcknd, &backend);
+
+ if (backend.empty() || !backend.compare("FS")) {
+ if (idoc.url.find(cstr_fileu) != 0) {
+ LOGERR(("FileInterner: FS backend and non fs url: [%s]\n",
+ idoc.url.c_str()));
+ return false;
+ }
+ string fn = idoc.url.substr(7, string::npos);
+ struct stat st;
+ if (stat(fn.c_str(), &st) < 0) {
+ LOGERR(("FileInterner:: cannot access document file: [%s]\n",
+ fn.c_str()));
+ return false;
+ }
+ FsIndexer::makesig(&st, sig);
+ return true;
+ } else if (!backend.compare("BGL")) {
+ // Bgl sigs are empty
+ sig.clear();
+ return true;
+ } else {
+ LOGERR(("FileInterner:: unknown backend: [%s]\n", backend.c_str()));
+ return false;
+ }
+ return false;
+}
+
FileInterner::~FileInterner()
{
tmpcleanup();