|
|
|
@ -494,56 +494,7 @@ bool load_main_config(const char *file, bool is_active, bool validating) {
|
|
|
|
|
|
|
|
|
|
config->reading = true;
|
|
|
|
|
|
|
|
|
|
// Read security configs
|
|
|
|
|
// TODO: Security
|
|
|
|
|
bool success = true;
|
|
|
|
|
/*
|
|
|
|
|
DIR *dir = opendir(SYSCONFDIR "/sway/security.d");
|
|
|
|
|
if (!dir) {
|
|
|
|
|
sway_log(SWAY_ERROR,
|
|
|
|
|
"%s does not exist, sway will have no security configuration"
|
|
|
|
|
" and will probably be broken", SYSCONFDIR "/sway/security.d");
|
|
|
|
|
} else {
|
|
|
|
|
list_t *secconfigs = create_list();
|
|
|
|
|
char *base = SYSCONFDIR "/sway/security.d/";
|
|
|
|
|
struct dirent *ent = readdir(dir);
|
|
|
|
|
struct stat s;
|
|
|
|
|
while (ent != NULL) {
|
|
|
|
|
char *_path = malloc(strlen(ent->d_name) + strlen(base) + 1);
|
|
|
|
|
strcpy(_path, base);
|
|
|
|
|
strcat(_path, ent->d_name);
|
|
|
|
|
lstat(_path, &s);
|
|
|
|
|
if (S_ISREG(s.st_mode) && ent->d_name[0] != '.') {
|
|
|
|
|
list_add(secconfigs, _path);
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
free(_path);
|
|
|
|
|
}
|
|
|
|
|
ent = readdir(dir);
|
|
|
|
|
}
|
|
|
|
|
closedir(dir);
|
|
|
|
|
|
|
|
|
|
list_qsort(secconfigs, qstrcmp);
|
|
|
|
|
for (int i = 0; i < secconfigs->length; ++i) {
|
|
|
|
|
char *_path = secconfigs->items[i];
|
|
|
|
|
if (stat(_path, &s) || s.st_uid != 0 || s.st_gid != 0 ||
|
|
|
|
|
(((s.st_mode & 0777) != 0644) &&
|
|
|
|
|
(s.st_mode & 0777) != 0444)) {
|
|
|
|
|
sway_log(SWAY_ERROR,
|
|
|
|
|
"Refusing to load %s - it must be owned by root "
|
|
|
|
|
"and mode 644 or 444", _path);
|
|
|
|
|
success = false;
|
|
|
|
|
} else {
|
|
|
|
|
success = success && load_config(_path, config);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
list_free_items_and_destroy(secconfigs);
|
|
|
|
|
}
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
success = success && load_config(path, config,
|
|
|
|
|
&config->swaynag_config_errors);
|
|
|
|
|
bool success = load_config(path, config, &config->swaynag_config_errors);
|
|
|
|
|
|
|
|
|
|
if (validating) {
|
|
|
|
|
free_config(config);
|
|
|
|
|