summaryrefslogtreecommitdiffstats
path: root/xlators/protocol/server/src/server.c
diff options
context:
space:
mode:
Diffstat (limited to 'xlators/protocol/server/src/server.c')
-rw-r--r--xlators/protocol/server/src/server.c36
1 files changed, 31 insertions, 5 deletions
diff --git a/xlators/protocol/server/src/server.c b/xlators/protocol/server/src/server.c
index 4fcce6e99d2..2ff5cf5a94f 100644
--- a/xlators/protocol/server/src/server.c
+++ b/xlators/protocol/server/src/server.c
@@ -26,6 +26,7 @@
#include <sys/time.h>
#include <sys/resource.h>
+
#include "server.h"
#include "server-helpers.h"
#include "glusterfs3-xdr.h"
@@ -544,14 +545,20 @@ int
reconfigure (xlator_t *this, dict_t *options)
{
- server_conf_t *conf =NULL;
- int inode_lru_limit;
- gf_boolean_t trace;
- data_t *data;
- int ret;
+ server_conf_t *conf =NULL;
+ rpcsvc_t *rpc_conf;
+ rpcsvc_listener_t *listeners;
+ int inode_lru_limit;
+ gf_boolean_t trace;
+ data_t *data;
+ int ret = 0;
conf = this->private;
+ if (!conf) {
+ gf_log (this->name, GF_LOG_DEBUG, "conf == null!!!");
+ goto out;
+ }
if (dict_get_int32 ( options, "inode-lru-limit", &inode_lru_limit) == 0){
conf->inode_lru_limit = inode_lru_limit;
gf_log (this->name, GF_LOG_TRACE, "Reconfigured inode-lru-limit"
@@ -589,8 +596,27 @@ reconfigure (xlator_t *this, dict_t *options)
dict_unref (conf->auth_modules);
goto out;
}
+
+ rpc_conf = conf->rpc;
+ if (!rpc_conf) {
+ gf_log (this->name, GF_LOG_ERROR, "No rpc_conf !!!!");
+ goto out;
+ }
+
+ list_for_each_entry (listeners, &(rpc_conf->listeners), list) {
+ if (listeners->trans != NULL) {
+ if (listeners->trans->reconfigure )
+ listeners->trans->reconfigure (listeners->trans, options);
+ else
+ gf_log (this->name, GF_LOG_ERROR,
+ "Reconfigure not found for transport" );
+ }
+ }
+
+
out:
+ gf_log ("", GF_LOG_DEBUG, "returning %d", ret);
return ret;
}