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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? netlink.c

?? 基于routed的RIP2, 實現了multicast 和Broadcast
?? C
字號:
#include <stdio.h>#include <stdlib.h>#include <string.h>#include <asm/types.h>#include <sys/types.h>#include <sys/socket.h>#include <netinet/in.h>#include <arpa/inet.h>#include <linux/netlink.h>#include <linux/rtnetlink.h>#include <net/if.h>#include "router.h"#include "socket.h"#include "util.h"#include "link.h"#ifdef LINUX#include "sys_linux.h"#endif#define DEBUGextern struct rproto system_proto;struct socket *netlink_socket = NULL;int netlink_init() {	struct socket *socket;		// 蚺巧釉疑藝磐 幸顯纖咸	if(register_routing_protocol(&system_proto) < 0) {		error("Unable to register System routing protocol");		return -1;	}		if((socket = socket_create(&system_proto)) == NULL) {		error("Unable to create Netlink socket");		return -1;	}		if(socket_bind_to_netlink(socket) < 0) {		error("Unable to bind socket to Netlink");		return -1;	}		if(socketlist_add(socket) < 0) {		error("Unable to register Netlink socket");		return -1;	}			return 0;}int netlink_learn_routes(struct rproto *netlink,struct rtable *rtable) {#ifdef DEBUG	log_msg("netlink_learn_routes called");	dump_rtable(rtable);#endif		return system_add_routes(socket_list.next,rtable);}int netlink_unlearn_routes(struct rproto *netlink,struct rtable *rtable) {#ifdef DEBUG	log_msg("netlink_unlearn_routes called");	dump_rtable(rtable);#endif		return system_remove_routes(socket_list.next,rtable);	}int netlink_input_packet(struct rproto *netlink,                         void *buf,			 unsigned int len,			 struct sockaddr *from,			 int fromlen) {//	struct rtable *learn_table,*unlearn_table;//	struct sockaddr_nl *origin = (struct sockaddr_nl *)from;	struct nlmsghdr *nh;	char content[128] = "";	struct ifinfomsg *ifinfo;/*	struct ifaddrmsg *addrinfo;	struct rtmsg *rtinfo;*/	nh = (struct nlmsghdr *)buf;	switch(nh->nlmsg_type) {		case RTM_NEWLINK:			ifinfo = (struct ifinfomsg *)NLMSG_DATA(nh);#ifdef DEBUG			{			int rtlen;			struct rtattr *rta;						rtlen=RTM_PAYLOAD(nh);			rta=RTM_RTA(ifinfo);						/* little hack.. UNSPEC has len==1. This doesn't go well with 			 * RTA_OK macro..			 */			if (rta->rta_type == IFLA_UNSPEC)				rta->rta_len=4;			while (RTA_OK(rta, rtlen)) {				if (rta->rta_type == IFLA_IFNAME)					log_msg("Netlink interface: %s", RTA_DATA(rta));				rta=RTA_NEXT(rta,rtlen);			}			}#endif						if((ifinfo->ifi_flags & IFF_UP) && (ifinfo->ifi_flags & IFF_RUNNING)) {				linklist_update();				snprintf(content,sizeof(content),"Iface %d is going up",ifinfo->ifi_index);			}else{				linklist_update();				snprintf(content,sizeof(content),"Iface %d is going down",ifinfo->ifi_index);			}			break;		default:			return 0;	}	log_msg("Netlink: %s",content);	/*	learn_table = new_rtable();	unlearn_table = new_rtable();		if(learn_table->num_routes != 0)		learn_routes(netlink,learn_table);	if(unlearn_table->num_routes != 0)		unlearn_routes(netlink,unlearn_table);		free_rtable(learn_table);	free_rtable(unlearn_table);*/		return 0;}int netlink_output_packet(struct rproto *netlink,struct rtable *rtable,struct link *link) {	return 0;}void netlink_link_up(struct rproto *netlink, struct link *link) {	struct rtable *tmp;	struct route *route;     	if(!(link->flags & LF_UP))		return;	if(!(link->flags & LF_ANNOUNCETHIS))		return;	if((route = malloc(sizeof(struct route))) == NULL) {		error("Insufficient memory allocating route");		return;	}	tmp = new_rtable();		if(link->flags & LF_POINTOPOINT) {		route->dst = link->broadcast & link->netmask;	}else{		route->dst = link->address & link->netmask;	}	route->dstmask = link->netmask;	route->nexthop = 0; 	route->metric = link->cost;	route->type = RT_DYNAMIC;	route->flags = 0;	route->source = 0;	route->source_link = link;	route->domain = 0;	route->expire = 0;	route->garbage = 0;	route->timerset = 0;	strncpy(route->iface,link->iface,sizeof(route->iface));	add_route(tmp, route);	learn_routes(&system_proto, tmp);	free_rtable(tmp);}void netlink_link_down(struct rproto *netlink, struct link *link) {	/* Must find all routes, that depend on this link.. and call unlearn	 */	struct route *r, *q;	struct rtable *tmp;		tmp = new_rtable();	for (r=main_rtable->routes; r ; r=r->next) {		if (r->source_link != link)			continue;		if (r->flags & RF_UNREACH)			continue;		q = dup_route(r);		q->flags |= RF_UNREACH;		q->garbage = time(NULL) + 120;		add_route(tmp, q);	}	if(tmp->num_routes != 0)		unlearn_routes(&system_proto, tmp);	free_rtable(tmp);}void netlink_shutdown(struct rproto *netlink) {//	free_rtable(rip2_announce_table);}struct rproto_operations system_ops = {	netlink_learn_routes,	netlink_unlearn_routes,	netlink_input_packet,	netlink_output_packet,	NULL,	netlink_shutdown,	netlink_link_up,	netlink_link_down};struct rproto system_proto = {	"system",	PF_NETLINK,	SOCK_DGRAM,	4,	NETLINK_ROUTE,	0,	&system_ops,	NULL};

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩欧美一二三四区| 亚洲成人久久影院| 精品乱人伦一区二区三区| 欧美精品一卡两卡| 欧美日韩在线免费视频| 欧美日韩高清在线| 日韩亚洲欧美在线观看| 中文字幕第一区综合| 亚洲欧洲三级电影| 韩国理伦片一区二区三区在线播放 | 日欧美一区二区| 不卡大黄网站免费看| 亚洲一区二区三区四区在线| 国产精品久久久久7777按摩| 99久久综合狠狠综合久久| 亚洲精品午夜久久久| 日韩一级二级三级| 美女一区二区三区| 欧美日本一区二区在线观看| 1024成人网| 大桥未久av一区二区三区中文| 久久久久99精品一区| 国产suv精品一区二区883| 日韩欧美在线网站| 久久精品国产99国产| 欧美一区二区黄| 麻豆国产欧美一区二区三区| 日韩一区二区三区视频在线 | 久久嫩草精品久久久精品| 久久精品国产色蜜蜜麻豆| 欧美一区二区三区免费| 国模娜娜一区二区三区| 制服.丝袜.亚洲.另类.中文| 午夜精品视频在线观看| 欧美精品欧美精品系列| 天堂成人免费av电影一区| 欧美绝品在线观看成人午夜影视 | 91热门视频在线观看| 亚洲欧洲三级电影| 欧美性受xxxx黑人xyx| 亚洲va韩国va欧美va精品| 91精品在线免费观看| 国产乱理伦片在线观看夜一区| 久久婷婷国产综合精品青草| 国产成人精品亚洲午夜麻豆| 亚洲免费观看高清完整版在线观看| 不卡一卡二卡三乱码免费网站| 亚洲天堂免费看| 国产午夜精品理论片a级大结局| 99久久99久久综合| 精品一区二区三区免费播放| 中文字幕一区不卡| 久久亚洲捆绑美女| 91精品久久久久久久91蜜桃| 色婷婷国产精品综合在线观看| 日本最新不卡在线| 一区二区在线观看视频| 国产精品福利一区| 国产亚洲一区二区三区在线观看| 欧美日韩不卡一区二区| 欧美大黄免费观看| 欧美一级二级在线观看| 欧美日韩精品一区二区三区四区| 国产伦精品一区二区三区视频青涩| 亚洲国产日韩a在线播放| 国产精品二区一区二区aⅴ污介绍| 精品成a人在线观看| 欧美一区在线视频| 欧美激情一区二区三区在线| 久久久久久综合| 中文字幕一区二区三区色视频| 91精品在线观看入口| 91麻豆自制传媒国产之光| 成人小视频免费在线观看| 国产精一区二区三区| 在线视频观看一区| 欧美优质美女网站| 欧美mv日韩mv国产网站| 国产拍欧美日韩视频二区| 亚洲精品成人在线| 韩国女主播成人在线| 91香蕉国产在线观看软件| 欧美日韩一本到| 久久久久九九视频| 亚洲精品高清在线观看| 老司机精品视频线观看86| 成人久久18免费网站麻豆| 欧美日韩中文国产| 亚洲猫色日本管| 激情久久五月天| 7777精品伊人久久久大香线蕉的| 国产欧美一区二区三区鸳鸯浴 | 成人av中文字幕| 日韩一级成人av| 有码一区二区三区| 国产不卡高清在线观看视频| 欧美一卡二卡在线观看| 视频一区国产视频| 欧美片网站yy| 亚洲精品伦理在线| 91在线国产福利| 国产精品毛片高清在线完整版| 蜜臀av在线播放一区二区三区| 在线观看国产一区二区| 亚洲小说春色综合另类电影| 色综合激情五月| 一区二区高清视频在线观看| 99综合影院在线| 一区二区在线观看不卡| 色综合视频一区二区三区高清| 国产精品毛片久久久久久| av亚洲精华国产精华精华| 国产精品久久久一本精品| 色综合一区二区| 亚洲福中文字幕伊人影院| 日韩一区二区免费在线观看| 国产寡妇亲子伦一区二区| 中文字幕在线视频一区| 色综合久久久久久久久久久| 亚洲成人黄色小说| 久久久久久久久岛国免费| 日本黄色一区二区| 免费看欧美美女黄的网站| 国产午夜亚洲精品羞羞网站| 色综合久久久久久久| 久久99最新地址| 一区二区三区欧美日| 精品欧美黑人一区二区三区| 成人av在线网| 国产乱码字幕精品高清av| 日韩福利视频导航| 亚洲午夜久久久久久久久久久| 中文字幕乱码亚洲精品一区| 欧美一区二区三区免费在线看| 不卡av在线网| 成人免费观看男女羞羞视频| 亚洲一区在线观看免费| 亚洲一区二区精品视频| 国产精品理伦片| 国产精品嫩草99a| 国产精品国产馆在线真实露脸| 欧美大片在线观看一区| 精品国产乱码久久久久久图片| 欧美一区二区三区系列电影| 911精品国产一区二区在线| 欧美专区日韩专区| 欧美自拍偷拍一区| 欧美日韩国产区一| 8x福利精品第一导航| 91精品国产免费| 久久久久久久综合| 亚洲欧美日韩在线播放| 亚洲色图19p| 麻豆视频一区二区| 国产成人精品免费看| 色吊一区二区三区| 日韩欧美成人激情| 亚洲视频香蕉人妖| 精品一区二区久久久| av一区二区久久| 日韩一区二区三区在线观看 | 日本不卡不码高清免费观看 | 国产精品麻豆一区二区 | 久久综合狠狠综合久久综合88| 中文字幕中文乱码欧美一区二区| 亚洲国产毛片aaaaa无费看| 国产精品1024| 欧美大片在线观看| 亚洲一区二区三区不卡国产欧美 | 精品一区二区三区香蕉蜜桃| 91在线小视频| 久久久欧美精品sm网站| 日韩制服丝袜av| 欧美美女视频在线观看| 亚洲蜜臀av乱码久久精品蜜桃| 国产在线播放一区二区三区| 日韩欧美国产1| 日韩av一二三| 欧美日韩免费一区二区三区视频| 中文一区在线播放| 成人夜色视频网站在线观看| 国产亚洲精品精华液| 国产成人精品免费在线| 日韩一区有码在线| 欧美亚洲综合另类| 香蕉久久一区二区不卡无毒影院| 99在线视频精品| 亚洲人精品一区| 欧美日韩免费观看一区二区三区| 一区二区三区四区不卡在线| 欧美日韩在线一区二区| 免费一级片91| 亚洲少妇最新在线视频| 欧美亚洲愉拍一区二区| 免费av成人在线| 亚洲桃色在线一区| 91精品麻豆日日躁夜夜躁| 国产一区二区三区高清播放| 中文字幕一区二区三区视频| 成人免费视频免费观看|