diff options
| author | Prashanth Pai <ppai@redhat.com> | 2017-12-22 15:52:46 +0530 | 
|---|---|---|
| committer | Amar Tumballi <amarts@redhat.com> | 2017-12-27 05:22:00 +0000 | 
| commit | 73823181dd0ffa51761c30eefbc2f43888ffe044 (patch) | |
| tree | c93b567f4219c22dc29c9f8aaf711f5847adce58 /libglusterfs/src/common-utils.c | |
| parent | b868d6077c14e3653fdaddcb856ab2bf6ceb9c00 (diff) | |
Set log path correctly when clients use UDS
When a libgapi client passes a path to Unix socket file as the "host"
parameter to glfs_set_volfile_server() and doesn't explicitly specify
a log file, the default log file path being generated was invalid.
Example:
ERROR: failed to create logfile "/var/log/glusterfs//tmp/gd2/
w1/run/glusterd2.socket-test-10368.log" (No such file or directory)
With this fix, it is set to:
/var/log/glusterfs/tmp-gd2-w1-run-glusterd2.socket-test-31869.log
Change-Id: Ibb4b58382c72eab0d104543781e0e966ebf4c47f
Signed-off-by: Prashanth Pai <ppai@redhat.com>
Diffstat (limited to 'libglusterfs/src/common-utils.c')
| -rw-r--r-- | libglusterfs/src/common-utils.c | 28 | 
1 files changed, 23 insertions, 5 deletions
diff --git a/libglusterfs/src/common-utils.c b/libglusterfs/src/common-utils.c index 46a3084fe39..4eed92a92f9 100644 --- a/libglusterfs/src/common-utils.c +++ b/libglusterfs/src/common-utils.c @@ -3564,6 +3564,7 @@ gf_set_log_file_path (cmd_args_t *cmd_args, glusterfs_ctx_t *ctx)          int   i = 0;          int   j = 0;          int   ret = 0; +        int   tmp_len = 0;          char  tmp_str[1024] = {0,};          if (!cmd_args) @@ -3617,11 +3618,28 @@ gf_set_log_file_path (cmd_args_t *cmd_args, glusterfs_ctx_t *ctx)          }          if (cmd_args->volfile_server) { - -                ret = gf_asprintf (&cmd_args->log_file, -                                   DEFAULT_LOG_FILE_DIRECTORY "/%s-%s-%d.log", -                                   cmd_args->volfile_server, -                                   cmd_args->volfile_id, getpid()); +                if (strncmp (cmd_args->volfile_server_transport, +                             "unix", 4) == 0) { +                        if (cmd_args->volfile_server[0] == '/') +                                i = 1; +                        tmp_len = strlen (cmd_args->volfile_server); +                        for (j = 0; i < tmp_len; i++, j++) { +                                tmp_str[j] = cmd_args->volfile_server[i]; +                                if (cmd_args->volfile_server[i] == '/') +                                        tmp_str[j] = '-'; +                        } +                        ret = gf_asprintf (&cmd_args->log_file, +                                           "%s/%s-%s-%d.log", +                                           DEFAULT_LOG_FILE_DIRECTORY, +                                           tmp_str, +                                           cmd_args->volfile_id, getpid()); +                } else { +                        ret = gf_asprintf (&cmd_args->log_file, +                                           "%s/%s-%s-%d.log", +                                           DEFAULT_LOG_FILE_DIRECTORY, +                                           cmd_args->volfile_server, +                                           cmd_args->volfile_id, getpid()); +                }                  if (ret > 0)                          ret = 0;          }  | 
