From 867dc291117e9e51666f8b9b631812ba1284e0bf Mon Sep 17 00:00:00 2001 From: YuQing <384681@qq.com> Date: Wed, 4 Dec 2019 15:59:31 +0800 Subject: [PATCH] use fdfs_get_ipaddr_by_peer_ip --- storage/storage_disk_recovery.c | 9 ++++++--- tracker/tracker_service.c | 14 +++++++++----- 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/storage/storage_disk_recovery.c b/storage/storage_disk_recovery.c index 5f95cbd..a4e73ec 100644 --- a/storage/storage_disk_recovery.c +++ b/storage/storage_disk_recovery.c @@ -23,10 +23,11 @@ #include #include "fdfs_define.h" #include "fastcommon/logger.h" -#include "fdfs_global.h" +#include "fastcommon/fc_list.h" #include "fastcommon/sockopt.h" #include "fastcommon/avl_tree.h" #include "fastcommon/shared_func.h" +#include "fdfs_global.h" #include "tracker_types.h" #include "tracker_proto.h" #include "storage_global.h" @@ -43,11 +44,13 @@ typedef struct { int id; //trunk file id } FDFSTrunkFileIdInfo; -typedef struct { +typedef struct recovery_thread_data { + struct fc_list_head link; int thread_index; //-1 for global int result; bool done; const char *base_path; + pthread_t tid; } RecoveryThreadData; #define RECOVERY_BINLOG_FILENAME ".binlog.recovery" @@ -1321,7 +1324,7 @@ static int storage_disk_recovery_do_restore(const char *pBasePath) if (__sync_fetch_and_add(¤t_recovery_thread_count, 0) > 0) { - for (i=0; i<60; i++) + for (i=0; i<10; i++) { if ((thread_count=__sync_fetch_and_add( ¤t_recovery_thread_count, 0)) == 0) diff --git a/tracker/tracker_service.c b/tracker/tracker_service.c index 5926344..1f30432 100644 --- a/tracker/tracker_service.c +++ b/tracker/tracker_service.c @@ -413,8 +413,10 @@ static int tracker_check_and_sync(struct fast_task_info *pTask, \ pDestServer->status = pServer->status; memcpy(pDestServer->id, pServer->id, FDFS_STORAGE_ID_MAX_SIZE); - memcpy(pDestServer->ip_addr, FDFS_CURRENT_IP_ADDR(pServer), - IP_ADDRESS_SIZE); + memcpy(pDestServer->ip_addr, + fdfs_get_ipaddr_by_peer_ip(&pServer->ip_addrs, + pTask->client_ip), IP_ADDRESS_SIZE); + int2buff(pClientInfo->pGroup->storage_port, pDestServer->port); } @@ -438,8 +440,9 @@ static int tracker_check_and_sync(struct fast_task_info *pTask, \ pDestServer->status = (*ppServer)->status; memcpy(pDestServer->id, (*ppServer)->id, FDFS_STORAGE_ID_MAX_SIZE); - memcpy(pDestServer->ip_addr, FDFS_CURRENT_IP_ADDR(*ppServer), - IP_ADDRESS_SIZE); + memcpy(pDestServer->ip_addr, + fdfs_get_ipaddr_by_peer_ip(&(*ppServer)->ip_addrs, + pTask->client_ip), IP_ADDRESS_SIZE); int2buff(pClientInfo->pGroup->storage_port, pDestServer->port); pDestServer++; @@ -2400,7 +2403,8 @@ static int tracker_deal_server_list_group_storages(struct fast_task_info *pTask) pStorageStat = &((*ppServer)->stat); pDest->status = (*ppServer)->status; strcpy(pDest->id, (*ppServer)->id); - strcpy(pDest->ip_addr, FDFS_CURRENT_IP_ADDR(*ppServer)); + strcpy(pDest->ip_addr, fdfs_get_ipaddr_by_peer_ip( + &(*ppServer)->ip_addrs, pTask->client_ip)); if ((*ppServer)->psync_src_server != NULL) { strcpy(pDest->src_id, \