-/* $Id: zebraapi.c,v 1.168 2005-05-11 12:39:37 adam Exp $
+/* $Id: zebraapi.c,v 1.173 2005-06-02 11:59:53 adam Exp $
Copyright (C) 1995-2005
Index Data ApS
log_level_initialized = 1;
}
- yaz_log(log_level, "zebra_start %s",configName);
+ yaz_log(YLOG_LOG, "zebra_start %s %s",configName, ZEBRAVER);
assert(configName);
if ((res = res_open (configName, def_res, over_res)))
{
+ const char *passwd_plain = 0;
+ const char *passwd_encrypt = 0;
ZebraService zh = xmalloc(sizeof(*zh));
yaz_log (YLOG_DEBUG, "Read resources `%s'", configName);
zebra_chdir (zh);
zebra_mutex_cond_init (&zh->session_lock);
- if (!res_get (zh->global_res, "passwd"))
+ passwd_plain = res_get (zh->global_res, "passwd");
+ passwd_encrypt = res_get (zh->global_res, "passwd.c");
+
+ if (!passwd_plain && !passwd_encrypt)
zh->passwd_db = NULL;
else
{
- zh->passwd_db = passwd_db_open ();
+ zh->passwd_db = passwd_db_open();
if (!zh->passwd_db)
yaz_log (YLOG_WARN|YLOG_ERRNO, "passwd_db_open failed");
else
- passwd_db_file (zh->passwd_db,
- res_get (zh->global_res, "passwd"));
+ {
+ if (passwd_plain)
+ passwd_db_file_plain(zh->passwd_db, passwd_plain);
+ if (passwd_encrypt)
+ passwd_db_file_crypt(zh->passwd_db, passwd_encrypt);
+ }
}
zh->path_root = res_get (zh->global_res, "root");
zh->nmem = nmem_create();
reg->dh = data1_createx (DATA1_FLAG_XML);
if (!reg->dh)
+ {
+ xfree(reg);
return 0;
+ }
reg->bfs = bfs_create (res_get (res, "register"), reg_path);
if (!reg->bfs)
{
data1_destroy(reg->dh);
+ xfree(reg);
return 0;
}
if (useshadow)
- bf_cache (reg->bfs, res_get (res, "shadow"));
+ {
+ if (bf_cache (reg->bfs, res_get (res, "shadow")) == ZEBRA_FAIL)
+ {
+ bfs_destroy(reg->bfs);
+ data1_destroy(reg->dh);
+ xfree(reg);
+ return 0;
+ }
+ }
getcwd(cwd, sizeof(cwd)-1);
profilePath = res_get_def(res, "profilePath", DEFAULT_PROFILE_PATH);
{
char *buf;
int len;
+
+ zebra_get_hit_vector(zh, setname, poset[i].sysno);
+
recs[i].errCode =
zebra_record_fetch(zh, poset[i].sysno, poset[i].score,
stream, input_format, comp,
return res;
}
-ZEBRA_RES zebra_scan (ZebraHandle zh, ODR stream, Z_AttributesPlusTerm *zapt,
- oid_value attributeset,
- int *position,
- int *num_entries, ZebraScanEntry **entries,
- int *is_partial)
+ZEBRA_RES zebra_scan(ZebraHandle zh, ODR stream, Z_AttributesPlusTerm *zapt,
+ oid_value attributeset,
+ int *position,
+ int *num_entries, ZebraScanEntry **entries,
+ int *is_partial)
{
ZEBRA_RES res;
ASSERTZH;
return 0;
}
-ZEBRA_RES zebra_drop_database (ZebraHandle zh, const char *database)
+ZEBRA_RES zebra_drop_database(ZebraHandle zh, const char *db)
{
ZEBRA_RES ret = ZEBRA_OK;
ASSERTZH;
- yaz_log(log_level, "zebra_drop_database");
+ yaz_log(log_level, "zebra_drop_database %s", db);
zebra_clearError(zh);
- if (zebra_select_database (zh, database) == ZEBRA_FAIL)
+ if (zebra_select_database (zh, db) == ZEBRA_FAIL)
return ZEBRA_FAIL;
if (zebra_begin_trans (zh, 1) == ZEBRA_FAIL)
return ZEBRA_FAIL;
if (zh->reg->isamb)
{
- zebraExplain_curDatabase (zh->reg->zei, database);
+ zebraExplain_curDatabase (zh->reg->zei, db);
zebraExplain_trav_ord(zh->reg->zei, zh, delete_SU_handle);
zebraExplain_removeDatabase(zh->reg->zei, zh);
return ret;
}
-ZEBRA_RES zebra_create_database (ZebraHandle zh, const char *database)
+ZEBRA_RES zebra_create_database (ZebraHandle zh, const char *db)
{
ASSERTZH;
- yaz_log(log_level, "zebra_create_database %s", database);
- assert(database);
+ yaz_log(log_level, "zebra_create_database %s", db);
+ assert(db);
zebra_clearError(zh);
- if (zebra_select_database (zh, database) == ZEBRA_FAIL)
+ if (zebra_select_database (zh, db) == ZEBRA_FAIL)
return ZEBRA_FAIL;
if (zebra_begin_trans (zh, 1))
return ZEBRA_FAIL;
/* announce database */
- if (zebraExplain_newDatabase (zh->reg->zei, database, 0
+ if (zebraExplain_newDatabase (zh->reg->zei, db, 0
/* explainDatabase */))
{
zebra_end_trans (zh);
- zebra_setError(zh, YAZ_BIB1_ES_IMMEDIATE_EXECUTION_FAILED, database);
+ zebra_setError(zh, YAZ_BIB1_ES_IMMEDIATE_EXECUTION_FAILED, db);
return ZEBRA_FAIL;
}
return zebra_end_trans (zh);
*/
ZEBRA_RES zebra_search_PQF(ZebraHandle zh, const char *pqf_query,
- const char *setname, zint *numhits)
+ const char *setname, zint *hits)
{
- zint hits = 0;
+ zint lhits = 0;
ZEBRA_RES res = ZEBRA_OK;
Z_RPNQuery *query;
ODR odr = odr_createmem(ODR_ENCODE);
res = ZEBRA_FAIL;
}
else
- res = zebra_search_RPN(zh, odr, query, setname, &hits);
+ res = zebra_search_RPN(zh, odr, query, setname, &lhits);
odr_destroy(odr);
- yaz_log(log_level, "Hits: " ZINT_FORMAT, hits);
+ yaz_log(log_level, "Hits: " ZINT_FORMAT, lhits);
- if (numhits)
- *numhits = hits;
+ if (hits)
+ *hits = lhits;
return res;
}