• 大小: 328KB
    文件类型: .gz
    金币: 1
    下载: 0 次
    发布日期: 2021-05-18
  • 语言: 其他
  • 标签: fastdfs  5.05  

资源简介

fastdfs 5.05 版本

资源截图

代码片段和文件信息

/**
* Copyright (C) 2008 Happy Fish / YuQing
*
* FastDFS may be copied only under the terms of the GNU General
* Public License V3 which may be found in the FastDFS source kit.
* Please visit the FastDFS Home Page http://www.csource.org/ for more detail.
**/

//client_func.c

#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include “fdfs_define.h“
#include “logger.h“
#include “fdfs_global.h“
#include “base64.h“
#include “sockopt.h“
#include “shared_func.h“
#include “ini_file_reader.h“
#include “connection_pool.h“
#include “tracker_types.h“
#include “tracker_proto.h“
#include “client_global.h“
#include “client_func.h“

static int storage_cmp_by_ip_and_port(const void *p1 const void *p2)
{
int res;

res = strcmp(((ConnectionInfo *)p1)->ip_addr \
((ConnectionInfo *)p2)->ip_addr);
if (res != 0)
{
return res;
}

return ((ConnectionInfo *)p1)->port - \
((ConnectionInfo *)p2)->port;
}

static void insert_into_sorted_servers(TrackerServerGroup *pTrackerGroup \
ConnectionInfo *pInsertedServer)
{
ConnectionInfo *pDestServer;
for (pDestServer=pTrackerGroup->servers+pTrackerGroup->server_count; \
pDestServer>pTrackerGroup->servers; pDestServer--)
{
if (storage_cmp_by_ip_and_port(pInsertedServer \
pDestServer-1) > 0)
{
memcpy(pDestServer pInsertedServer \
sizeof(ConnectionInfo));
return;
}

memcpy(pDestServer pDestServer-1 sizeof(ConnectionInfo));
}

memcpy(pDestServer pInsertedServer sizeof(ConnectionInfo));
}

static int copy_tracker_servers(TrackerServerGroup *pTrackerGroup \
const char *filename char **ppTrackerServers)
{
char **ppSrc;
char **ppEnd;
ConnectionInfo destServer;
char *pSeperator;
char szHost[128];
int nHostLen;

memset(&destServer 0 sizeof(ConnectionInfo));
destServer.sock = -1;

ppEnd = ppTrackerServers + pTrackerGroup->server_count;

pTrackerGroup->server_count = 0;
for (ppSrc=ppTrackerServers; ppSrc {
if ((pSeperator=strchr(*ppSrc ‘:‘)) == NULL)
{
logError(“file: “__FILE__“ line: %d “ \
“conf file \“%s\“ “ \
“tracker_server \“%s\“ is invalid “ \
“correct format is host:port“ \
__LINE__ filename *ppSrc);
return EINVAL;
}

nHostLen = pSeperator - (*ppSrc);
if (nHostLen >= sizeof(szHost))
{
nHostLen = sizeof(szHost) - 1;
}
memcpy(szHost *ppSrc nHostLen);
szHost[nHostLen] = ‘\0‘;

if (getIpaddrByName(szHost destServer.ip_addr \
sizeof(destServer.ip_addr)) == INADDR_NONE)
{
logError(“file: “__FILE__“ line: %d “ \
“conf file \“%s\“ “ \
“host \“%s\“ is invalid“ \
__LINE__ filename szHost);
return EINVAL;
}
destServer.port = atoi(pSeperator+1);
if (destServer.port <= 0)
{
destServer.port = FDFS_TRACKER_SERVER_DEF_PORT;
}

if (bsearch(&destServer pTrackerGroup->servers \
pTrackerGroup->server_co

评论

共有 条评论