diff options
| author | Kaushik BV <kaushikbv@gluster.com> | 2010-10-09 06:58:00 +0000 | 
|---|---|---|
| committer | Vijay Bellur <vijay@dev.gluster.com> | 2010-10-09 06:45:33 -0700 | 
| commit | 2eb9861cbc0387b1054bfeb7864c255a42b475f5 (patch) | |
| tree | 3b06d67d794d798ce852566d3e6a7efe9a83781d /xlators/mgmt/glusterd/src/glusterd-handler.c | |
| parent | afb6997fe74af257c7e687e33fe88a292f7a4a00 (diff) | |
mgmt/Glusterd: Memory leak fixes, minor CLI changesv3.1.0qa44
Signed-off-by: Kaushik BV <kaushikbv@gluster.com>
Signed-off-by: Vijay Bellur <vijay@dev.gluster.com>
BUG: 1852 (Usage message of volume set printed twice)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=1852
Diffstat (limited to 'xlators/mgmt/glusterd/src/glusterd-handler.c')
| -rw-r--r-- | xlators/mgmt/glusterd/src/glusterd-handler.c | 29 | 
1 files changed, 17 insertions, 12 deletions
diff --git a/xlators/mgmt/glusterd/src/glusterd-handler.c b/xlators/mgmt/glusterd/src/glusterd-handler.c index 8254569658c..49281b956d0 100644 --- a/xlators/mgmt/glusterd/src/glusterd-handler.c +++ b/xlators/mgmt/glusterd/src/glusterd-handler.c @@ -2786,40 +2786,45 @@ _print (dict_t *unused, char *key, data_t *value, void *newdict)  int  glusterd_set_volume_history (rpcsvc_request_t *req,dict_t *dict)  { -//         dict_t                 *reply_dict = NULL;          glusterd_volinfo_t     *volinfo    = NULL;          gf1_cli_set_vol_rsp     rsp        = {0, };          int                     ret        = -1;          char                   *volname    = NULL; -         -        gf_log ("", GF_LOG_DEBUG, "'volume set history' command"); -         +        char                    vol[256]   = {0, }; +          ret = dict_get_str (dict, "volname", &volname);          if (ret) { -                gf_log ("", GF_LOG_ERROR, "Unable to get volume name"); +                gf_log ("glusterd", GF_LOG_ERROR, "Unable to get volume name");                  goto out;          }          ret = glusterd_volinfo_find (volname, &volinfo);          if (ret) { -                gf_log ("", GF_LOG_ERROR, "Unable to allocate memory"); +                gf_log ("glusterd", GF_LOG_ERROR, +                        "'volume set' Volume %s not found", volname); +                snprintf (vol, 256, "Volume %s not present", volname); + +                rsp.op_errstr = gf_strdup (vol); +                if (!rsp.op_errstr) { +                        rsp.op_errstr = ""; +                        gf_log ("glusterd", GF_LOG_ERROR, "Out of memory"); +                }                  goto out;          } -         -                  dict_foreach (volinfo->dict, _print, volinfo->dict); -         +          ret = dict_allocate_and_serialize (volinfo->dict, &rsp.dict.dict_val,                                             (size_t *)&rsp.dict.dict_len); -  +          if (ret) {                  gf_log ("", GF_LOG_DEBUG, "FAILED: allocatea n serialize dict");                  goto out;          } +out:          if (!ret)                  rsp.op_ret = 1;          else @@ -2827,12 +2832,12 @@ glusterd_set_volume_history (rpcsvc_request_t *req,dict_t *dict)          if (!rsp.volname)                   rsp.volname = "";          if (!rsp.op_errstr) -                rsp.op_errstr = ""; +                rsp.op_errstr = "Error, Validation failed";          ret = glusterd_submit_reply (req, &rsp, NULL, 0, NULL,                                       gf_xdr_serialize_cli_set_vol_rsp); -out: +                  gf_log ("", GF_LOG_DEBUG, "Returning %d", ret);          return ret;  }  | 
