summaryrefslogtreecommitdiffstats
path: root/rpc/rpc-lib/src/rpc-clnt.c
diff options
context:
space:
mode:
Diffstat (limited to 'rpc/rpc-lib/src/rpc-clnt.c')
-rw-r--r--rpc/rpc-lib/src/rpc-clnt.c22
1 files changed, 20 insertions, 2 deletions
diff --git a/rpc/rpc-lib/src/rpc-clnt.c b/rpc/rpc-lib/src/rpc-clnt.c
index dd28c60e0a5..7e3d90bfeaa 100644
--- a/rpc/rpc-lib/src/rpc-clnt.c
+++ b/rpc/rpc-lib/src/rpc-clnt.c
@@ -379,7 +379,7 @@ rpc_clnt_reconnect (void *trans_ptr)
gf_log (trans->name, GF_LOG_TRACE,
"attempting reconnect");
- ret = rpc_transport_connect (trans);
+ ret = rpc_transport_connect (trans, conn->config.remote_port);
conn->reconnect =
gf_timer_call_after (clnt->ctx, tv,
@@ -1261,7 +1261,8 @@ rpc_clnt_submit (struct rpc_clnt *rpc, rpc_clnt_prog_t *prog,
pthread_mutex_lock (&conn->lock);
{
if (conn->connected == 0) {
- rpc_transport_connect (conn->trans);
+ rpc_transport_connect (conn->trans,
+ conn->config.remote_port);
}
ret = -1;
@@ -1348,3 +1349,20 @@ rpc_clnt_destroy (struct rpc_clnt *rpc)
GF_FREE (rpc);
return;
}
+
+
+void
+rpc_clnt_reconfig (struct rpc_clnt *rpc, struct rpc_clnt_config *config)
+{
+ if (config->rpc_timeout)
+ rpc->conn.config.rpc_timeout = config->rpc_timeout;
+
+ if (config->remote_port)
+ rpc->conn.config.remote_port = config->remote_port;
+
+ if (config->remote_host) {
+ if (rpc->conn.config.remote_host)
+ FREE (rpc->conn.config.remote_host);
+ rpc->conn.config.remote_host = gf_strdup (config->remote_host);
+ }
+}