struct conf_server *servers;
int no_threads;
+ int max_sockets;
WRBUF confdir;
char *path;
iochan_man_t iochan_man;
{
struct database *db;
wrbuf_puts(w, " <databases>\n");
- for(db = service->databases; db; db = db->next)
+ for (db = service->databases; db; db = db->next)
{
int i;
wrbuf_puts(w, " <database");
for (i = 0; i < db->num_settings; i++)
{
struct setting *s = db->settings[i];
- while (s != NULL)
+ for (; s; s = s->next)
{
- wrbuf_puts(w, " <setting");
- wrbuf_puts(w, " name=\"");
+ wrbuf_puts(w, " <setting name=\"");
wrbuf_xmlputs(w, s->name);
wrbuf_puts(w, "\"");
wrbuf_puts(w, " value=\"");
wrbuf_xmlputs(w, s->value);
wrbuf_puts(w, "\"");
wrbuf_puts(w, " />\n");
- s = s->next;
}
}
wrbuf_puts(w, " </database>\n");
{
struct conf_service *s = server->service;
int i;
-
+
wrbuf_puts(w, " <services>\n");
for (; s; s = s->next)
{
wrbuf_puts(w, ">\n");
if (s->settings)
{
- for (i=0; i<s->settings->num_settings; i++)
+ for (i = 0; i < s->settings->num_settings; i++)
{
struct setting *S = s->settings->settings[i];
- while (S != NULL) {
- wrbuf_puts(w, " <setting");
- wrbuf_puts(w, " name=\"");
+ for (; S; S = S->next)
+ {
+ wrbuf_puts(w, " <setting name=\"");
wrbuf_xmlputs(w, S->name);
wrbuf_puts(w, "\"");
wrbuf_puts(w, " value=\"");
wrbuf_xmlputs(w, S->value);
wrbuf_puts(w, "\"");
- if (S->target) {
+ if (S->target)
+ {
wrbuf_puts(w, " target=\"");
wrbuf_xmlputs(w, S->target);
wrbuf_puts(w, "\"");
}
-
wrbuf_puts(w, " />\n");
-
- S = S->next;
}
}
}
info_service_metadata(s, w);
info_service_databases(s, w);
- wrbuf_puts(w, " </service>");
-
- wrbuf_puts(w, "\n");
+ wrbuf_puts(w, " </service>\n");
}
wrbuf_puts(w, " </services>\n");
}
xmlFree(number);
}
}
+ else if (!strcmp((const char *) n->name, "sockets"))
+ {
+ xmlChar *number = xmlGetProp(n, (xmlChar *) "max");
+ if (number)
+ {
+ config->max_sockets = atoi((const char *) number);
+ xmlFree(number);
+ }
+ }
else if (!strcmp((const char *) n->name, "file"))
{
xmlChar *path = xmlGetProp(n, (xmlChar *) "path");
config->servers = 0;
config->path = nmem_strdup(nmem, ".");
config->no_threads = 0;
+ config->max_sockets = 0;
config->iochan_man = 0;
config->confdir = wrbuf_alloc();
{
struct conf_server *ser;
- conf->iochan_man = iochan_man_create(conf->no_threads);
+ conf->iochan_man = iochan_man_create(conf->no_threads, conf->max_sockets);
for (ser = conf->servers; ser; ser = ser->next)
{
WRBUF w;