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

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

?? rip_announcer.cc

?? RIP 協(xié)議實(shí)現(xiàn)
?? CC
字號(hào):
// -*- c-basic-offset: 4; tab-width: 8; indent-tabs-mode: t -*-// Copyright (c) 2001-2008 XORP, Inc.//// Permission is hereby granted, free of charge, to any person obtaining a// copy of this software and associated documentation files (the "Software")// to deal in the Software without restriction, subject to the conditions// listed in the XORP LICENSE file. These conditions include: you must// preserve this copyright notice, and you cannot mention the copyright// holders in advertising related to the Software without their permission.// The Software is provided WITHOUT ANY WARRANTY, EXPRESS OR IMPLIED. This// notice is a summary of the XORP LICENSE file; the license in that file is// legally binding.#ident "$XORP: xorp/rip/tools/rip_announcer.cc,v 1.16 2008/07/23 05:11:40 pavlin Exp $"#include <vector>#include <fstream>#include "rip/rip_module.h"#include "libxorp/xorp.h"#include "libxorp/xlog.h"#include "libxorp/utils.hh"#include "libxorp/eventloop.hh"#include "libxorp/ipv4.hh"#include "libxorp/ipv6.hh"#include "libcomm/comm_api.h"#include "rip/auth.hh"#include "rip/packet_assembly.hh"#ifdef HAVE_GETOPT_H#include <getopt.h>#endiftemplate <typename A>struct RipRoute {    RipRoute() {}    RipRoute(const IPNet<A>& 	a_net,	     const A& 		a_nh,	     uint16_t 		a_cost,	     uint16_t 		a_tag)	: net(a_net), nh(a_nh), cost(a_cost), tag(a_tag)    {}    IPNet<A> net;    A        nh;    uint16_t cost;    uint16_t tag;};boolannounce_routes(XorpFd fd, vector<RipRoute<IPv4> >* my_routes){    NullAuthHandler			nah;    PacketAssemblerSpecState<IPv4>	sp(nah);    ResponsePacketAssembler<IPv4> 	rpa(sp);    vector<RipRoute<IPv4> >& 		rts = *my_routes;    size_t n = my_routes->size();    size_t i = 0;    while (i != n) {	RipPacket<IPv4> pkt(IPv4::RIP2_ROUTERS(), 520);	rpa.packet_start(&pkt);	while (i != n && rpa.packet_full() == false) {	    rpa.packet_add_route(rts[i].net, rts[i].nh, rts[i].cost, rts[i].tag);	    i++;	}	list<RipPacket<IPv4>*> auth_packets;	if (rpa.packet_finish(auth_packets) != true)	    break;	if (pkt.data_bytes() == 0)	    break;	list<RipPacket<IPv4>*>::iterator iter;	for (iter = auth_packets.begin(); iter != auth_packets.end(); ++iter) {	    RipPacket<IPv4>* auth_pkt = *iter;	    sockaddr_in sai;	    auth_pkt->address().copy_out(sai);	    sai.sin_port = htons(auth_pkt->port());	    if (sendto(fd, XORP_BUF_CAST(auth_pkt->data_ptr()),		       auth_pkt->data_bytes(), 0,		       reinterpret_cast<const sockaddr*>(&sai),		       sizeof(sai)) < 0) {		cerr << "Write failed: " << strerror(errno) << endl;		return false;	    } else {		cout << "Packet sent" << endl;	    }	}	delete_pointers_list(auth_packets);    }    return true;}static voidfake_peer(XorpFd fd, uint32_t period, vector<RipRoute<IPv4> >& my_routes){    EventLoop e;    XorpTimer t = e.new_periodic_ms(period * 1000,				    callback(announce_routes, fd, &my_routes));    announce_routes(fd, &my_routes);    while (t.scheduled()) {	e.run();    }}static voidoriginate_routes_from_file(const char* 			file,			   vector<RipRoute<IPv4> >& 	my_routes,			   IPv4 			nh,			   uint16_t 			cost,			   uint16_t 			tag){    ifstream fin(file);    if (!fin) {        cerr << "Could not open nets file " << file << endl;	return;    }    string l;    while (fin >> l) {	try {	    IPv4Net net(l.c_str());	    my_routes.push_back(RipRoute<IPv4>(net, nh, cost, tag));	} catch (...) {	}    }    fin.close();}static XorpFdinit_rip_socket(IPv4 if_addr){    in_addr mcast_addr, join_if_addr;    IPv4::RIP2_ROUTERS().copy_out(mcast_addr);    if_addr.copy_out(join_if_addr);    XorpFd fd = comm_bind_join_udp4(&mcast_addr, &join_if_addr, htons(520),				 COMM_SOCK_ADDR_PORT_DONTREUSE,				 COMM_SOCK_NONBLOCKING);    if (!fd.is_valid()) {	cerr << "Could not instantiate socket" << endl;    } else if (comm_set_iface4(fd, &join_if_addr) != XORP_OK) {	cerr << "comm_set_iface4 failed" << endl;	comm_close(fd);	fd.clear();    } else if (comm_set_multicast_ttl(fd, 1) != XORP_OK) {	cerr << "comm_set_multicast_ttl failed" << endl;	comm_close(fd);	fd.clear();    }    return fd;}static voidshort_usage(){    cerr << "Use -h for more details. " << endl;}static voidusage(){    cerr << xlog_process_name() << " [options] -i <ifaddr> -o <netsfile>"	 << endl;    cerr << "Options:" << endl;    cerr << "  -c <cost>        specify cost for nets in next <netsfile>."	 << endl;    cerr << "  -i <ifaddr>      specify outbound interface." << endl;    cerr << "  -n <nexthop>     specify nexthop for nets in next <netsfile>."	 << endl;    cerr << "  -o <netsfile>    specify file containing list of nets for announcement." << endl;    cerr << "  -p <period>	specify announcement period in seconds (default = 30)." << endl;    cerr << "  -t <tag>         specify tag for nets in next <netsfile>."	 << endl;    cerr << "  -h               show this information." << endl;}intmain(int argc, char* const argv[]){    //    // Initialize and start xlog    //    xlog_init(argv[0], NULL);    xlog_set_verbose(XLOG_VERBOSE_LOW);         // Least verbose messages    xlog_level_set_verbose(XLOG_LEVEL_ERROR, XLOG_VERBOSE_HIGH);    xlog_add_default_output();    xlog_start();    comm_init();    try {	vector<RipRoute<IPv4> > my_routes;	IPv4	 if_addr;	bool do_run = true;	// Defaults	uint16_t tag	= 0;	uint16_t cost	= 1;	uint32_t period = 30;	IPv4	 nh;	int ch;	while ((ch = getopt(argc, argv, "c:n:i:o:p:t:h")) != -1) {	    switch(ch) {	    case 'c':		cost = atoi(optarg);		break;	    case 'i':		if_addr = IPv4(optarg);		break;	    case 'n':		nh = IPv4(optarg);		break;	    case 'o':		originate_routes_from_file(optarg, my_routes, nh, cost, tag);		break;	    case 'p':		period = strtoul(optarg, NULL, 10);		if (period == 0) {		    period = 30;		}		break;	    case 't':		tag = atoi(optarg);		break;	    case 'h':	    default:		usage();		do_run = false;	    }	}	if (do_run) {	    if (if_addr == IPv4::ZERO()) {		cerr << "Must specify a valid interface address with -i."		     << endl;		short_usage();	    } else if (my_routes.empty()) {		cerr << "No routes to originate." << endl;		short_usage();	    } else {		XorpFd fd = init_rip_socket(if_addr);		if (!fd.is_valid()) {		    fake_peer(fd, period, my_routes);		    comm_close(fd);		    fd.clear();		}	    }	}    } catch (...) {	xorp_print_standard_exceptions();    }    comm_exit();    //    // Gracefully stop and exit xlog    //    xlog_stop();    xlog_exit();    return 0;}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99免费精品视频| 国内成+人亚洲+欧美+综合在线| 欧美精品久久久久久久多人混战| 狂野欧美性猛交blacked| 中文字幕av一区二区三区免费看 | 成人蜜臀av电影| 亚洲一区二区三区爽爽爽爽爽| 99久久婷婷国产| 国产最新精品免费| 一区二区三区美女视频| 26uuu久久天堂性欧美| 色94色欧美sute亚洲线路一久| 日本不卡高清视频| 国产精品国产自产拍高清av王其| 91精品国产综合久久精品麻豆| 丁香激情综合五月| 亚洲一二三四区不卡| 久久综合九色综合欧美就去吻| 欧美成人bangbros| 99国产精品99久久久久久| 九色综合狠狠综合久久| 亚洲综合丝袜美腿| 精品日韩在线一区| 337p亚洲精品色噜噜| 91美女福利视频| 丁香六月综合激情| 精品一区二区三区免费播放| 中文字幕在线视频一区| 日韩一二在线观看| 色综合久久久久网| 99久久久久久99| 国产在线播放一区三区四| 亚洲一区二区免费视频| 一区二区中文字幕在线| 久久久不卡网国产精品一区| 在线不卡欧美精品一区二区三区| 色综合天天综合网天天看片| 亚洲午夜激情av| 一区二区在线观看视频在线观看| 久久久久久免费| 久久精品夜色噜噜亚洲a∨| 日韩欧美一区在线观看| 欧美日韩国产一级| 欧美视频一区二区三区在线观看| 不卡的电影网站| 91麻豆国产香蕉久久精品| 成人app下载| jlzzjlzz亚洲日本少妇| 成人网页在线观看| 国产精品一区一区三区| 成人黄色免费短视频| 国产成人啪免费观看软件 | 青娱乐精品视频在线| 亚洲图片欧美视频| 亚洲国产精品久久久久婷婷884| 亚洲欧美一区二区三区孕妇| 国产精品久久久久永久免费观看| 国产日韩v精品一区二区| 精品福利一区二区三区免费视频| 在线观看日产精品| 欧美三级在线视频| 欧美男同性恋视频网站| 正在播放亚洲一区| 日韩一区二区三区电影| 欧美精品一区二区三区很污很色的| 日韩女优制服丝袜电影| 精品久久久久久久一区二区蜜臀| 日韩一卡二卡三卡四卡| 精品久久久久久最新网址| 精品国产123| 精品久久久久av影院| 久久婷婷综合激情| 国产精品成人一区二区艾草| 一区二区三区 在线观看视频| 亚洲无人区一区| 男女性色大片免费观看一区二区 | 最新久久zyz资源站| 亚洲成人一区二区在线观看| 韩国精品免费视频| 91在线精品一区二区三区| 欧美理论电影在线| 国产欧美日韩久久| 蜜桃视频第一区免费观看| 国产不卡高清在线观看视频| 精品视频在线视频| 国产欧美一区二区三区网站| 亚洲国产你懂的| 国产九色精品成人porny | 日韩亚洲国产中文字幕欧美| 国产精品无遮挡| 美女看a上一区| 色又黄又爽网站www久久| 久久综合九色综合欧美亚洲| 一区二区三区在线不卡| 国产呦精品一区二区三区网站| 色八戒一区二区三区| 久久综合九色综合97婷婷女人| 亚洲国产综合91精品麻豆| 成人中文字幕电影| 日韩精品最新网址| 亚洲综合视频网| 成人国产一区二区三区精品| 日韩精品在线网站| 亚洲电影一级黄| 91麻豆国产精品久久| 国产欧美精品一区aⅴ影院 | 成人不卡免费av| 欧美大片免费久久精品三p| 亚洲成av人片在线观看| av中文字幕一区| 久久夜色精品国产噜噜av| 五月天久久比比资源色| 91小视频免费看| 国产精品视频看| 国产乱码精品一区二区三区av| 欧美蜜桃一区二区三区 | 国产精品99久久久久久久女警| 欧美日韩国产综合视频在线观看| 国产精品久久久久久久久免费丝袜 | 欧美视频在线一区二区三区| 中文字幕一区二区三区在线观看| 国产成人精品免费看| 国产午夜精品一区二区 | 国产不卡高清在线观看视频| 精品国产一区二区三区忘忧草| 香蕉影视欧美成人| 欧美三区在线观看| 亚洲国产综合在线| 欧美熟乱第一页| 亚洲高清在线视频| 欧美三级乱人伦电影| 亚洲高清免费视频| 欧美卡1卡2卡| 日韩中文字幕区一区有砖一区| 欧美日韩日日摸| 首页亚洲欧美制服丝腿| 欧美日韩一区 二区 三区 久久精品 | 欧美精品一区二区三区久久久| 精品无人码麻豆乱码1区2区| 日韩一区二区三区观看| 视频一区二区中文字幕| 欧美群妇大交群的观看方式| 五月婷婷激情综合| 日韩一级免费观看| 激情六月婷婷综合| 国产欧美日韩激情| 9色porny自拍视频一区二区| 亚洲三级小视频| 欧美色精品天天在线观看视频| 日精品一区二区| 久久亚洲综合色一区二区三区| 国产成人欧美日韩在线电影| 免费av成人在线| 久久伊人蜜桃av一区二区| 成人一区二区在线观看| 亚洲人成精品久久久久| 欧美精品成人一区二区三区四区| 六月丁香婷婷久久| 欧美激情综合五月色丁香小说| 91麻豆免费观看| 日韩主播视频在线| 国产人成亚洲第一网站在线播放| 91丨九色丨国产丨porny| 午夜精品福利久久久| 精品国产欧美一区二区| 成人avav在线| 亚洲国产精品久久艾草纯爱| 欧美精品一区二区三区在线播放| 成人精品一区二区三区四区 | 亚洲另类在线一区| 欧美日本精品一区二区三区| 国产自产2019最新不卡| 中文字幕亚洲电影| 欧美日韩精品一二三区| 国产成人亚洲精品青草天美| 伊人色综合久久天天| 精品粉嫩超白一线天av| 97超碰欧美中文字幕| 日本午夜一区二区| 国产精品色婷婷久久58| 91精品国产综合久久蜜臀| 国产91丝袜在线播放九色| 亚洲成人激情社区| 国产免费观看久久| 9191成人精品久久| 99久久99久久综合| 精品在线视频一区| 亚洲精品免费一二三区| 久久久久久久久久美女| 欧美日韩一区二区三区四区| 成人综合婷婷国产精品久久| 蜜桃一区二区三区四区| 亚洲欧美一区二区三区久本道91| 日韩你懂的在线观看| 欧美中文字幕一区二区三区亚洲| 国产福利精品一区| 日韩和欧美一区二区三区| 亚洲男人的天堂一区二区| 久久中文娱乐网| 日韩一区二区三区视频在线观看|