diff options
| -rw-r--r-- | xlators/protocol/client/src/client-handshake.c | 8 | ||||
| -rw-r--r-- | xlators/protocol/server/src/server-handshake.c | 18 | ||||
| -rw-r--r-- | xlators/protocol/server/src/server3_1-fops.c | 2 | 
3 files changed, 23 insertions, 5 deletions
diff --git a/xlators/protocol/client/src/client-handshake.c b/xlators/protocol/client/src/client-handshake.c index 51467f3d185..b18d3a27e7e 100644 --- a/xlators/protocol/client/src/client-handshake.c +++ b/xlators/protocol/client/src/client-handshake.c @@ -994,6 +994,7 @@ client_setvolume (xlator_t *this, struct rpc_clnt *rpc)                          "asprintf failed while setting process_uuid");                  goto fail;          } +          ret = dict_set_dynstr (options, "process-uuid", process_uuid_xl);          if (ret < 0) {                  gf_log (this->name, GF_LOG_ERROR, @@ -1002,6 +1003,13 @@ client_setvolume (xlator_t *this, struct rpc_clnt *rpc)                  goto fail;          } +        ret = dict_set_str (options, "client-version", PACKAGE_VERSION); +        if (ret < 0) { +                gf_log (this->name, GF_LOG_WARNING, +                        "failed to set client-version(%s) in handshake msg", +                        PACKAGE_VERSION); +        } +          if (this->ctx->cmd_args.volfile_server) {                  if (this->ctx->cmd_args.volfile_id) {                          ret = dict_set_str (options, "volfile-key", diff --git a/xlators/protocol/server/src/server-handshake.c b/xlators/protocol/server/src/server-handshake.c index fc22fffe4f0..f04dc5d3471 100644 --- a/xlators/protocol/server/src/server-handshake.c +++ b/xlators/protocol/server/src/server-handshake.c @@ -345,6 +345,7 @@ server_setvolume (rpcsvc_request_t *req)          dict_t              *params        = NULL;          char                *name          = NULL;          char                *process_uuid  = NULL; +        char                *clnt_version  = NULL;          xlator_t            *xl            = NULL;          char                *msg           = NULL;          char                *volfile_key   = NULL; @@ -525,13 +526,20 @@ server_setvolume (rpcsvc_request_t *req)                          "Authentication module not initialized");          } +        ret = dict_get_str (params, "client-version", &clnt_version); +        if (ret) +                gf_log (this->name, GF_LOG_INFO, "client-version not set, " +                        "may be of older version"); +          ret = gf_authenticate (params, config_params,                                 conf->auth_modules);          if (ret == AUTH_ACCEPT) { +                  gf_log (this->name, GF_LOG_INFO, -                        "accepted client from %s", -                        (peerinfo)?peerinfo->identifier:""); +                        "accepted client from %s (version: %s)", +                        (peerinfo) ? peerinfo->identifier : "<>", +                        (clnt_version) ? clnt_version : "old");                  op_ret = 0;                  conn->bound_xl = xl;                  ret = dict_set_str (reply, "ERROR", "Success"); @@ -540,8 +548,10 @@ server_setvolume (rpcsvc_request_t *req)                                  "failed to set error msg");          } else {                  gf_log (this->name, GF_LOG_ERROR, -                        "Cannot authenticate client from %s", -                        (peerinfo)? peerinfo->identifier:"<>"); +                        "Cannot authenticate client from %s %s", +                        (peerinfo) ? peerinfo->identifier : "<>", +                        (clnt_version) ? clnt_version : "old"); +                  op_ret = -1;                  op_errno = EACCES;                  ret = dict_set_str (reply, "ERROR", "Authentication failed"); diff --git a/xlators/protocol/server/src/server3_1-fops.c b/xlators/protocol/server/src/server3_1-fops.c index ad9e1510920..8d3bc60b760 100644 --- a/xlators/protocol/server/src/server3_1-fops.c +++ b/xlators/protocol/server/src/server3_1-fops.c @@ -5188,7 +5188,7 @@ rpcsvc_actor_t glusterfs3_1_fop_actors[] = {  struct rpcsvc_program glusterfs3_1_fop_prog = { -        .progname  = "GlusterFS-3.1.0", +        .progname  = "GlusterFS " PACKAGE_VERSION,          .prognum   = GLUSTER3_1_FOP_PROGRAM,          .progver   = GLUSTER3_1_FOP_VERSION,          .numactors = GLUSTER3_1_FOP_PROCCNT,  | 
