summaryrefslogtreecommitdiff
path: root/data.c
diff options
context:
space:
mode:
authordefault <nobody@localhost>2022-11-23 15:05:55 +0100
committerdefault <nobody@localhost>2022-11-23 15:05:55 +0100
commit3e09c229e13bed452bd131a42ba85d3c7a84d922 (patch)
tree56a0c1f78d537081d73a640ac6de29271dac3322 /data.c
parent77f348827901f64dee592c4d06fbf1f4e1f9983d (diff)
Moved db_upgrade() to its source file.
Diffstat (limited to 'data.c')
-rw-r--r--data.c67
1 files changed, 0 insertions, 67 deletions
diff --git a/data.c b/data.c
index 8746545..457219c 100644
--- a/data.c
+++ b/data.c
@@ -1312,70 +1312,3 @@ void purge_all(void)
}
}
}
-
-
-int db_upgrade(d_char **error)
-{
- int ret = 1;
- int changed = 0;
- double f = 0.0;
-
- for (;;) {
- char *layout = xs_dict_get(srv_config, "layout");
- double nf;
-
- f = nf = xs_number_get(layout);
-
- if (!(f < db_layout))
- break;
-
- srv_log(xs_fmt("db_upgrade %1.1lf < %1.1lf", f, db_layout));
-
- if (f < 2.0) {
- *error = xs_fmt("ERROR: unsupported old disk layout %1.1lf\n", f);
- ret = 0;
- break;
- }
- else
- if (f < 2.1) {
- xs *dir = xs_fmt("%s/object", srv_basedir);
- mkdir(dir, 0755);
-
- nf = 2.1;
- }
-
- if (f < nf) {
- f = nf;
- xs *nv = xs_number_new(f);
- srv_config = xs_dict_set(srv_config, "layout", nv);
-
- srv_log(xs_fmt("db_upgrade converted to version %1.1lf", f));
- changed++;
- }
- else
- break;
- }
-
- if (f > db_layout) {
- *error = xs_fmt("ERROR: unknown future version %lf\n", f);
- ret = 0;
- }
-
- if (changed) {
- /* upgrade the configuration file */
- xs *fn = xs_fmt("%s/server.json", srv_basedir);
- FILE *f;
-
- if ((f = fopen(fn, "w")) != NULL) {
- xs *j = xs_json_dumps_pp(srv_config, 4);
- fwrite(j, strlen(j), 1, f);
- fclose(f);
-
- srv_log(xs_fmt("upgraded db %s after %d changes", fn, changed));
- }
- else
- ret = 0;
- }
-
- return ret;
-}