projects
/
idzebra-moved-to-github.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'master' of ssh://git.indexdata.com/home/git/pub/idzebra
[idzebra-moved-to-github.git]
/
index
/
zebraapi.c
diff --git
a/index/zebraapi.c
b/index/zebraapi.c
index
2981ee8
..
2b69a2d
100644
(file)
--- a/
index/zebraapi.c
+++ b/
index/zebraapi.c
@@
-1,5
+1,5
@@
/* This file is part of the Zebra server.
/* This file is part of the Zebra server.
- Copyright (C) 1995-2008 Index Data
+ Copyright (C) 1994-2009 Index Data
Zebra 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
Zebra 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
@@
-61,20
+61,24
@@
static ZEBRA_RES zebra_check_handle(ZebraHandle zh)
#define ZEBRA_CHECK_HANDLE(zh) if (zebra_check_handle(zh) != ZEBRA_OK) return ZEBRA_FAIL
#define ZEBRA_CHECK_HANDLE(zh) if (zebra_check_handle(zh) != ZEBRA_OK) return ZEBRA_FAIL
-static void zebra_chdir(ZebraService zs)
+static int zebra_chdir(ZebraService zs)
{
const char *dir ;
{
const char *dir ;
+ int r;
ASSERTZS;
yaz_log(log_level, "zebra_chdir");
dir = res_get(zs->global_res, "chdir");
if (!dir)
ASSERTZS;
yaz_log(log_level, "zebra_chdir");
dir = res_get(zs->global_res, "chdir");
if (!dir)
- return;
+ return 0;
yaz_log(YLOG_DEBUG, "chdir %s", dir);
#ifdef WIN32
yaz_log(YLOG_DEBUG, "chdir %s", dir);
#ifdef WIN32
- _chdir(dir);
+ r = _chdir(dir);
#else
#else
- chdir(dir);
+ r = chdir(dir);
#endif
#endif
+ if (r)
+ yaz_log(YLOG_FATAL|YLOG_ERRNO, "chdir %s", dir);
+ return r;
}
static ZEBRA_RES zebra_flush_reg(ZebraHandle zh)
}
static ZEBRA_RES zebra_flush_reg(ZebraHandle zh)
@@
-199,11
+203,14
@@
ZebraService zebra_start_res(const char *configName, Res def_res, Res over_res)
log_level = yaz_log_module_level("zebraapi");
log_level_initialized = 1;
}
log_level = yaz_log_module_level("zebraapi");
log_level_initialized = 1;
}
-
+
+ *system_str = '\0';
+ *version_str = '\0';
zebra_get_version(version_str, system_str);
zebra_get_version(version_str, system_str);
- yaz_log(YLOG_LOG, "zebra_start %s %s", version_str,
- configName ? configName : "");
+ yaz_log(YLOG_LOG, "zebra_start %s %s", version_str, system_str);
+ if (configName)
+ yaz_log(YLOG_LOG, "config %s", configName);
if ((res = res_open(def_res, over_res)))
{
if ((res = res_open(def_res, over_res)))
{
@@
-236,7
+243,11
@@
ZebraService zebra_start_res(const char *configName, Res def_res, Res over_res)
zh->global_res = res;
zh->sessions = 0;
zh->global_res = res;
zh->sessions = 0;
- zebra_chdir(zh);
+ if (zebra_chdir(zh))
+ {
+ xfree(zh);
+ return 0;
+ }
zebra_mutex_cond_init(&zh->session_lock);
passwd_plain = res_get(zh->global_res, "passwd");
zebra_mutex_cond_init(&zh->session_lock);
passwd_plain = res_get(zh->global_res, "passwd");
@@
-325,7
+336,6
@@
struct zebra_register *zebra_register_open(ZebraService zs, const char *name,
int record_compression = REC_COMPRESS_NONE;
const char *recordCompression = 0;
const char *profilePath;
int record_compression = REC_COMPRESS_NONE;
const char *recordCompression = 0;
const char *profilePath;
- char cwd[1024];
int sort_type = ZEBRA_SORT_TYPE_FLAT;
ZEBRA_RES ret = ZEBRA_OK;
int sort_type = ZEBRA_SORT_TYPE_FLAT;
ZEBRA_RES ret = ZEBRA_OK;
@@
-371,7
+381,6
@@
struct zebra_register *zebra_register_open(ZebraService zs, const char *name,
}
}
}
}
- getcwd(cwd, sizeof(cwd)-1);
profilePath = res_get_def(res, "profilePath", 0);
data1_set_tabpath(reg->dh, profilePath);
profilePath = res_get_def(res, "profilePath", 0);
data1_set_tabpath(reg->dh, profilePath);
@@
-407,6
+416,7
@@
struct zebra_register *zebra_register_open(ZebraService zs, const char *name,
/* installing rank classes */
zebraRankInstall(reg, rank_1_class);
/* installing rank classes */
zebraRankInstall(reg, rank_1_class);
+ zebraRankInstall(reg, rank_2_class);
zebraRankInstall(reg, rank_similarity_class);
zebraRankInstall(reg, rank_static_class);
zebraRankInstall(reg, rank_similarity_class);
zebraRankInstall(reg, rank_static_class);
@@
-1624,7
+1634,11
@@
static void zebra_get_state(ZebraHandle zh, char *val, int *seqno)
if (f)
{
if (f)
{
- fscanf(f, "%c %d", val, seqno);
+ if (fscanf(f, "%c %d", val, seqno) != 2)
+ {
+ yaz_log(YLOG_ERRNO|YLOG_WARN, "fscan fail %s",
+ state_fname);
+ }
fclose(f);
}
xfree(fname);
fclose(f);
}
xfree(fname);
@@
-2452,6
+2466,7
@@
void zebra_lock_prefix(Res res, char *path)
/*
* Local variables:
* c-basic-offset: 4
/*
* Local variables:
* c-basic-offset: 4
+ * c-file-style: "Stroustrup"
* indent-tabs-mode: nil
* End:
* vim: shiftwidth=4 tabstop=8 expandtab
* indent-tabs-mode: nil
* End:
* vim: shiftwidth=4 tabstop=8 expandtab