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

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

?? print_peer.cc

?? BCAST Implementation for NS2
?? CC
字號:
// -*- c-basic-offset: 4; tab-width: 8; indent-tabs-mode: t -*-// Copyright (c) 2001-2003 International Computer Science Institute//// 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/bgp/tools/print_peer.cc,v 1.10 2003/10/01 02:29:12 atanu Exp $"#include "print_peer.hh"PrintPeers::PrintPeers(bool verbose, int interval)     : XrlBgpV0p2Client(&_xrl_rtr),     _xrl_rtr(_eventloop, "print_peers"), _verbose(verbose){    _prev_no_bgp = false;    _prev_no_peers = false;    // Wait for the finder to become ready.    {	bool timed_out = false;	XorpTimer t = _eventloop.set_flag_after_ms(10000, &timed_out);	while (_xrl_rtr.connected() == false && timed_out == false) {	    _eventloop.run();	}	if (_xrl_rtr.connected() == false) {	    XLOG_WARNING("XrlRouter did not become ready. No Finder?");	}    }    for (;;) {	_done = false;	_token = 0;	_count = 0;	get_peer_list_start();	while (_done == false) {	    _eventloop.run();	}	if (interval <= 0)	    break;	sleep(interval);    }}voidPrintPeers::get_peer_list_start() {    XorpCallback3<void, const XrlError&, const uint32_t*, 	const bool*>::RefPtr cb;    cb = callback(this, &PrintPeers::get_peer_list_start_done);    send_get_peer_list_start("bgp", cb);}voidPrintPeers::get_peer_list_start_done(const XrlError& e, 				     const uint32_t* token, 				     const bool* more) {    if (e != XrlError::OKAY()) {	//fprintf(stderr, "Failed to get peer list start\n");	if (_prev_no_bgp == false)	    printf("\n\nNo BGP Exists\n");	_prev_no_bgp = true;	_done = true;	return;    }    _prev_no_bgp = false;    if (*more == false) {	if (_prev_no_peers == false)	    printf("\n\nNo Peerings Exist\n");	_prev_no_peers = true;	_done = true;	return;    }    printf("\n\n");    _prev_no_peers = false;    _token = *token;    get_peer_list_next();}voidPrintPeers::get_peer_list_next() {    XorpCallback6<void, const XrlError&, const IPv4*, 	const uint32_t*, const IPv4*, const uint32_t*, 	const bool*>::RefPtr cb;    cb = callback(this, &PrintPeers::get_peer_list_next_done);    send_get_peer_list_next("bgp", _token, cb);}voidPrintPeers::get_peer_list_next_done(const XrlError& e, 				    const IPv4* local_ip, 				    const uint32_t* local_port, 				    const IPv4* peer_ip, 				    const uint32_t* peer_port, 				    const bool* more) {    if (e != XrlError::OKAY()) {	fprintf(stderr, "Failed to get peer list next\n");	_done = true;	return;    }    if (local_port == 0 && peer_port == 0) {	//this is an error condition where the last peer was deleted	//before we could list it.	_done = true;	return;    }	    _count++;    printf("Peer %d: local %s/%d remote %s/%d\n", _count,	   local_ip->str().c_str(), *local_port,	   peer_ip->str().c_str(), *peer_port);    if (_verbose) {	_more = *more;	print_peer_verbose(*local_ip, *local_port, 			   *peer_ip, *peer_port);	return;    } else {	if (*more == false) {	    _done = true;	    return;	}	get_peer_list_next();    }}void PrintPeers::print_peer_verbose(const IPv4& local_ip, 			       uint32_t local_port, 			       const IPv4& peer_ip, 			       uint32_t peer_port) {    //node: ports are still in network byte order    //pipeline all the requests so we get as close to possible to an    //instantaneous snapshot of the peer config    _received = 0;    XorpCallback2<void, const XrlError&, const IPv4*>::RefPtr cb1;    cb1 = callback(this, &PrintPeers::get_peer_id_done);    send_get_peer_id("bgp", local_ip, local_port, peer_ip, peer_port, cb1);    XorpCallback3<void, const XrlError&, const uint32_t*, 	const uint32_t*>::RefPtr cb2;    cb2 = callback(this, &PrintPeers::get_peer_status_done);    send_get_peer_status("bgp", local_ip, local_port, peer_ip, peer_port, cb2);    XorpCallback2<void, const XrlError&, const int32_t*>::RefPtr cb3;    cb3 = callback(this, &PrintPeers::get_peer_negotiated_version_done);    send_get_peer_negotiated_version("bgp", local_ip, local_port, peer_ip, 				     peer_port, cb3);    XorpCallback2<void, const XrlError&, const uint32_t*>::RefPtr cb4;    cb4 = callback(this, &PrintPeers::get_peer_as_done);    send_get_peer_as("bgp", local_ip, local_port, peer_ip, peer_port, cb4);    XorpCallback7<void, const XrlError&, const uint32_t*, const uint32_t*, 	const uint32_t*, const uint32_t*, const uint32_t*, 	const uint32_t*>::RefPtr cb5;    cb5 = callback(this, &PrintPeers::get_peer_msg_stats_done);    send_get_peer_msg_stats("bgp", local_ip, local_port, 			    peer_ip, peer_port, cb5);    XorpCallback3<void, const XrlError&, const uint32_t*, 	const uint32_t*>::RefPtr cb6;    cb6 = callback(this, &PrintPeers::get_peer_established_stats_done);    send_get_peer_established_stats("bgp", local_ip, local_port, 				    peer_ip, peer_port, cb6);    XorpCallback8<void, const XrlError&, const uint32_t*, const uint32_t*, 	const uint32_t*, const uint32_t*, const uint32_t*, 	const uint32_t*, const uint32_t*>::RefPtr cb7;    cb7 = callback(this, &PrintPeers::get_peer_timer_config_done);    send_get_peer_timer_config("bgp", local_ip, local_port, 			       peer_ip, peer_port, cb7);}void PrintPeers::get_peer_id_done(const XrlError& e, 			     const IPv4* peer_id){    if (e != XrlError::OKAY()) {	//printf("Failed to retrieve verbose data (%s)\n", e.str().c_str());	if (_more)	    get_peer_list_next();	return;    }    _peer_id = *peer_id;    _received++;    if (_received == 7)	do_verbose_peer_print();}void PrintPeers::get_peer_status_done(const XrlError& e, 				 const uint32_t* peer_state, 				 const uint32_t* admin_status){    if (e != XrlError::OKAY()) {	//printf("Failed to retrieve verbose data\n");	if (_more)	    get_peer_list_next();	return;    }    _peer_state = *peer_state;    _admin_state = *admin_status;    _received++;    if (_received == 7)	do_verbose_peer_print();}void PrintPeers::get_peer_negotiated_version_done(const XrlError& e, 					     const int32_t* neg_version){    if (e != XrlError::OKAY()) {	//printf("Failed to retrieve verbose data\n");	if (_more)	    get_peer_list_next();	return;    }    _negotiated_version = *neg_version;    _received++;    if (_received == 7)	do_verbose_peer_print();}void PrintPeers::get_peer_as_done(const XrlError& e, 			     const uint32_t* peer_as){    if (e != XrlError::OKAY()) {	//printf("Failed to retrieve verbose data\n");	if (_more)	    get_peer_list_next();	return;    }    _peer_as = *peer_as;    _received++;    if (_received == 7)	do_verbose_peer_print();}void PrintPeers::get_peer_msg_stats_done(const XrlError& e, 				    const uint32_t* in_updates, 				    const uint32_t* out_updates, 				    const uint32_t* in_msgs, 				    const uint32_t* out_msgs, 				    const uint32_t* last_error, 				    const uint32_t* in_update_elapsed){    if (e != XrlError::OKAY()) {	//printf("Failed to retrieve verbose data\n");	if (_more)	    get_peer_list_next();	return;    }    _in_updates = *in_updates;    _out_updates = *out_updates;    _in_msgs = *in_msgs;    _out_msgs = *out_msgs;    _last_error = *last_error;    _in_update_elapsed = *in_update_elapsed;    _received++;    if (_received == 7)	do_verbose_peer_print();}void PrintPeers::get_peer_established_stats_done(const XrlError& e, 					    const uint32_t* transitions, 					    const uint32_t* established_time){    if (e != XrlError::OKAY()) {	//printf("Failed to retrieve verbose data\n");	if (_more)	    get_peer_list_next();	return;    }    _transitions = *transitions;    _established_time = *established_time;    _received++;    if (_received == 7)	do_verbose_peer_print();}voidPrintPeers::get_peer_timer_config_done(const XrlError& e, 				       const uint32_t* retry_interval, 				       const uint32_t* hold_time, 				       const uint32_t* keep_alive, 				       const uint32_t* hold_time_conf, 				       const uint32_t* keep_alive_conf, 				       const uint32_t* min_as_origination_interval,				       const uint32_t* min_route_adv_interval){    if (e != XrlError::OKAY()) {	printf("Failed to retrieve verbose data\n");	if (_more)	    get_peer_list_next();	return;    }    _retry_interval = *retry_interval;    _hold_time = *hold_time;    _keep_alive = *keep_alive;    _hold_time_conf = *hold_time_conf;    _keep_alive_conf = *keep_alive_conf;    _min_as_origination_interval = *min_as_origination_interval;    _min_route_adv_interval = *min_route_adv_interval;    _received++;    if (_received == 7)	do_verbose_peer_print();}stringPrintPeers::time_units(uint32_t secs) const {    string s;    if (secs == 1)	s = "1 second";    else	s = c_format("%d seconds", secs);    return s;}void PrintPeers::do_verbose_peer_print(){    if (_peer_state == 6) {	printf("  Peer ID: %s\n", _peer_id.str().c_str());    } else {	printf("  Peer ID: none\n");    }    printf("  Peer State: ");    switch (_peer_state) {    case 1:	printf("IDLE\n");	break;    case 2:	printf("CONNECT\n");	break;    case 3:	printf("ACTIVE\n");	break;    case 4:	printf("OPENSENT\n");	break;    case 5:	printf("OPENCONFIRM\n");	break;    case 6:	printf("ESTABLISHED\n");	break;    case 7:	printf("IDLE(*)\n");	break;    default:	printf("UNKNOWN (THIS SHOULDN'T HAPPEN)\n");    }    printf("  Admin State: ");    switch (_admin_state) {    case 1:	printf("STOPPED\n");	break;    case 2:	printf("START\n");	break;    default:	printf("UNKNOWN (THIS SHOULDN'T HAPPEN)\n");    }    if (_peer_state == 6)	printf("  Negotiated BGP Version: %d\n", _negotiated_version);    else	printf("  Negotiated BGP Version: n/a\n");    printf("  Peer AS Number: %d\n", _peer_as);    printf("  Updates Received: %d,  Updates Sent: %d\n",	   _in_updates, _out_updates);    printf("  Messages Received: %d,  Messages Sent: %d\n",	   _in_msgs, _out_msgs);    if (_in_updates > 0) {	printf("  Time since last received update: %s\n",	       time_units(_in_update_elapsed).c_str());    } else {	printf("  Time since last received update: n/a\n");    }    printf("  Number of transitions to ESTABLISHED: %d\n",	   _transitions);    if (_peer_state == 6) {	printf("  Time since last entering ESTABLISHED state: %s\n",	       time_units(_established_time).c_str());    } else if (_transitions > 0) {	printf("  Time since last in ESTABLISHED state: %s\n",	       time_units(_established_time).c_str());    } else {	printf("  Time since last in ESTABLISHED state: n/a\n");    }    printf("  Retry Interval: %s\n", time_units(_retry_interval).c_str());    if (_peer_state == 6) {	printf("  Hold Time: %s,  Keep Alive Time: %s\n",	       time_units(_hold_time).c_str(), 	       time_units(_keep_alive).c_str());    } else {	printf("  Hold Time: n/a,  Keep Alive Time: n/a\n");    }    printf("  Configured Hold Time: %s,  Configured Keep Alive Time: %s\n", 	   time_units(_hold_time_conf).c_str(), 	   time_units(_keep_alive_conf).c_str());    printf("  Minimum AS Origination Interval: %s\n", 	   time_units(_min_as_origination_interval).c_str());    printf("  Minimum Route Advertisement Interval: %s\n", 	   time_units(_min_route_adv_interval).c_str());    if (_more) {	printf("\n");	get_peer_list_next();    } else {	_done = true;    }}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲成人在线免费| 亚洲成av人片在www色猫咪| 51精品秘密在线观看| 色香蕉成人二区免费| 99久久99久久精品国产片果冻| 看片的网站亚洲| 激情成人午夜视频| 国产精品亚洲一区二区三区妖精| 亚洲成av人片在线| 免费亚洲电影在线| 老司机午夜精品99久久| 国产伦精品一区二区三区视频青涩 | 精品国产露脸精彩对白 | 捆绑变态av一区二区三区| 免费观看久久久4p| 国产精品综合视频| 91免费观看国产| 欧美性videosxxxxx| 欧美三级三级三级| 精品国产免费人成电影在线观看四季 | 顶级嫩模精品视频在线看| 成人黄色777网| 欧美亚洲图片小说| 日韩精品中文字幕一区| 久久久久国产成人精品亚洲午夜 | 国产日韩欧美制服另类| 1024亚洲合集| 日韩电影免费在线| 国产酒店精品激情| 欧美午夜不卡视频| 精品日韩一区二区三区免费视频| 久久免费美女视频| 亚洲国产成人porn| 国产福利一区二区三区视频在线 | 欧美性猛交xxxxxxxx| 日韩欧美精品在线| 午夜日韩在线电影| 国产又粗又猛又爽又黄91精品| 成人av午夜影院| 日韩视频免费直播| 亚洲乱码国产乱码精品精小说| 香蕉久久一区二区不卡无毒影院| 国产一区91精品张津瑜| 欧美日韩一区二区电影| 国产无遮挡一区二区三区毛片日本| 亚洲你懂的在线视频| 狠狠色综合播放一区二区| 在线这里只有精品| 欧美精彩视频一区二区三区| 男男成人高潮片免费网站| 尤物在线观看一区| 精品日产卡一卡二卡麻豆| 亚洲欧美在线观看| 久久精品国产在热久久| 欧美在线一二三四区| 国产日韩欧美精品一区| 男人操女人的视频在线观看欧美| 91在线观看地址| 久久精品欧美一区二区三区麻豆| 同产精品九九九| 色综合天天做天天爱| 欧美韩国日本综合| 激情另类小说区图片区视频区| 欧美曰成人黄网| 亚洲国产成人午夜在线一区| 激情综合色播五月| 欧美区一区二区三区| 亚洲制服欧美中文字幕中文字幕| 91在线小视频| 亚洲伦理在线免费看| 9色porny自拍视频一区二区| 国产欧美日韩精品a在线观看| 美女爽到高潮91| 欧美一区二区福利在线| 日本在线不卡视频| 在线观看91精品国产麻豆| 亚洲一区二区三区精品在线| 欧美图区在线视频| 香蕉成人啪国产精品视频综合网| 欧美图片一区二区三区| 亚洲福中文字幕伊人影院| 欧美日韩国产精选| 日韩影院免费视频| 精品嫩草影院久久| 国产一区在线看| 欧美极品美女视频| 91小宝寻花一区二区三区| 亚洲精品国产品国语在线app| 99久久精品国产一区二区三区 | 国产精品国产精品国产专区不蜜| 粉嫩一区二区三区性色av| 久久久久久久久久久99999| 成人综合婷婷国产精品久久免费| 国产亚洲视频系列| av激情成人网| 一个色在线综合| 日韩欧美综合在线| 国产精品影音先锋| 亚洲精品欧美激情| 在线观看91av| 国产成a人亚洲| 亚洲免费观看高清完整版在线 | 激情综合色播五月| 中文字幕av一区二区三区免费看| 91无套直看片红桃| 爽好多水快深点欧美视频| 精品国产一区二区三区久久影院| 成人激情小说乱人伦| 一区二区三区四区不卡视频| 91精品国产综合久久久久| 国产精品羞羞答答xxdd| 中文字幕一区av| 日韩亚洲欧美一区| k8久久久一区二区三区| 三级不卡在线观看| 国产精品日日摸夜夜摸av| 欧美日韩激情一区| 国产99精品在线观看| 五月天激情综合| 国产精品天美传媒| 7777精品伊人久久久大香线蕉的| 国产精品影音先锋| 日韩国产在线一| ...av二区三区久久精品| 欧美精品粉嫩高潮一区二区| 91在线丨porny丨国产| 国模冰冰炮一区二区| 午夜一区二区三区在线观看| 国产女主播一区| 日韩你懂的电影在线观看| 在线亚洲人成电影网站色www| 国产剧情在线观看一区二区| 日韩成人一级大片| 一区二区成人在线视频 | av电影在线观看完整版一区二区| 免费在线观看视频一区| 香蕉久久夜色精品国产使用方法| 欧美国产日韩在线观看| 亚洲精品在线电影| 精品美女在线播放| 欧美一区永久视频免费观看| 欧洲精品一区二区| 色综合久久久久| 99久久免费精品高清特色大片| 韩国女主播成人在线观看| 麻豆精品在线播放| 爽爽淫人综合网网站| 午夜婷婷国产麻豆精品| 亚洲大型综合色站| 一区二区三区**美女毛片| 亚洲精品日韩一| 亚洲精选在线视频| 亚洲综合色成人| 亚洲一区在线观看免费| 亚洲狠狠爱一区二区三区| 夜夜爽夜夜爽精品视频| 亚洲图片有声小说| 天堂一区二区在线免费观看| 日韩avvvv在线播放| 奇米影视在线99精品| 狠狠色丁香婷婷综合| 国产一区福利在线| 国产91精品一区二区麻豆网站| 国产一区二区看久久| 国产91精品一区二区| 成人一区二区三区视频 | 夜夜嗨av一区二区三区| 亚洲国产精品天堂| 日韩中文字幕亚洲一区二区va在线 | 中文字幕欧美国产| 亚洲欧洲成人自拍| 午夜精品久久久久久久99樱桃| 日本亚洲免费观看| 极品美女销魂一区二区三区 | 99久久伊人久久99| 欧美午夜精品理论片a级按摩| 欧美日高清视频| 日韩欧美在线网站| 国产欧美精品日韩区二区麻豆天美| 国产欧美精品区一区二区三区| 亚洲免费观看高清在线观看| 免费视频一区二区| 成人免费福利片| 在线亚洲人成电影网站色www| 91精品国产日韩91久久久久久| 26uuu亚洲| 亚洲精品免费在线| 国产综合色在线| 在线国产电影不卡| 精品久久久久久亚洲综合网 | 日韩欧美高清在线| 亚洲色欲色欲www| 麻豆精品在线视频| 一本久久精品一区二区| 日韩精品中文字幕在线不卡尤物 | 欧美日韩视频在线第一区 | 成人一区二区视频| 欧美精品在线观看播放| 国产亚洲一区二区三区在线观看| 亚洲第一福利视频在线|