- // Find highest room number and message number.
- ForEachRoom(control_find_highest, NULL);
- ForEachUser(control_find_user, NULL);
- fwrite(&CitControl, sizeof(struct CitControl),
- 1, control_fp);
+
+ rv = fchown(fileno(control_fp), config.c_ctdluid, -1);
+ if (rv == -1)
+ syslog(LOG_EMERG, "Failed to adjust ownership of: %s [%s]\n",
+ file_citadel_control, strerror(errno));
+
+ rv = fchmod(fileno(control_fp), S_IRUSR|S_IWUSR);
+ if (rv == -1)
+ syslog(LOG_EMERG, "Failed to adjust accessrights of: %s [%s]\n",
+ file_citadel_control, strerror(errno));
+ rv = fwrite(&CitControl, sizeof(struct CitControl), 1, control_fp);
+ if (rv == -1)
+ syslog(LOG_EMERG, "Failed to write: %s [%s]\n",
+ file_citadel_control, strerror(errno));