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

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

?? mld6igmp_group_record.cc

?? MLDv2 support igmpv3 lite
?? CC
?? 第 1 頁 / 共 3 頁
字號:
    set<IPvX>::const_iterator iter;    if (old_is_include_mode) {	if (new_is_include_mode) {	    // INCLUDE -> INCLUDE	    // Join all new sources that are to be forwarded	    for (iter = new_do_forward_sources.begin();		 iter != new_do_forward_sources.end();		 ++iter) {		const IPvX& ipvx = *iter;		if (old_do_forward_sources.find(ipvx)		    == old_do_forward_sources.end()) {		    mld6igmp_vif().join_prune_notify_routing(ipvx,							     group(),							     ACTION_JOIN);		}	    }	    // Prune all old sources that were forwarded	    for (iter = old_do_forward_sources.begin();		 iter != old_do_forward_sources.end();		 ++iter) {		const IPvX& ipvx = *iter;		if (new_do_forward_sources.find(ipvx)		    == new_do_forward_sources.end()) {		    mld6igmp_vif().join_prune_notify_routing(ipvx,							     group(),							     ACTION_PRUNE);		}	    }	}	if (! new_is_include_mode) {	    // INCLUDE -> EXCLUDE	    // Prune the old sources that were forwarded	    for (iter = old_do_forward_sources.begin();		 iter != old_do_forward_sources.end();		 ++iter) {		const IPvX& ipvx = *iter;		if (new_do_forward_sources.find(ipvx)		    == new_do_forward_sources.end()) {		    mld6igmp_vif().join_prune_notify_routing(ipvx,							     group(),							     ACTION_PRUNE);		}	    }	    // Join the group itself	    mld6igmp_vif().join_prune_notify_routing(IPvX::ZERO(family()),						     group(),						     ACTION_JOIN);	    // Join all new sources that are to be forwarded	    for (iter = new_do_forward_sources.begin();		 iter != new_do_forward_sources.end();		 ++iter) {		const IPvX& ipvx = *iter;		if (old_do_forward_sources.find(ipvx)		    == old_do_forward_sources.end()) {		    mld6igmp_vif().join_prune_notify_routing(ipvx,							     group(),							     ACTION_JOIN);		}	    }	}    }    if (! old_is_include_mode) {	if (new_is_include_mode) {	    // EXCLUDE -> INCLUDE	    // Prune the group itself	    mld6igmp_vif().join_prune_notify_routing(IPvX::ZERO(family()),						     group(),						     ACTION_PRUNE);	    // Join all new sources that are to be forwarded	    for (iter = new_do_forward_sources.begin();		 iter != new_do_forward_sources.end();		 ++iter) {		const IPvX& ipvx = *iter;		if (old_do_forward_sources.find(ipvx)		    == old_do_forward_sources.end()) {		    mld6igmp_vif().join_prune_notify_routing(ipvx,							     group(),							     ACTION_JOIN);		}	    }	}	if (! new_is_include_mode) {	    // EXCLUDE -> EXCLUDE	    // Join all new sources that are to be forwarded	    for (iter = new_do_forward_sources.begin();		 iter != new_do_forward_sources.end();		 ++iter) {		const IPvX& ipvx = *iter;		if (old_do_forward_sources.find(ipvx)		    == old_do_forward_sources.end()) {		    mld6igmp_vif().join_prune_notify_routing(ipvx,							     group(),							     ACTION_JOIN);		}	    }	    // Prune all old sources that were forwarded	    for (iter = old_do_forward_sources.begin();		 iter != old_do_forward_sources.end();		 ++iter) {		const IPvX& ipvx = *iter;		if (new_do_forward_sources.find(ipvx)		    == new_do_forward_sources.end()) {		    mld6igmp_vif().join_prune_notify_routing(ipvx,							     group(),							     ACTION_PRUNE);		}	    }	}    }}/** * Constructor for a given vif. *  * @param mld6igmp_vif the interface this set belongs to. */Mld6igmpGroupSet::Mld6igmpGroupSet(Mld6igmpVif& mld6igmp_vif)    : _mld6igmp_vif(mld6igmp_vif){    }/** * Destructor. */Mld6igmpGroupSet::~Mld6igmpGroupSet(){    // XXX: don't delete the payload, because it might be used elsewhere}/** * Find a group record. * * @param group the group address. * @return the corresponding group record (@ref Mld6igmpGroupRecord) * if found, otherwise NULL. */Mld6igmpGroupRecord*Mld6igmpGroupSet::find_group_record(const IPvX& group){    Mld6igmpGroupSet::iterator iter = this->find(group);    if (iter != this->end())	return (iter->second);    return (NULL);}/** * Delete the payload of the set, and clear the set itself. */voidMld6igmpGroupSet::delete_payload_and_clear(){    Mld6igmpGroupSet::iterator iter;    //    // Delete the payload of the set    //    for (iter = this->begin(); iter != this->end(); ++iter) {	Mld6igmpGroupRecord* group_record = iter->second;	delete group_record;    }    //    // Clear the set itself    //    this->clear();}/** * Process MODE_IS_INCLUDE report. * * @param group the group address. * @param sources the source addresses. * @param last_reported_host the address of the host that last reported * as member. */voidMld6igmpGroupSet::process_mode_is_include(const IPvX& group,					  const set<IPvX>& sources,					  const IPvX& last_reported_host){    Mld6igmpGroupSet::iterator iter;    Mld6igmpGroupRecord* group_record = NULL;    iter = this->find(group);    if (iter != this->end()) {	group_record = iter->second;    } else {	group_record = new Mld6igmpGroupRecord(_mld6igmp_vif, group);	this->insert(make_pair(group, group_record));    }    XLOG_ASSERT(group_record != NULL);    group_record->process_mode_is_include(sources, last_reported_host);    //    // If the group record is not used anymore, then delete it    //    if (group_record->is_unused()) {	this->erase(group);	delete group_record;    }}/** * Process MODE_IS_EXCLUDE report. * * @param group the group address. * @param sources the source addresses. * @param last_reported_host the address of the host that last reported * as member. */voidMld6igmpGroupSet::process_mode_is_exclude(const IPvX& group,					  const set<IPvX>& sources,					  const IPvX& last_reported_host){    Mld6igmpGroupSet::iterator iter;    Mld6igmpGroupRecord* group_record = NULL;    set<IPvX> nosources;    UNUSED(sources);    iter = this->find(group);    if (iter != this->end()) {	group_record = iter->second;    } else {	group_record = new Mld6igmpGroupRecord(_mld6igmp_vif, group);	this->insert(make_pair(group, group_record));    }    XLOG_ASSERT(group_record != NULL);    group_record->process_mode_is_exclude(nosources, last_reported_host);    //    // If the group record is not used anymore, then delete it    //    if (group_record->is_unused()) {	this->erase(group);	delete group_record;    }}/** * Process CHANGE_TO_INCLUDE_MODE report. * * @param group the group address. * @param sources the source addresses. * @param last_reported_host the address of the host that last reported * as member. */voidMld6igmpGroupSet::process_change_to_include_mode(const IPvX& group,						 const set<IPvX>& sources,						 const IPvX& last_reported_host){    Mld6igmpGroupSet::iterator iter;    Mld6igmpGroupRecord* group_record = NULL;    iter = this->find(group);    if (iter != this->end()) {	group_record = iter->second;    } else {	group_record = new Mld6igmpGroupRecord(_mld6igmp_vif, group);	this->insert(make_pair(group, group_record));    }    XLOG_ASSERT(group_record != NULL);    if (_mld6igmp_vif.is_igmpv1_mode(group_record)) {	//	// XXX: Ignore CHANGE_TO_INCLUDE_MODE messages when in	// IGMPv1 mode.	//    } else {	group_record->process_change_to_include_mode(sources,						     last_reported_host);    }    //    // If the group record is not used anymore, then delete it    //    if (group_record->is_unused()) {	this->erase(group);	delete group_record;    }}/** * Process CHANGE_TO_EXCLUDE_MODE report. * * @param group the group address. * @param sources the source addresses. * @param last_reported_host the address of the host that last reported * as member. */voidMld6igmpGroupSet::process_change_to_exclude_mode(const IPvX& group,						 const set<IPvX>& sources,						 const IPvX& last_reported_host){    Mld6igmpGroupSet::iterator iter;    Mld6igmpGroupRecord* group_record = NULL;    UNUSED(sources);    iter = this->find(group);    if (iter != this->end()) {	group_record = iter->second;    } else {	group_record = new Mld6igmpGroupRecord(_mld6igmp_vif, group);	this->insert(make_pair(group, group_record));    }    XLOG_ASSERT(group_record != NULL);    if (_mld6igmp_vif.is_igmpv1_mode(group_record)	|| _mld6igmp_vif.is_igmpv2_mode(group_record)	|| _mld6igmp_vif.is_mldv1_mode(group_record)) {	//	// XXX: Ignore the source list in the CHANGE_TO_EXCLUDE_MODE	// messages when in IGMPv1, IGMPv2, or MLDv1 mode.	//	set<IPvX> no_sources;		// XXX: empty set	group_record->process_change_to_exclude_mode(no_sources,						     last_reported_host);    } else {	set<IPvX> no_sources;	group_record->process_change_to_exclude_mode(no_sources,						     last_reported_host);    }    //    // If the group record is not used anymore, then delete it    //    if (group_record->is_unused()) {	this->erase(group);	delete group_record;    }}/** * Process ALLOW_NEW_SOURCES report. * * @param group the group address. * @param sources the source addresses. * @param last_reported_host the address of the host that last reported * as member. */voidMld6igmpGroupSet::process_allow_new_sources(const IPvX& group,					    const set<IPvX>& sources,					    const IPvX& last_reported_host){    Mld6igmpGroupSet::iterator iter;    Mld6igmpGroupRecord* group_record = NULL;    iter = this->find(group);    if (iter != this->end()) {	group_record = iter->second;    } else {	group_record = new Mld6igmpGroupRecord(_mld6igmp_vif, group);	this->insert(make_pair(group, group_record));    }    XLOG_ASSERT(group_record != NULL);    group_record->process_allow_new_sources(sources, last_reported_host);    //    // If the group record is not used anymore, then delete it    //    if (group_record->is_unused()) {	this->erase(group);	delete group_record;    }}/** * Process BLOCK_OLD_SOURCES report. * * @param group the group address. * @param sources the source addresses. * @param last_reported_host the address of the host that last reported * as member. */voidMld6igmpGroupSet::process_block_old_sources(const IPvX& group,					    const set<IPvX>& sources,					    const IPvX& last_reported_host){    Mld6igmpGroupSet::iterator iter;    Mld6igmpGroupRecord* group_record = NULL;    iter = this->find(group);    if (iter != this->end()) {	group_record = iter->second;    } else {	group_record = new Mld6igmpGroupRecord(_mld6igmp_vif, group);	this->insert(make_pair(group, group_record));    }    XLOG_ASSERT(group_record != NULL);    if (_mld6igmp_vif.is_igmpv1_mode(group_record)	|| _mld6igmp_vif.is_igmpv2_mode(group_record)	|| _mld6igmp_vif.is_mldv1_mode(group_record)) {	//	// XXX: Ignore BLOCK_OLD_SOURCES messages when in	// IGMPv1, IGMPv2, or MLDv1 mode.	//    } else {	group_record->process_block_old_sources(sources, last_reported_host);    }    //    // If the group record is not used anymore, then delete it    //    if (group_record->is_unused()) {	this->erase(group);	delete group_record;    }}/** * Lower the group timer. * * @param group the group address. * @param timeval the timeout interval the timer should be lowered to. */voidMld6igmpGroupSet::lower_group_timer(const IPvX& group,				    const TimeVal& timeval){    Mld6igmpGroupSet::iterator iter;    iter = this->find(group);    if (iter != this->end()) {	Mld6igmpGroupRecord* group_record = iter->second;	group_record->lower_group_timer(timeval);    }}/** * Lower the source timer for a set of sources. * * @param group the group address. * @param sources the source addresses. * @param timeval the timeout interval the timer should be lowered to. */voidMld6igmpGroupSet::lower_source_timer(const IPvX& group,				     const set<IPvX>& sources,				     const TimeVal& timeval){    Mld6igmpGroupSet::iterator iter;    iter = this->find(group);    if (iter != this->end()) {	Mld6igmpGroupRecord* group_record = iter->second;	group_record->lower_source_timer(sources, timeval);    }}/** * Get the number of seconds until the IGMPv1 host present timer expires. * * @return the number of seconds until the IGMPv1 host present timer * expires. */uint32_tMld6igmpGroupRecord::igmpv1_host_present_timer_timeout_sec() const{    TimeVal tv;        _igmpv1_host_present_timer.time_remaining(tv);        return (tv.sec());}/** * Get the number of seconds until the IGMPv2/MLDv1 host present timer * expires. * * @return the number of seconds until the IGMPv2/MLDv1 host present timer * expires. */uint32_tMld6igmpGroupRecord::igmpv2_mldv1_host_present_timer_timeout_sec() const{    TimeVal tv;        _igmpv2_mldv1_host_present_timer.time_remaining(tv);        return (tv.sec());}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品全国免费观看高清| 亚洲午夜精品17c| 一区二区免费在线播放| 麻豆成人综合网| 色88888久久久久久影院按摩| 日韩免费在线观看| 一级中文字幕一区二区| 国产福利一区二区| 日韩精品一区二区三区视频| 亚洲福利视频一区二区| 成人激情免费电影网址| 久久久久亚洲蜜桃| 另类人妖一区二区av| 欧美天堂亚洲电影院在线播放| 中文字幕国产精品一区二区| 精品一区二区在线视频| 7777精品伊人久久久大香线蕉完整版| 综合激情网...| 成人av电影在线| 久久欧美中文字幕| 免费一级欧美片在线观看| 欧美视频一区二区在线观看| 亚洲欧美日韩国产综合在线| 成人自拍视频在线观看| 欧美—级在线免费片| 高清不卡一区二区在线| 久久蜜桃一区二区| 国产专区综合网| 久久久亚洲午夜电影| 国产一区二区三区四区五区美女| 日韩精品中文字幕在线一区| 首页国产欧美日韩丝袜| 欧美日韩一级片网站| 亚洲大片精品永久免费| 91精品欧美综合在线观看最新| 亚洲午夜免费电影| 欧美在线看片a免费观看| 夜夜精品视频一区二区| 欧美精品v国产精品v日韩精品| 亚洲高清视频的网址| 欧美精选一区二区| 日产欧产美韩系列久久99| 91精品国产高清一区二区三区| 秋霞电影一区二区| 欧美精品一区二区在线观看| 国产69精品一区二区亚洲孕妇| 国产精品久久久一本精品 | 国产精品久久免费看| 波多野结衣一区二区三区| 亚洲日本在线a| 欧美日韩久久不卡| 蜜臀久久99精品久久久久宅男| 精品99999| 91免费视频观看| 日本午夜一区二区| 国产女主播视频一区二区| 91免费看`日韩一区二区| 日本中文字幕一区| 国产日产精品1区| 色婷婷久久久综合中文字幕| 天天色 色综合| 国产午夜亚洲精品理论片色戒 | 激情小说亚洲一区| 国产精品午夜春色av| 欧美午夜视频网站| 国产剧情在线观看一区二区 | 欧美国产精品中文字幕| 欧美丝袜自拍制服另类| 狠狠色丁香婷综合久久| 亚洲一区二区在线免费看| 日韩你懂的电影在线观看| 91网站最新地址| 蜜臀久久99精品久久久久久9| 国产精品乱码一区二区三区软件 | 欧美午夜精品理论片a级按摩| 精品在线免费观看| 一区二区三区欧美亚洲| 久久久久综合网| 欧美精选午夜久久久乱码6080| 国产成人午夜视频| 看片的网站亚洲| 亚洲精品成人a在线观看| 久久精品夜夜夜夜久久| 欧美色图天堂网| a在线播放不卡| 韩国av一区二区三区在线观看| 亚洲一区二区四区蜜桃| 国产精品人成在线观看免费| 精品国内二区三区| 91精品欧美福利在线观看| 欧美亚洲国产一卡| 不卡在线视频中文字幕| 波多野结衣在线一区| 久久99久久久久久久久久久| 亚洲一区二区三区四区五区黄| 国产精品国产自产拍在线| 久久夜色精品国产欧美乱极品| 欧美日本韩国一区| 日本大香伊一区二区三区| 99精品欧美一区| 成人精品国产福利| 国产成人综合在线播放| 国产在线观看一区二区| 奇米精品一区二区三区在线观看一| 一区二区三区免费看视频| 亚洲欧美日韩国产另类专区| 国产精品久久久久影院| 日本一区二区综合亚洲| 国产日韩欧美一区二区三区综合| 欧美精品一区二区三区高清aⅴ| 欧美一区二区女人| 欧美一区二区视频免费观看| 欧美日韩三级在线| 欧美一区二区三区小说| 欧美mv日韩mv亚洲| 精品国产青草久久久久福利| 精品国产免费久久| 久久亚洲精品国产精品紫薇| 久久久精品国产免大香伊| 国产午夜精品久久| 国产精品高潮呻吟久久| 亚洲精选视频免费看| 亚洲精品乱码久久久久久| 亚洲综合一区二区精品导航| 亚洲一区二区av电影| 日本免费在线视频不卡一不卡二| 日本亚洲三级在线| 国产精品一卡二卡在线观看| 国产91精品入口| 色美美综合视频| 欧美一区三区四区| 国产三级精品三级| 亚洲黄色尤物视频| 日韩精品电影一区亚洲| 久久99国产精品免费网站| 成人深夜在线观看| 日本韩国欧美一区二区三区| 欧美一区二区在线视频| 日本一区二区视频在线观看| 亚洲天堂精品视频| 日韩电影一区二区三区四区| 国产老妇另类xxxxx| 日本韩国精品一区二区在线观看| 欧美一区二区三区视频在线观看 | 制服丝袜国产精品| 欧美精品一区二区三区蜜臀| 亚洲同性gay激情无套| 秋霞av亚洲一区二区三| av网站免费线看精品| 欧美精品一卡二卡| 国产精品私人影院| 日韩av一区二区在线影视| 国产999精品久久久久久| 欧美老年两性高潮| 国产目拍亚洲精品99久久精品| 婷婷国产在线综合| 懂色av一区二区三区蜜臀| 欧美一区午夜视频在线观看| 亚洲视频一区在线| 国模套图日韩精品一区二区| 在线观看日韩av先锋影音电影院| 久久综合成人精品亚洲另类欧美 | 日韩福利电影在线| 99精品视频一区| 久久综合九色综合97婷婷女人| 亚洲高清久久久| eeuss鲁片一区二区三区 | 成人午夜碰碰视频| 777a∨成人精品桃花网| 亚洲色图制服丝袜| 国产iv一区二区三区| 91精品国产麻豆| 亚洲高清三级视频| 91蜜桃免费观看视频| 久久久www免费人成精品| 秋霞午夜av一区二区三区| 欧美三级韩国三级日本一级| 国产精品妹子av| 国产剧情一区在线| 欧美精品一区二区不卡| 午夜精品久久久久久久| 色久综合一二码| 亚洲欧美福利一区二区| 成人动漫一区二区三区| 欧美国产成人在线| 国产成人啪免费观看软件 | 欧美一区二区三区系列电影| 亚洲综合一二三区| 91黄视频在线| 亚洲一区二区不卡免费| 一本一本久久a久久精品综合麻豆| 国产精品国产三级国产aⅴ中文| 国产成人精品免费在线| 久久综合九色综合久久久精品综合| 麻豆国产欧美日韩综合精品二区| 91精品欧美久久久久久动漫| 日韩精品一级二级| 欧美一级视频精品观看| 美腿丝袜亚洲综合| 欧美精品xxxxbbbb|