65a66,67 > static nxt_int_t nxt_main_file_store(nxt_task_t *task, const char *tmp_name, > const char *name, u_char *buf, size_t size); 79a82,83 > nxt_uint_t nxt_conf_ver; > 1422,1423c1426 < size_t size; < ssize_t n; --- > size_t n, size; 1425d1427 < nxt_file_t file; 1426a1429 > u_char ver[NXT_INT_T_LEN]; 1460,1461d1462 < nxt_memzero(&file, sizeof(nxt_file_t)); < 1464c1465,1466 < file.name = (nxt_file_name_t *) rt->conf_tmp; --- > if (nxt_conf_ver != NXT_VERNUM) { > n = nxt_sprintf(ver, ver + NXT_INT_T_LEN, "%d", NXT_VERNUM) - ver; 1466,1471c1468,1471 < if (nxt_slow_path(nxt_file_open(task, &file, NXT_FILE_WRONLY, < NXT_FILE_TRUNCATE, NXT_FILE_OWNER_ACCESS) < != NXT_OK)) < { < goto error; < } --- > ret = nxt_main_file_store(task, rt->ver_tmp, rt->ver, ver, n); > if (nxt_slow_path(ret != NXT_OK)) { > goto error; > } 1473,1479c1473 < n = nxt_file_write(&file, p, size, 0); < < nxt_file_close(task, &file); < < if (nxt_slow_path(n != (ssize_t) size)) { < (void) nxt_file_delete(file.name); < goto error; --- > nxt_conf_ver = NXT_VERNUM; 1482c1476 < ret = nxt_file_rename(file.name, (nxt_file_name_t *) rt->conf); --- > ret = nxt_main_file_store(task, rt->conf_tmp, rt->conf, p, size); 1504a1499,1529 > static nxt_int_t > nxt_main_file_store(nxt_task_t *task, const char *tmp_name, const char *name, > u_char *buf, size_t size) > { > ssize_t n; > nxt_int_t ret; > nxt_file_t file; > > nxt_memzero(&file, sizeof(nxt_file_t)); > > file.name = (nxt_file_name_t *) name; > > ret = nxt_file_open(task, &file, NXT_FILE_WRONLY, NXT_FILE_TRUNCATE, > NXT_FILE_OWNER_ACCESS); > if (nxt_slow_path(ret != NXT_OK)) { > return NXT_ERROR; > } > > n = nxt_file_write(&file, buf, size, 0); > > nxt_file_close(task, &file); > > if (nxt_slow_path(n != (ssize_t) size)) { > (void) nxt_file_delete(file.name); > return NXT_ERROR; > } > > return nxt_file_rename(file.name, (nxt_file_name_t *) name); > } > >