-/* $Id: main.c,v 1.124 2005-05-11 12:39:36 adam Exp $
- Copyright (C) 1995-2005
+/* $Id: main.c,v 1.131 2006-09-11 22:57:54 adam Exp $
+ Copyright (C) 1995-2006
Index Data ApS
This file is part of the Zebra server.
for more details.
You should have received a copy of the GNU General Public License
-along with Zebra; see the file LICENSE.zebra. If not, write to the
-Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
-02111-1307, USA.
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
*/
#include <stdio.h>
#include <assert.h>
#ifdef WIN32
#include <io.h>
-#else
+#endif
+#if HAVE_UNISTD_H
#include <unistd.h>
+#endif
+#if HAVE_SYS_TIME_H
#include <sys/time.h>
#endif
#include <time.h>
int nsections = 0;
int enable_commit = 1;
char *database = 0;
- Res res = res_open(0, 0, 0);
+ Res res = res_open(0, 0);
int trans_started=0;
#if HAVE_SYS_TIMES_H
struct tms tms1, tms2;
- struct timeval start_time, end_time;
double usec;
#endif
+#if HAVE_SYS_TIME_H
+ struct timeval start_time, end_time;
+#endif
#ifndef WIN32
char nbuf[100];
#endif
#endif
#if HAVE_SYS_TIMES_H
times(&tms1);
+#endif
+#if HAVE_SYS_TIME_H
gettimeofday(&start_time, 0);
#endif
prog = *argv;
if (!zs)
{
const char *config = configName ? configName : "zebra.cfg";
- yaz_log (YLOG_LOG, "Zebra version %s %s",
- ZEBRAVER, ZEBRADATE);
zs = zebra_start_res (config, 0, res);
if (!zs)
{
yaz_log (YLOG_FATAL, "Cannot read config %s", config);
exit (1);
}
- zh = zebra_open (zs);
+ zh = zebra_open (zs, 0);
zebra_shadow_enable (zh, enable_commit);
}
}
if (res != ZEBRA_OK)
{
- yaz_log(YLOG_WARN, "Operation failed");
+ const char *add = zebra_errAdd(zh);
+ yaz_log(YLOG_FATAL, "Operation failed: %s %s",
+ zebra_errString(zh), add ? add : "");
+
+ if (trans_started)
+ if (zebra_end_trans (zh) != ZEBRA_OK)
+ yaz_log (YLOG_WARN, "zebra_end_trans failed");
+
+
+ zebra_close (zh);
+ zebra_stop (zs);
exit(1);
}
log_event_end (NULL, NULL);
else if (ret == 'V')
{
printf("Zebra %s %s\n", ZEBRAVER, ZEBRADATE);
- printf(" (C) 1994-2005, Index Data ApS\n");
+ printf(" (C) 1994-2006, Index Data ApS\n");
#ifdef WIN32
#ifdef _DEBUG
printf(" WIN32 Debug\n");
} /* while arg */
if (trans_started)
- zebra_end_trans (zh);
+ if (zebra_end_trans (zh) != ZEBRA_OK)
+ yaz_log (YLOG_WARN, "zebra_end_trans failed");
zebra_close (zh);
zebra_stop (zs);
#if HAVE_SYS_TIMES_H
+#if HAVE_SYS_TIME_H
if (trans_started)
{
gettimeofday(&end_time, 0);
(double) (tms2.tms_stime - tms1.tms_stime)/100);
}
#endif
+#endif
nmem_exit();
exit (0);
return 0;
}
+/*
+ * Local variables:
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
+ * End:
+ * vim: shiftwidth=4 tabstop=8 expandtab
+ */
+