Index: /main/trunk/greenstone2/runtime-src/src/colservr/browsefilter.cpp
===================================================================
--- /main/trunk/greenstone2/runtime-src/src/colservr/browsefilter.cpp	(revision 31393)
+++ /main/trunk/greenstone2/runtime-src/src/colservr/browsefilter.cpp	(revision 31394)
@@ -382,5 +382,9 @@
 	     << "warning: lookup for node \"" << resultdoc.OID
 	     << "\" in etc/oai-inf db failed for browsefilter.\n\n";
-    } else {
+    }
+    // We don't need to get the oai metadata from oai-inf.db at this stage. That will be
+    // handled by a separate metadata request. See collectserver::filter() and source.cpp's get_oai_metadata().
+    /*
+    else {
       //logout << text_t2ascii << "@@@@ found node \"" << resultdoc.OID << "\" in etc/oai-inf db.\n\n";
       
@@ -392,4 +396,5 @@
       resultdoc.metadata["oaiinf.datestamp"].values.push_back(oai_info["datestamp"]);
     }
+    */
     
     response.docInfo.push_back(resultdoc);
Index: /main/trunk/greenstone2/runtime-src/src/colservr/colservertools.cpp
===================================================================
--- /main/trunk/greenstone2/runtime-src/src/colservr/colservertools.cpp	(revision 31394)
+++ /main/trunk/greenstone2/runtime-src/src/colservr/colservertools.cpp	(revision 31394)
@@ -0,0 +1,72 @@
+/**********************************************************************
+ *
+ * tools.cpp -- 
+ * Copyright (C) 1999  The New Zealand Digital Library Project
+ *
+ * A component of the Greenstone digital library software
+ * from the New Zealand Digital Library Project at the
+ * University of Waikato, New Zealand.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ *
+ *********************************************************************/
+
+#include "colservertools.h"
+#include "fileutil.h"
+
+
+text_t getcollectionpath(const text_t& gsdlhome, const text_t& dbhome,
+			 const text_t& collecthome, const text_t& collection)
+{
+  text_t resolved_filename;
+  
+  if (gsdlhome==dbhome) {
+    // dbhome has defaulted to gsdlhome which we take to means the 
+    // database has been specifically moved out of gsdlhome area.
+    // => it should be whereever collecthome is set to
+    resolved_filename = filename_cat(collecthome, collection);
+  }
+  else {
+    // dbhome is explicitly set to something other than gsdlhome
+    // => use dbhome
+    resolved_filename = filename_cat(dbhome, "collect", collection);
+  }
+
+  return resolved_filename;
+}
+
+text_t resolve_db_filename(const text_t& gsdlhome, const text_t& dbhome,
+			   const text_t& collecthome, const text_t& collection,
+			   const text_t& idx, const text_t& file_ext)
+{
+  text_t collection_path = getcollectionpath(gsdlhome, dbhome, collecthome, collection);
+  text_t resolved_filename = filename_cat(collection_path, "index", "text", idx);
+
+  resolved_filename += file_ext;
+  
+  return resolved_filename;
+}
+
+text_t resolve_oaidb_filename(const text_t& gsdlhome, const text_t& dbhome,
+			      const text_t& collecthome, const text_t& collection,
+			      const text_t& file_ext)
+{
+  text_t collection_path = getcollectionpath(gsdlhome, dbhome, collecthome, collection);
+  text_t resolved_filename = filename_cat(collection_path, "etc", "oai-inf");
+
+  resolved_filename += file_ext;
+
+  return resolved_filename;
+}
Index: /main/trunk/greenstone2/runtime-src/src/colservr/colservertools.h
===================================================================
--- /main/trunk/greenstone2/runtime-src/src/colservr/colservertools.h	(revision 31394)
+++ /main/trunk/greenstone2/runtime-src/src/colservr/colservertools.h	(revision 31394)
@@ -0,0 +1,43 @@
+/**********************************************************************
+ *
+ * recptprototools.h -- 
+ * Copyright (C) 1999-2008  The New Zealand Digital Library Project
+ *
+ * A component of the Greenstone digital library software
+ * from the New Zealand Digital Library Project at the
+ * University of Waikato, New Zealand.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ *
+ *********************************************************************/
+
+#ifndef COLSERVERTOOLS_H
+#define COLSERVERTOOLS_H
+
+#include "text_t.h"
+
+text_t getcollectionpath(const text_t& gsdlhome, const text_t& dbhome,
+			 const text_t& collecthome, const text_t& collection);
+
+text_t resolve_db_filename(const text_t& gsdlhome, const text_t& dbhome,
+			   const text_t& collecthome, const text_t& collection,
+			   const text_t& idx, const text_t& file_ext);
+
+text_t resolve_oaidb_filename(const text_t& gsdlhome, const text_t& dbhome,
+			      const text_t& collecthome, const text_t& collection,
+			      const text_t& file_ext);
+
+
+#endif
