X-Git-Url: http://jsfdemo.indexdata.com/?a=blobdiff_plain;f=index%2Fzebraapi.c;h=d89c263b2eb162083fd653477076c4397768d399;hb=23c386f2b4511acfdb389adc7f48f15d284c639c;hp=dc26b11463a08999b3b75606649a3300ee079e95;hpb=38bd819ed5b2c30a9bc302412d04f9cb8d345f02;p=idzebra-moved-to-github.git diff --git a/index/zebraapi.c b/index/zebraapi.c index dc26b11..d89c263 100644 --- a/index/zebraapi.c +++ b/index/zebraapi.c @@ -1,4 +1,4 @@ -/* $Id: zebraapi.c,v 1.202 2006-02-21 15:23:11 adam Exp $ +/* $Id: zebraapi.c,v 1.204 2006-03-23 09:15:25 adam Exp $ Copyright (C) 1995-2005 Index Data ApS @@ -328,7 +328,14 @@ struct zebra_register *zebra_register_open(ZebraService zs, const char *name, data1_set_tabroot (reg->dh, reg_path); reg->recTypes = recTypes_init (zs->record_classes, reg->dh); - reg->zebra_maps = zebra_maps_open (res, reg_path); + if ((reg->zebra_maps = zebra_maps_open (res, reg_path)) == 0) { + /* ### Do we need to destroy reg->recTypes? */ + bfs_destroy(reg->bfs); + data1_destroy(reg->dh); + xfree(reg); + return 0; + } + reg->rank_classes = NULL; reg->key_buf = 0; @@ -694,11 +701,11 @@ static void zebra_select_register (ZebraHandle zh, const char *new_reg) res_set (zh->res, "lockDir", zh->path_reg); sprintf (fname, "norm.%s.LCK", zh->reg_name); zh->lock_normal = - zebra_lock_create (res_get(zh->res, "lockDir"), fname, 0); + zebra_lock_create (res_get(zh->res, "lockDir"), fname); sprintf (fname, "shadow.%s.LCK", zh->reg_name); zh->lock_shadow = - zebra_lock_create (res_get(zh->res, "lockDir"), fname, 0); + zebra_lock_create (res_get(zh->res, "lockDir"), fname); if (!zh->lock_normal || !zh->lock_shadow) { @@ -2351,3 +2358,12 @@ void zebra_setError_zint(ZebraHandle zh, int code, zint i) zh->errString = nmem_strdup(zh->nmem_error, vstr); } +void zebra_lock_prefix (Res res, char *path) +{ + const char *lock_dir = res_get_def (res, "lockDir", ""); + + strcpy (path, lock_dir); + if (*path && path[strlen(path)-1] != '/') + strcat (path, "/"); +} +