/* This file is part of Pazpar2.
- Copyright (C) 2006-2010 Index Data
+ Copyright (C) 2006-2011 Index Data
Pazpar2 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
#include "pazpar2_config.h"
#include "settings.h"
#include "http.h"
-#include "zeerex.h"
#include "database.h"
#include <sys/types.h>
YAZ_MUTEX mutex;
};
-static xmlDoc *get_explain_xml(struct conf_targetprofiles *targetprofiles,
- const char *id)
-{
- struct stat st;
- char *dir;
- char path[256];
- char ide[256];
- if (targetprofiles->type != Targetprofiles_local)
- {
- yaz_log(YLOG_FATAL, "Only supports local type");
- return 0;
- }
- dir = targetprofiles->src;
- urlencode(id, ide);
- sprintf(path, "%s/%s", dir, ide);
- if (!stat(path, &st))
- return xmlParseFile(path);
- else
- return 0;
-}
-
// Create a new host structure for hostport
static struct host *create_host(const char *hostport, iochan_man_t iochan_man)
{
}
pazpar2_mutex_create(&host->mutex, "host");
+ yaz_cond_create(&host->cond_ready);
+
return host;
}
struct database *db;
char hostport[256];
char *dbname;
+ char *db_comment;
struct setting *idset;
if (strlen(id) > 255)
*(dbname++) = '\0';
else
dbname = "";
+ db_comment = strchr(dbname, '#');
+ if (db_comment)
+ *db_comment = '\0';
db = nmem_malloc(nmem, sizeof(*db));
memset(db, 0, sizeof(*db));
db->host = 0;
db->errors = 0;
db->explain = 0;
- db->num_settings = PZ_NEGOTIATION_CHARSET+1;
+ db->num_settings = PZ_MAX_EOF;
db->settings = nmem_malloc(nmem, sizeof(struct settings*) *
db->num_settings);
memset(db->settings, 0, sizeof(struct settings*) * db->num_settings);
{
struct database *db;
struct zr_explain *explain = 0;
- xmlDoc *doc = 0;
- if (service->targetprofiles
- && (doc = get_explain_xml(service->targetprofiles, id)))
- {
- explain = zr_read_xml(service->nmem, xmlDocGetRootElement(doc));
- if (!explain)
- return 0;
- }
db = new_database(id, service->nmem);
db->explain = explain;
db->next = service->databases;
{
struct host *p_next = p->next;
yaz_mutex_destroy(&p->mutex);
+ yaz_cond_destroy(&p->cond_ready);
xfree(p->ipport);
xfree(p->hostport);
xfree(p);