From fd4368e6e2b19291f5ef3a684815434f2f3edf25 Mon Sep 17 00:00:00 2001 From: YuQing <384681@qq.com> Date: Fri, 21 Feb 2020 20:45:20 +0800 Subject: [PATCH] bugfixed: use new_addr instead of addr --- HISTORY | 2 +- src/server_id_func.c | 16 +++++++++++----- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/HISTORY b/HISTORY index f2d0693..b0b370d 100644 --- a/HISTORY +++ b/HISTORY @@ -1,5 +1,5 @@ -Version 1.44 2020-02-20 +Version 1.44 2020-02-21 * add test file src/tests/test_pthread_lock.c * add uniq_skiplist.[hc] * add function split_string_ex diff --git a/src/server_id_func.c b/src/server_id_func.c index 957ceac..947a5eb 100644 --- a/src/server_id_func.c +++ b/src/server_id_func.c @@ -138,7 +138,7 @@ static int fc_server_check_alloc_group_addresses(FCAddressArray *array) } static FCAddressInfo *fc_server_add_to_uniq_addresses( - FCAddressArray *addr_array, FCAddressInfo *addr) + FCAddressArray *addr_array, const FCAddressInfo *addr) { FCAddressInfo *p; FCAddressInfo *end; @@ -728,7 +728,7 @@ static int fc_server_set_address(FCServerConfig *ctx, } static int fc_server_set_group_server_address(FCServerInfo *server, - FCGroupAddresses *group_addr, FCAddressInfo *address) + FCGroupAddresses *group_addr, const FCAddressInfo *address) { FCAddressInfo *addr; int result; @@ -797,11 +797,13 @@ static int fc_server_load_group_server(FCServerConfig *ctx, static int fc_server_set_host(FCServerConfig *ctx, FCServerInfo *server, const char *config_filename, const char *section_name, - FCAddressInfo *addr) + const FCAddressInfo *addr) { FCServerGroupInfo *group; FCServerGroupInfo *end; FCGroupAddresses *group_addr; + const FCAddressInfo *new_addr; + FCAddressInfo addr_holder; int result; int count; int group_index; @@ -823,10 +825,14 @@ static int fc_server_set_host(FCServerConfig *ctx, FCServerInfo *server, } if (addr->conn.port == 0) { - addr->conn.port = FC_SERVER_GROUP_PORT(group); + addr_holder = *addr; + addr_holder.conn.port = FC_SERVER_GROUP_PORT(group); + new_addr = &addr_holder; + } else { + new_addr = addr; } if ((result=fc_server_set_group_server_address(server, - group_addr, addr)) != 0) + group_addr, new_addr)) != 0) { return result; }