-
- if (strlen(id) > 255)
- return 0;
- strcpy(hostport, id);
- if ((dbname = strchr(hostport, '/')))
- *(dbname++) = '\0';
- else
- dbname = "";
- db = nmem_malloc(service->nmem, sizeof(*db));
- memset(db, 0, sizeof(*db));
- db->host = 0;
- db->url = nmem_strdup(service->nmem, id);
- db->databases = nmem_malloc(service->nmem, 2 * sizeof(char *));
- db->databases[0] = nmem_strdup(service->nmem, dbname);
- db->databases[1] = 0;
- db->errors = 0;
- db->explain = explain;
-
- db->num_settings = settings_num(service);
- db->settings = nmem_malloc(service->nmem, sizeof(struct settings*) *
- db->num_settings);
- memset(db->settings, 0, sizeof(struct settings*) * db->num_settings);
- idset = nmem_malloc(service->nmem, sizeof(*idset));