diff options
author | default <nobody@localhost> | 2022-11-23 15:05:55 +0100 |
---|---|---|
committer | default <nobody@localhost> | 2022-11-23 15:05:55 +0100 |
commit | 3e09c229e13bed452bd131a42ba85d3c7a84d922 (patch) | |
tree | 56a0c1f78d537081d73a640ac6de29271dac3322 /data.c | |
parent | 77f348827901f64dee592c4d06fbf1f4e1f9983d (diff) |
Moved db_upgrade() to its source file.
Diffstat (limited to 'data.c')
-rw-r--r-- | data.c | 67 |
1 files changed, 0 insertions, 67 deletions
@@ -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; -} |