parseconf.h

来自「网页抓取程序」· C头文件 代码 · 共 90 行

H
90
字号

/* ReplaceChr
 * replaces all occourences of a char(bus) with sub
 * string = "test" bus='s' sub='x' => "text"
 */
int ReplaceChr(char* string, char bus, char sub)
{
int i;
	for(i=0;i<(signed)strlen(string);i++)
	{
		if(string[i]==bus)
			string[i]=sub;
	}

return 1;
}

int GetSubNodes()
{
FILE* fConf;
char sLine[105];
int iLine;
char host[50];
char port[10];

struct hostent *gAddr;
char* strToken;


	fConf=fopen("subnodes.conf","r");
	if(fConf==NULL)
		return 0;

    iLine = subNodesStruct.saddrElements = 0;

    while(!feof(fConf))
	{
		memset(sLine,0,sizeof(sLine));
		fgets(sLine,100,fConf);
		iLine++;

		if(sLine[0]=='#' || sLine[0]=='\r' || sLine[0]=='\n' || sLine[0]==0)
			continue;

        if(strchr(sLine,':') == NULL)
            continue;

        ReplaceChr(sLine,'\r','\0');
        ReplaceChr(sLine,'\n','\0');

		if( sLine[0] == 's' && sLine[1] == '=' )
		{
			memset(host,0,50);

	        strncpy(host, sLine+2, (strchr(sLine,':')-sLine-2) );

		    strcpy(port, strchr(sLine,':') + 1);

			/* aggiungi alla lista degli indirizzi */
			if((gAddr=gethostbyname(host))==0)
				continue;

			subNodesStruct.saddrSubNodes[subNodesStruct.saddrElements].sin_addr.s_addr=((struct in_addr *)(gAddr->h_addr))->s_addr;
			subNodesStruct.saddrSubNodes[subNodesStruct.saddrElements].sin_family = AF_INET;
			subNodesStruct.saddrSubNodes[subNodesStruct.saddrElements].sin_port = htons((unsigned short int) atoi(port) );

			subNodesStruct.saddrElements++;
		}
		else if( sLine[0] == 'm' && sLine[1] == '=' )
		{
			strToken = strtok(sLine+2,":");
			strcpy( glMysqlHost, strToken );
			strToken = strtok(NULL ,":");
			strcpy( glMysqlPort, strToken );
			strToken = strtok(NULL ,":");
			strcpy( glMysqlUser, strToken );
			strToken = strtok(NULL ,":");
			strcpy( glMysqlPass, strToken );
			strToken = strtok(NULL ,":");
			strcpy( glMysqlDB, strToken );

		}
    }

    fclose(fConf);

return 1;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?