diff options
Diffstat (limited to 'glusterfsd/src/glusterfsd.c')
| -rw-r--r-- | glusterfsd/src/glusterfsd.c | 20 | 
1 files changed, 15 insertions, 5 deletions
diff --git a/glusterfsd/src/glusterfsd.c b/glusterfsd/src/glusterfsd.c index d73be8fdd3e..f1cd0270735 100644 --- a/glusterfsd/src/glusterfsd.c +++ b/glusterfsd/src/glusterfsd.c @@ -410,10 +410,12 @@ out:  static error_t  parse_opts (int key, char *arg, struct argp_state *state)  { -        cmd_args_t *cmd_args = NULL; -        uint32_t    n = 0; -        double      d = 0.0; -        gf_boolean_t b = _gf_false; +        cmd_args_t   *cmd_args      = NULL; +        uint32_t      n             = 0; +        double        d             = 0.0; +        gf_boolean_t  b             = _gf_false; +        char         *pwd           = NULL; +        char          tmp_buf[2048] = {0,};          cmd_args = state->input; @@ -456,7 +458,15 @@ parse_opts (int key, char *arg, struct argp_state *state)                  if (cmd_args->volfile)                          GF_FREE (cmd_args->volfile); -                cmd_args->volfile = gf_strdup (arg); +                if (arg[0] != '/') { +                        pwd = get_current_dir_name (); +                        snprintf (tmp_buf, 1024, "%s/%s", pwd, arg); +                        cmd_args->volfile = gf_strdup (tmp_buf); +                        free (pwd); +                } else { +                        cmd_args->volfile = gf_strdup (arg); +                } +                  break;          case ARGP_LOG_SERVER_KEY:  | 
