From c4b68d3e47a212bfa2b6b03012d52d204cad9f97 Mon Sep 17 00:00:00 2001 From: Matt Ezell <ezellma@ornl.gov> Date: Wed, 17 Oct 2018 14:12:27 -0600 Subject: [PATCH] Refactor function to return early In preparation for next commit. Bug 5680 --- src/srun/srun.c | 56 ++++++++++++++++++++++++------------------------- 1 file changed, 27 insertions(+), 29 deletions(-) diff --git a/src/srun/srun.c b/src/srun/srun.c index c187d27771f..fe89f4ac8a5 100644 --- a/src/srun/srun.c +++ b/src/srun/srun.c @@ -844,37 +844,35 @@ static void _pty_restore(void) static void _setup_env_working_cluster(void) { - char *working_env = NULL; + char *working_env, *addr_ptr, *port_ptr, *rpc_ptr; - if ((working_env = xstrdup(getenv("SLURM_WORKING_CLUSTER")))) { - char *addr_ptr, *port_ptr, *rpc_ptr; + if ((working_env = xstrdup(getenv("SLURM_WORKING_CLUSTER"))) == NULL) + return; - if (!(addr_ptr = strchr(working_env, ':')) || - !(port_ptr = strchr(addr_ptr + 1, ':')) || - !(rpc_ptr = strchr(port_ptr + 1, ':'))) { - error("malformed cluster addr and port in SLURM_WORKING_CLUSTER env var: '%s'", - working_env); - exit(1); - } + /* Format is cluster_name:address:port:rpc[:plugin_id_select] */ + if (!(addr_ptr = strchr(working_env, ':')) || + !(port_ptr = strchr(addr_ptr + 1, ':')) || + !(rpc_ptr = strchr(port_ptr + 1, ':'))) { + error("malformed cluster addr and port in SLURM_WORKING_CLUSTER env var: '%s'", + working_env); + exit(1); + } - *addr_ptr++ = '\0'; - *port_ptr++ = '\0'; - *rpc_ptr++ = '\0'; - - if (xstrcmp(slurmctld_conf.cluster_name, working_env)) { - working_cluster_rec = - xmalloc(sizeof(slurmdb_cluster_rec_t)); - slurmdb_init_cluster_rec(working_cluster_rec, false); - - working_cluster_rec->control_host = xstrdup(addr_ptr);; - working_cluster_rec->control_port = strtol(port_ptr, - NULL, 10); - working_cluster_rec->rpc_version = strtol(rpc_ptr, - NULL, 10); - slurm_set_addr(&working_cluster_rec->control_addr, - working_cluster_rec->control_port, - working_cluster_rec->control_host); - } - xfree(working_env); + *addr_ptr++ = '\0'; + *port_ptr++ = '\0'; + *rpc_ptr++ = '\0'; + + if (xstrcmp(slurmctld_conf.cluster_name, working_env)) { + working_cluster_rec = xmalloc(sizeof(slurmdb_cluster_rec_t)); + slurmdb_init_cluster_rec(working_cluster_rec, false); + + working_cluster_rec->name = xstrdup(working_env); + working_cluster_rec->control_host = xstrdup(addr_ptr); + working_cluster_rec->control_port = strtol(port_ptr, NULL, 10); + working_cluster_rec->rpc_version = strtol(rpc_ptr, NULL, 10); + slurm_set_addr(&working_cluster_rec->control_addr, + working_cluster_rec->control_port, + working_cluster_rec->control_host); } + xfree(working_env); } -- GitLab