diff options
Diffstat (limited to 'xlators/protocol/server/src/server-helpers.c')
| -rw-r--r-- | xlators/protocol/server/src/server-helpers.c | 107 | 
1 files changed, 60 insertions, 47 deletions
diff --git a/xlators/protocol/server/src/server-helpers.c b/xlators/protocol/server/src/server-helpers.c index 545be6e9580..24d617f9291 100644 --- a/xlators/protocol/server/src/server-helpers.c +++ b/xlators/protocol/server/src/server-helpers.c @@ -16,6 +16,7 @@  #include "server.h"  #include "server-helpers.h"  #include "gidcache.h" +#include "server-messages.h"  #include <fnmatch.h>  #include <pwd.h> @@ -42,25 +43,27 @@ gid_resolve (server_conf_t *conf, call_stack_t *root)          ret = getpwuid_r (root->uid, &mypw, mystrs, sizeof(mystrs), &result);          if (ret != 0) { -                gf_log("gid-cache", GF_LOG_ERROR, "getpwuid_r(%u) failed", -                       root->uid); +                gf_msg ("gid-cache", GF_LOG_ERROR, errno, +                        PS_MSG_GET_UID_FAILED, "getpwuid_r(%u) failed", +                        root->uid);                  return -1;          }          if (!result) { -                gf_log ("gid-cache", GF_LOG_ERROR, "getpwuid_r(%u) found " -                        "nothing", root->uid); +                gf_msg ("gid-cache", GF_LOG_ERROR, 0, PS_MSG_UID_NOT_FOUND, +                        "getpwuid_r(%u) found nothing", root->uid);                  return -1;          } -        gf_log ("gid-cache", GF_LOG_TRACE, "mapped %u => %s", root->uid, -                result->pw_name); +        gf_msg_trace ("gid-cache", 0, "mapped %u => %s", root->uid, +                      result->pw_name);          ngroups = GF_MAX_AUX_GROUPS;          ret = getgrouplist (result->pw_name, root->gid, mygroups, &ngroups);          if (ret == -1) { -                gf_log ("gid-cache", GF_LOG_ERROR, "could not map %s to group " -                        "list (%d gids)", result->pw_name, root->ngrps); +                gf_msg ("gid-cache", GF_LOG_ERROR, 0, PS_MSG_MAPPING_ERROR, +                        "could not map %s to group list (%d gids)", +                        result->pw_name, root->ngrps);                  return -1;          }          root->ngrps = (uint16_t) ngroups; @@ -286,12 +289,14 @@ do_fd_cleanup (xlator_t *this, client_t* client, fdentry_t *fdentries, int fd_co                          ret = inode_path (fd->inode, NULL, &path);                          if (ret > 0) { -                                gf_log (this->name, GF_LOG_INFO, +                                gf_msg (this->name, GF_LOG_INFO, 0, +                                        PS_MSG_FD_CLEANUP,                                          "fd cleanup on %s", path);                                  GF_FREE (path);                          }  else { -                                gf_log (this->name, GF_LOG_INFO, +                                gf_msg (this->name, GF_LOG_INFO, 0, +                                        PS_MSG_FD_CLEANUP,                                          "fd cleanup on inode with gfid %s",                                          uuid_utoa (fd->inode->gfid));                          } @@ -334,7 +339,9 @@ server_connection_cleanup (xlator_t *this, client_t *client,          serv_ctx = server_ctx_get (client, client->this);          if (serv_ctx == NULL) { -                gf_log (this->name, GF_LOG_INFO, "server_ctx_get() failed"); +                gf_msg (this->name, GF_LOG_INFO, 0, +                        PS_MSG_SERVER_CTX_GET_FAILED, "server_ctx_get() " +                        "failed");                  goto out;          } @@ -356,7 +363,8 @@ server_connection_cleanup (xlator_t *this, client_t *client,          if (fdentries != NULL)                  ret = do_fd_cleanup (this, client, fdentries, fd_count);          else -                gf_log (this->name, GF_LOG_INFO, "no fdentries to clean"); +                gf_msg (this->name, GF_LOG_INFO, 0, PS_MSG_FDENTRY_NULL, +                        "no fdentries to clean");          if (cd_ret || ret)                  ret = -1; @@ -521,9 +529,9 @@ server_build_config (xlator_t *this, server_conf_t *conf)          if (data) {                  ret = gf_string2boolean(data->data, &conf->verify_volfile);                  if (ret != 0) { -                        gf_log (this->name, GF_LOG_WARNING, -                                "wrong value for 'verify-volfile-checksum', " -                                "Neglecting option"); +                        gf_msg (this->name, GF_LOG_WARNING, EINVAL, +                                PS_MSG_INVALID_ENTRY, "wrong value for '" +                                "verify-volfile-checksum', Neglecting option");                  }          } @@ -531,9 +539,9 @@ server_build_config (xlator_t *this, server_conf_t *conf)          if (data) {                  ret = gf_string2boolean (data->data, &conf->trace);                  if (ret != 0) { -                        gf_log (this->name, GF_LOG_WARNING, -                                "'trace' takes on only boolean values. " -                                "Neglecting option"); +                        gf_msg (this->name, GF_LOG_WARNING, EINVAL, +                                PS_MSG_INVALID_ENTRY, "'trace' takes on only " +                                "boolean values. Neglecting option");                  }          } @@ -541,9 +549,8 @@ server_build_config (xlator_t *this, server_conf_t *conf)          ret = dict_get_int32 (this->options, "limits.transaction-size",                                &conf->rpc_conf.max_block_size);          if (ret < 0) { -                gf_log (this->name, GF_LOG_TRACE, -                        "defaulting limits.transaction-size to %d", -                        DEFAULT_BLOCK_SIZE); +                gf_msg_trace (this->name, 0, "defaulting limits.transaction-" +                              "size to %d", DEFAULT_BLOCK_SIZE);                  conf->rpc_conf.max_block_size = DEFAULT_BLOCK_SIZE;          } @@ -553,16 +560,17 @@ server_build_config (xlator_t *this, server_conf_t *conf)                     or directory specified is non standard */                  ret = stat (data->data, &buf);                  if ((ret != 0) || !S_ISDIR (buf.st_mode)) { -                        gf_log (this->name, GF_LOG_ERROR, -                                "Directory '%s' doesn't exist, exiting.", -                                data->data); +                        gf_msg (this->name, GF_LOG_ERROR, 0, +                                PS_MSG_DIR_NOT_FOUND, "Directory '%s' doesn't " +                                "exist, exiting.", data->data);                          ret = -1;                          goto out;                  }                  /* Make sure that conf-dir doesn't contain ".." in path */                  if ((gf_strstr (data->data, "/", "..")) == -1) {                          ret = -1; -                        gf_log (this->name, GF_LOG_ERROR, +                        gf_msg (this->name, GF_LOG_ERROR, 0, +                                PS_MSG_CONF_DIR_INVALID,                                  "%s: invalid conf_dir", data->data);                          goto out;                  } @@ -759,9 +767,8 @@ server_print_reply (call_frame_t *frame, int op_ret, int op_errno)          if (state->fd)                  snprintf (fdstr, 32, " fd=%p", state->fd); -        gf_log (this->name, GF_LOG_INFO, -                "%s%s => (%d, %d)%s", -                op, caller, op_ret, op_errno, fdstr); +        gf_msg (this->name, GF_LOG_INFO, op_errno, PS_MSG_SERVER_MSG, +                "%s%s => (%d, %d)%s", op, caller, op_ret, op_errno, fdstr);  out:          return;  } @@ -822,9 +829,8 @@ server_print_request (call_frame_t *frame)                  break;          } -        gf_log (this->name, GF_LOG_INFO, -                "%s%s%s%s%s%s%s", -                op, caller, +        gf_msg (this->name, GF_LOG_INFO, 0, PS_MSG_SERVER_MSG, +                "%s%s%s%s%s%s%s", op, caller,                  resolve_vars, loc_vars, resolve2_vars, loc2_vars, other_vars);  out:          return; @@ -859,9 +865,9 @@ serialize_rsp_direntp (gf_dirent_t *entries, gfs3_readdirp_rsp *rsp)                  if (entry->dict) {                          trav->dict.dict_len = dict_serialized_length (entry->dict);                          if (trav->dict.dict_len > UINT_MAX) { -                                gf_log (THIS->name, GF_LOG_ERROR, -                                        "failed to get serialized length " -                                        "of reply dict"); +                                gf_msg (THIS->name, GF_LOG_ERROR, EINVAL, +                                        PS_MSG_INVALID_ENTRY, "failed to get " +                                        "serialized length of reply dict");                                  errno = EINVAL;                                  trav->dict.dict_len = 0;                                  goto out; @@ -877,7 +883,8 @@ serialize_rsp_direntp (gf_dirent_t *entries, gfs3_readdirp_rsp *rsp)                          ret = dict_serialize (entry->dict, trav->dict.dict_val);                          if (ret < 0) { -                                gf_log (THIS->name, GF_LOG_ERROR, +                                gf_msg (THIS->name, GF_LOG_ERROR, 0, +                                        PS_MSG_DICT_SERIALIZE_FAIL,                                          "failed to serialize reply dict");                                  errno = -ret;                                  trav->dict.dict_len = 0; @@ -989,7 +996,8 @@ gf_server_check_getxattr_cmd (call_frame_t *frame, const char *key)                  pthread_mutex_lock (&conf->mutex);                  {                          list_for_each_entry (xprt, &conf->xprt_list, list) { -                                gf_log ("mount-point-list", GF_LOG_INFO, +                                gf_msg ("mount-point-list", GF_LOG_INFO, 0, +                                        PS_MSG_MOUNT_PT_FAIL,                                          "%s", xprt->peerinfo.identifier);                          }                  } @@ -1021,7 +1029,7 @@ gf_server_check_setxattr_cmd (call_frame_t *frame, dict_t *dict)                          total_read  += xprt->total_bytes_read;                          total_write += xprt->total_bytes_write;                  } -                gf_log ("stats", GF_LOG_INFO, +                gf_msg ("stats", GF_LOG_INFO, 0, PS_MSG_RW_STAT,                          "total-read %"PRIu64", total-write %"PRIu64,                          total_read, total_write);          } @@ -1038,7 +1046,7 @@ server_cancel_grace_timer (xlator_t *this, client_t *client)          gf_boolean_t   cancelled = _gf_false;          if (!this || !client) { -                gf_log (THIS->name, GF_LOG_ERROR, +                gf_msg (THIS->name, GF_LOG_ERROR, EINVAL, PS_MSG_INVALID_ENTRY,                          "Invalid arguments to cancel connection timer");                  return cancelled;          } @@ -1046,7 +1054,9 @@ server_cancel_grace_timer (xlator_t *this, client_t *client)          serv_ctx = server_ctx_get (client, client->this);          if (serv_ctx == NULL) { -                gf_log (this->name, GF_LOG_INFO, "server_ctx_get() failed"); +                gf_msg (this->name, GF_LOG_INFO, 0, +                        PS_MSG_SERVER_CTX_GET_FAILED, +                        "server_ctx_get() failed");                  goto out;          } @@ -1124,8 +1134,8 @@ auth_set_username_passwd (dict_t *input_params, dict_t *config_params,          ret = dict_get_str (input_params, "username", &username);          if (ret) { -                gf_log ("auth/login", GF_LOG_DEBUG, -                        "username not found, returning DONT-CARE"); +                gf_msg_debug ("auth/login", 0, "username not found, returning " +                              "DONT-CARE");                  /* For non trusted clients username and password                     will not be there. So dont reject the client.                  */ @@ -1135,14 +1145,15 @@ auth_set_username_passwd (dict_t *input_params, dict_t *config_params,          ret = dict_get_str (input_params, "password", &password);          if (ret) { -                gf_log ("auth/login", GF_LOG_WARNING, +                gf_msg ("auth/login", GF_LOG_WARNING, 0, +                        PS_MSG_DICT_GET_FAILED,                          "password not found, returning DONT-CARE");                  goto out;          }          ret = dict_get_str (input_params, "remote-subvolume", &brick_name);          if (ret) { -                gf_log ("auth/login", GF_LOG_ERROR, +                gf_msg ("auth/login", GF_LOG_ERROR, 0, PS_MSG_DICT_GET_FAILED,                          "remote-subvolume not specified");                  ret = -1;                  goto out; @@ -1177,8 +1188,9 @@ auth_set_username_passwd (dict_t *input_params, dict_t *config_params,                                  GF_FREE (searchstr);                                  if (!passwd_data) { -                                        gf_log ("auth/login", GF_LOG_ERROR, -                                                "wrong username/password " +                                        gf_msg ("auth/login", GF_LOG_ERROR, 0, +                                                PS_MSG_LOGIN_ERROR, "wrong " +                                                "username/password "                                                  "combination");                                          ret = -1;                                          goto out; @@ -1193,8 +1205,9 @@ auth_set_username_passwd (dict_t *input_params, dict_t *config_params,                                                  gf_strdup (password);                                  }                                  if (ret == -1) -                                        gf_log ("auth/login", GF_LOG_ERROR, -                                                "wrong password for user %s", +                                        gf_msg ("auth/login", GF_LOG_ERROR, 0, +                                                PS_MSG_LOGIN_ERROR, "wrong " +                                                "password for user %s",                                                  username);                                  break;                          }  | 
