diff --git a/usr/initiator.h b/usr/initiator.h index 97918cb..55bb630 100644 --- a/usr/initiator.h +++ b/usr/initiator.h @@ -35,11 +35,13 @@ #include "log.h" #ifndef ISCSI_CONFIG_ROOT -#define ISCSI_CONFIG_ROOT "/etc/iscsi/" +#define ISCSI_CONFIG_ROOT "/etc/iscsi" #endif #define CONFIG_FILE ISCSI_CONFIG_ROOT"/iscsid.conf" +#define CONFIG_FILE_STATELESS "/usr/share/defaults"CONFIG_FILE #define INITIATOR_NAME_FILE ISCSI_CONFIG_ROOT"/initiatorname.iscsi" +#define INITIATOR_NAME_FILE_STATELESS "/usr/share/defaults"INITIATOR_NAME_FILE #define PID_FILE "/run/iscsid.pid" diff --git a/usr/iscsid.c b/usr/iscsid.c index c72ed5d..08f4f3b 100644 --- a/usr/iscsid.c +++ b/usr/iscsid.c @@ -390,6 +390,12 @@ int main(int argc, char *argv[]) bool pid_file_specified = false; bool no_pid_file_specified = false; + if (access(config_file, R_OK) != 0) + config_file = CONFIG_FILE_STATELESS; + + if (access(initiatorname_file, R_OK) != 0) + initiatorname_file = INITIATOR_NAME_FILE_STATELESS; + while ((ch = getopt_long(argc, argv, "c:i:fd:nu:g:p:vh", long_options, &longindex)) >= 0) { switch (ch) { @@ -552,6 +558,9 @@ int main(int argc, char *argv[]) exit(ISCSI_ERR); } + log_info("iSCSI configuration file: %s", config_file); + log_info("iSCSI initiator file: %s", initiatorname_file); + memset(&daemon_config, 0, sizeof (daemon_config)); daemon_config.pid_file = pid_file; daemon_config.config_file = config_file; diff --git a/usr/iscsistart.c b/usr/iscsistart.c index df92d24..c6188aa 100644 --- a/usr/iscsistart.c +++ b/usr/iscsistart.c @@ -373,7 +373,11 @@ int main(int argc, char *argv[]) int control_fd, mgmt_ipc_fd, err; pid_t pid; - strcpy(config_file, CONFIG_FILE); + const char *config_file_stateless = CONFIG_FILE; + if (access(config_file_stateless, R_OK) != 0) + config_file_stateless = CONFIG_FILE_STATELESS; + + strcpy(config_file, config_file_stateless); idbm_node_setup_defaults(&config_rec); config_rec.name[0] = '\0'; config_rec.conn[0].address[0] = '\0';