亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? parse.c

?? This is the first ever open source implementation of Dynamic Host Configuration Protocol for IPv6 (D
?? C
字號:
#include "stdhead.h"#include "parse.h"#include "clilib.h"void read_config_file (char **config_buff, char *file_name){    int fd, n, size = 0;        if ((fd = open (file_name, O_RDONLY)) == -1)    {	printf ("Error opening file %s.\n", file_name);	write_to_log ("Error opening configuration file.", 1);	exit (0);    }        write_to_log ("Reading configuration file.", 1);    (*config_buff) = (char *) realloc (*config_buff, 1);    size = 1;    while (read (fd, &(*config_buff)[size - 1], 1) > 0)    {	size++;	*config_buff = (char *) realloc (*config_buff, size);    }    (*config_buff)[size - 1] = '\0';    close (fd);}    void skip_whitespace (char **curr_ptr){    while ((**curr_ptr == ' ') || (**curr_ptr == '\t') || (**curr_ptr == '\r') || (**curr_ptr == '\n'))	(*curr_ptr)++;}int move_across_substring (char **curr_ptr, char *substring){    *curr_ptr = strstr (*curr_ptr, substring);    if (*curr_ptr)	*curr_ptr += strlen (substring);    else	return 0;    return 1;}int Move_across_substring (char **curr_ptr, char *substring){    *curr_ptr = strstr (*curr_ptr, substring);    if (*curr_ptr)	*curr_ptr += strlen (substring);    else    {	printf ("Configuration file format is incorrect.\n");	exit (1);    }    return 1;}void read_token (char **token, char **curr_ptr){    char *p;    int n = 0;        if (*token)	*token = (char *) realloc (*token, 0);        while ((**curr_ptr != ' ') && (**curr_ptr != '\t') && (**curr_ptr != '\r') && (**curr_ptr != '\n'))    {	n++;	*token = (char *) realloc (*token, n);	p = *token + (n - 1);	*p = **curr_ptr;	(*curr_ptr)++;    }    n++;    *token = (char *) realloc (*token, n);    p = *token + (n - 1);    *p = '\0';}struct interface * get_interface_details (char *interface_name){    struct interface *interface_details;    char *config_buff = 0, *curr_ptr = 0, *token = 0, *start = 0;    u_int8_t temp[2];    int found_interface_flag = 0, i, count = 0;        interface_details = (struct interface *) malloc (sizeof (struct interface));    read_config_file (&config_buff, DEFAULT_SOLICIT_CONFIG_FILE);    curr_ptr = config_buff;        while (!found_interface_flag)    {	if (!move_across_substring (&curr_ptr, "interface"))	    return NULL;	    	skip_whitespace (&curr_ptr);	read_token (&token, &curr_ptr);		if (!strcmp (token, interface_name))	    found_interface_flag = 1;    }        Move_across_substring (&curr_ptr, "{");        Move_across_substring (&curr_ptr, "duid_type");    skip_whitespace (&curr_ptr);    read_token (&token, &curr_ptr);    interface_details -> duid_type = atoi (token);    Move_across_substring (&curr_ptr, "{");        start = curr_ptr;        if (interface_details -> duid_type == 1 || interface_details -> duid_type == 3)    {	curr_ptr = start;	Move_across_substring (&curr_ptr, "hardware_type");	skip_whitespace (&curr_ptr);	read_token (&token, &curr_ptr);	interface_details -> haddr_type = atoi (token);            curr_ptr = start;        Move_across_substring (&curr_ptr, "hardware_len");        skip_whitespace (&curr_ptr);        read_token (&token, &curr_ptr);        interface_details -> haddr_len = atoi (token);        curr_ptr = start;        Move_across_substring (&curr_ptr, "hardware_addr");        skip_whitespace (&curr_ptr);        read_token (&token, &curr_ptr);        interface_details -> haddr = (char *) malloc (interface_details -> haddr_len * sizeof (char));        for (i = 0; i < 3 * interface_details -> haddr_len - 1; i += 3)        {	    temp[0] = convert_character_to_hex (token[i]);	    temp[1] = convert_character_to_hex (token[i + 1]);	    interface_details -> haddr[count++] = (temp[0] << 4) | temp[1];	}    }        if (interface_details -> duid_type == 1)    {	curr_ptr = start;	Move_across_substring (&curr_ptr, "time");	skip_whitespace (&curr_ptr);	read_token (&token, &curr_ptr);	interface_details -> time = atoi (token);    }        if (interface_details -> duid_type == 2)    {	curr_ptr = start;	Move_across_substring (&curr_ptr, "ident_len");	skip_whitespace (&curr_ptr);	read_token (&token, &curr_ptr);	interface_details -> identifier_length = atoi (token);	curr_ptr = start;	Move_across_substring (&curr_ptr, "identifier");	skip_whitespace (&curr_ptr);	read_token (&token, &curr_ptr);	interface_details -> identifier = (u_int8_t *) malloc (interface_details -> identifier_length * sizeof (u_int8_t));	count = 0;	for (i = 0; i < strlen (token); i += 2)	{	    temp[0] = convert_character_to_hex (token[i]);	    temp[1] = convert_character_to_hex (token[i + 1]);	    interface_details -> identifier[count++] = (temp[0] << 4) | temp[1];	}	curr_ptr = start;	Move_across_substring (&curr_ptr, "domain_name");	skip_whitespace (&curr_ptr);	read_token (&token, &curr_ptr);	interface_details -> domain_name_len = strlen (token);	interface_details -> domain_name = (char *) malloc (strlen (token) * sizeof (char));	for (i = 0; i < strlen (token); i++)	    interface_details -> domain_name[i] = token[i];    }        Move_across_substring (&curr_ptr, "}");    curr_ptr = start;    Move_across_substring (&curr_ptr, "link_local_addr");    skip_whitespace (&curr_ptr);    read_token (&token, &curr_ptr);    interface_details -> link_local_addr = (struct in6_addr *) malloc (sizeof (struct in6_addr));    inet_pton (AF_INET6, token, interface_details -> link_local_addr);        curr_ptr = start;    if (!move_across_substring (&curr_ptr, "preferred_ipv6_address"))	interface_details -> pref_ipv6_addr = NULL;    else    {	skip_whitespace (&curr_ptr);	read_token (&token, &curr_ptr);	interface_details -> pref_ipv6_addr = (struct in6_addr *) malloc (sizeof (struct in6_addr));        inet_pton (AF_INET6, token, interface_details -> pref_ipv6_addr);    }        curr_ptr = start;    if (!move_across_substring (&curr_ptr, "preferred_lifetime"))	interface_details -> pref_lifetime = 0;    else    {	skip_whitespace (&curr_ptr);	read_token (&token, &curr_ptr);	interface_details -> pref_lifetime = atoi (token);    }    curr_ptr = start;    if (!move_across_substring (&curr_ptr, "valid_lifetime"))	interface_details -> valid_lifetime = 0;    else    {	skip_whitespace (&curr_ptr);	read_token (&token, &curr_ptr);	interface_details -> valid_lifetime = atoi (token);    }        move_across_substring (&curr_ptr, "}");    return interface_details;}void print_interface_details (struct interface *interface_details){    char name[64];    int i;        printf ("Interface details\n");        printf ("DUID Type = %d\n", interface_details -> duid_type);        if (interface_details -> duid_type == 1 || interface_details -> duid_type == 3)    {	printf ("Hardware Type = %d\n", interface_details -> haddr_type);	printf ("Hardware Length = %d\n", interface_details -> haddr_len);	printf ("Hardware Address = ");	for (i = 0; i < interface_details -> haddr_len; i++)	{	    printf ("%x", interface_details -> haddr[i]);	    	    if (i == (interface_details -> haddr_len - 1))		printf ("\n");	    else		printf (":");	}    }        if (interface_details -> duid_type == 1)	printf ("Time = %d\n", interface_details -> time);    if (interface_details -> duid_type == 2)    {	printf ("Identifier length = %d\n", interface_details -> identifier_length);	printf ("Identifier = ");        for (i = 0; i < interface_details -> identifier_length; i++)	    printf ("%x", interface_details -> identifier[i]);	printf ("\nDomain name = ");	for (i = 0; i < interface_details -> domain_name_len; i++)	    printf ("%c", interface_details -> domain_name[i]);	printf ("\n");    }        printf ("Link local address of user = %s\n", inet_ntop (AF_INET6, (char *) interface_details -> link_local_addr, name, 64));    if (interface_details -> pref_ipv6_addr)	printf ("Preferred IPv6 address of user = %s\n", inet_ntop (AF_INET6, (char *) interface_details -> pref_ipv6_addr, name, 64));    if (interface_details -> pref_lifetime)	printf ("Preferred lifetime = %d\n", interface_details -> pref_lifetime);    if (interface_details -> valid_lifetime)	printf ("Valid lifetime = %d\n", interface_details -> valid_lifetime);}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品丝袜久久久久久app| 欧美性生交片4| 午夜伊人狠狠久久| 亚洲电影在线播放| 亚洲一区二区3| 亚洲成人777| 午夜伦欧美伦电影理论片| 亚洲一区二区在线播放相泽 | 欧美日韩视频不卡| 欧美在线高清视频| 欧美性色综合网| 欧美另类变人与禽xxxxx| 欧美视频一区二区三区在线观看 | 图片区小说区区亚洲影院| 夜夜亚洲天天久久| 日欧美一区二区| 麻豆精品视频在线观看免费 | 久久久综合九色合综国产精品| 日韩欧美一区二区久久婷婷| 欧美va亚洲va香蕉在线| 久久老女人爱爱| 中文字幕亚洲区| 亚洲一区二区偷拍精品| 青青国产91久久久久久| 激情都市一区二区| 粉嫩一区二区三区性色av| 99v久久综合狠狠综合久久| 欧美在线一二三四区| 日韩欧美高清dvd碟片| 欧美激情一区在线观看| 亚洲制服丝袜av| 国内精品国产三级国产a久久| 成人免费毛片aaaaa**| 欧美性生活影院| 国产清纯白嫩初高生在线观看91 | 亚洲国产精品成人综合| 日本一区二区三级电影在线观看 | 欧美三级中文字幕在线观看| 日韩精品综合一本久道在线视频| 亚洲国产高清不卡| 日韩av午夜在线观看| 成人爱爱电影网址| 精品久久国产97色综合| 一区二区三区 在线观看视频| 免费成人结看片| 日本韩国视频一区二区| 久久精品一区二区三区四区| 亚洲伊人伊色伊影伊综合网| 国产伦精品一区二区三区免费| 日本道精品一区二区三区| 国产色产综合产在线视频| 日韩电影在线免费| 91偷拍与自偷拍精品| 国产亚洲视频系列| 美国毛片一区二区三区| 欧美三区在线视频| 亚洲欧美日韩国产成人精品影院 | 日韩精品91亚洲二区在线观看| 国产一区不卡在线| 91精品国产色综合久久不卡蜜臀| 国产精品毛片久久久久久| 蜜臀国产一区二区三区在线播放| 色成人在线视频| 亚洲女同女同女同女同女同69| 国产一区二区三区免费在线观看| 91精品国产色综合久久久蜜香臀| 亚洲综合激情小说| 一本色道综合亚洲| 亚洲欧美日韩国产另类专区| 成人黄色小视频在线观看| 久久精品一区二区三区不卡| 国内精品国产成人| 欧美va亚洲va香蕉在线| 老汉av免费一区二区三区| 56国语精品自产拍在线观看| 亚洲电影中文字幕在线观看| 色哟哟精品一区| 亚洲综合一区在线| 欧美日韩综合不卡| 热久久一区二区| 日韩三级电影网址| 国产麻豆9l精品三级站| 久久一区二区三区国产精品| 免费久久99精品国产| 欧美日韩一区视频| 青青国产91久久久久久| 日韩欧美在线观看一区二区三区| 免费在线视频一区| 久久九九国产精品| 不卡欧美aaaaa| 亚洲男女毛片无遮挡| 欧美视频在线播放| 免费观看91视频大全| 久久久蜜臀国产一区二区| 国产成人午夜电影网| 亚洲视频香蕉人妖| 欧美日韩一区成人| 国模冰冰炮一区二区| 国产欧美一区二区三区网站| 99久久久久久| 亚洲va天堂va国产va久| 久久综合色鬼综合色| av高清久久久| 蜜臂av日日欢夜夜爽一区| 久久久99精品久久| 欧美亚洲一区二区在线观看| 婷婷综合另类小说色区| 久久综合久久综合久久综合| av在线一区二区三区| 日韩激情视频网站| 国产精品全国免费观看高清| 在线观看三级视频欧美| 久久66热偷产精品| 亚洲人成在线观看一区二区| 欧美一区二区三区在线看| 波多野结衣中文一区| 日韩va亚洲va欧美va久久| 亚洲欧洲国产日本综合| 日韩欧美国产综合一区| 一本色道a无线码一区v| 久久国产剧场电影| 亚洲一区二区视频在线| 欧美国产日韩一二三区| 欧美一区二区视频在线观看2020| 9色porny自拍视频一区二区| 蜜臀91精品一区二区三区| 亚洲欧洲日产国码二区| 久久亚洲影视婷婷| 在线不卡一区二区| 色婷婷综合激情| jizzjizzjizz欧美| 国产精品一区二区在线观看不卡| 亚洲国产精品久久一线不卡| 国产精品无遮挡| 久久久久青草大香线综合精品| 欧美色视频在线| 一本久久精品一区二区| 成人性生交大合| 国产成人一级电影| 国产在线播放一区二区三区| 日韩一区欧美二区| 天天av天天翘天天综合网| 自拍偷拍亚洲欧美日韩| 国产精品无圣光一区二区| 久久精品人人做| 久久日韩精品一区二区五区| 日韩午夜三级在线| 日韩欧美国产电影| 日韩精品一区二| 精品久久五月天| 精品人在线二区三区| 日韩精品在线一区二区| 91精品在线一区二区| 欧美精品第1页| 日韩欧美在线网站| 精品国产乱码久久| 国产婷婷色一区二区三区四区| 久久先锋影音av| 国产日韩欧美电影| 欧美激情在线一区二区三区| 国产精品网站在线观看| 亚洲国产精品二十页| 国产精品久久久久9999吃药| 国产精品日韩精品欧美在线 | 99r国产精品| 色视频成人在线观看免| 日本二三区不卡| 欧美日韩国产在线观看| 在线播放日韩导航| 26uuu国产一区二区三区| 久久影音资源网| 亚洲欧美日韩在线| 亚洲网友自拍偷拍| 另类人妖一区二区av| 久久国产麻豆精品| av中文字幕亚洲| 91麻豆精品国产无毒不卡在线观看| 欧美精品丝袜久久久中文字幕| 日韩欧美在线123| 国产精品久久久久久妇女6080| 亚洲男人电影天堂| 极品少妇xxxx偷拍精品少妇| 国产成人精品午夜视频免费| 色婷婷综合五月| 欧美一区二区三区白人| 中文字幕不卡一区| 亚洲第一搞黄网站| 懂色av一区二区三区蜜臀| 一本一道波多野结衣一区二区| 欧美一级理论性理论a| 国产女人aaa级久久久级| 香蕉久久一区二区不卡无毒影院 | 《视频一区视频二区| 午夜一区二区三区视频| 国产不卡在线播放| 欧美美女激情18p| 亚洲三级在线播放| 激情综合一区二区三区| 欧美日韩午夜影院| 中文字幕成人网|