int topology_init(void) { TopologyFileName = cfg_getstr("TOPOLOGY_FILENAME",ETC_PATH "/mfstopology.cfg"); racktree = NULL; topology_load(); main_reloadregister(topology_reload); main_destructregister(topology_term); return 0; }
void topology_reload(void) { int fd; if (TopologyFileName) { free(TopologyFileName); } if (!cfg_isdefined("TOPOLOGY_FILENAME")) { TopologyFileName = strdup(ETC_PATH "/mfs/mfstopology.cfg"); passert(TopologyFileName); if ((fd = open(TopologyFileName,O_RDONLY))<0 && errno==ENOENT) { free(TopologyFileName); TopologyFileName = strdup(ETC_PATH "/mfstopology.cfg"); if ((fd = open(TopologyFileName,O_RDONLY))>=0) { mfs_syslog(LOG_WARNING,"default sysconf path has changed - please move mfstopology.cfg from "ETC_PATH"/ to "ETC_PATH"/mfs/"); } } if (fd>=0) { close(fd); } } else { TopologyFileName = cfg_getstr("TOPOLOGY_FILENAME",ETC_PATH "/mfs/mfstopology.cfg"); } topology_load(); }
void topology_reload(void) { free(TopologyFileName); TopologyFileName = cfg_getstr("TOPOLOGY_FILENAME",ETC_PATH "/mfstopology.cfg"); topology_load(); }