Return error (0) rather than exit for bad dict header (magic)
[idzebra-moved-to-github.git] / dict / open.c
index 79ebe4c..27ff9da 100644 (file)
@@ -1,6 +1,6 @@
-/* $Id: open.c,v 1.21 2004-11-19 10:26:55 heikki Exp $
-   Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002,2003,2004
-   Index Data Aps
+/* $Id: open.c,v 1.24 2006-03-26 14:03:18 adam Exp $
+   Copyright (C) 1995-2005
+   Index Data ApS
 
 This file is part of the Zebra server.
 
@@ -26,7 +26,7 @@ Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
 #include <string.h>
 #include <stdio.h>
 
-#include <dict.h>
+#include "dict-p.h"
 
 Dict dict_open (BFiles bfs, const char *name, int cache, int rw,
                int compact_flag, int page_size)
@@ -76,7 +76,9 @@ Dict dict_open (BFiles bfs, const char *name, int cache, int rw,
         if (strcmp (dict->head.magic_str, DICT_MAGIC))
         {
             yaz_log (YLOG_WARN, "Bad magic of `%s'", name);
-            exit (1);
+           dict_bf_close(dict->dbf);
+           xfree(dict);
+           return 0;
         }
         if (dict->head.page_size != page_size)
         {