⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ripng_base.cc

📁 xorp源码hg
💻 CC
📖 第 1 页 / 共 5 页
字号:
        }    } catch (const XrlArgs::XrlAtomNotFound& e) {	XLOG_ERROR("Argument not found");	return XrlCmdError::BAD_ARGS();    }    /* Marshall return values */    try {	pxa_outputs->add("ifnames", ifnames);	pxa_outputs->add("vifnames", vifnames);	pxa_outputs->add("addrs", addrs);    } catch (const XrlArgs::XrlAtomFound& ) {	XLOG_FATAL("Duplicate atom name"); /* XXX Should never happen */    }    return XrlCmdError::OKAY();}const XrlCmdErrorXrlRipngTargetBase::handle_ripng_0_1_get_counters(const XrlArgs& xa_inputs, XrlArgs* pxa_outputs){    if (xa_inputs.size() != 3) {	XLOG_ERROR("Wrong number of arguments (%u != %u) handling %s",            XORP_UINT_CAST(3), XORP_UINT_CAST(xa_inputs.size()), "ripng/0.1/get_counters");	return XrlCmdError::BAD_ARGS();    }    if (pxa_outputs == 0) {	XLOG_FATAL("Return list empty");	return XrlCmdError::BAD_ARGS();    }    /* Return value declarations */    XrlAtomList counter_descriptions;    XrlAtomList counter_values;    try {	XrlCmdError e = ripng_0_1_get_counters(	    xa_inputs.get_string("ifname"),	    xa_inputs.get_string("vifname"),	    xa_inputs.get_ipv6("addr"),	    counter_descriptions,	    counter_values);	if (e != XrlCmdError::OKAY()) {	    XLOG_WARNING("Handling method for %s failed: %s",            		 "ripng/0.1/get_counters", e.str().c_str());	    return e;        }    } catch (const XrlArgs::XrlAtomNotFound& e) {	XLOG_ERROR("Argument not found");	return XrlCmdError::BAD_ARGS();    }    /* Marshall return values */    try {	pxa_outputs->add("counter_descriptions", counter_descriptions);	pxa_outputs->add("counter_values", counter_values);    } catch (const XrlArgs::XrlAtomFound& ) {	XLOG_FATAL("Duplicate atom name"); /* XXX Should never happen */    }    return XrlCmdError::OKAY();}const XrlCmdErrorXrlRipngTargetBase::handle_ripng_0_1_get_peers(const XrlArgs& xa_inputs, XrlArgs* pxa_outputs){    if (xa_inputs.size() != 3) {	XLOG_ERROR("Wrong number of arguments (%u != %u) handling %s",            XORP_UINT_CAST(3), XORP_UINT_CAST(xa_inputs.size()), "ripng/0.1/get_peers");	return XrlCmdError::BAD_ARGS();    }    if (pxa_outputs == 0) {	XLOG_FATAL("Return list empty");	return XrlCmdError::BAD_ARGS();    }    /* Return value declarations */    XrlAtomList peers;    try {	XrlCmdError e = ripng_0_1_get_peers(	    xa_inputs.get_string("ifname"),	    xa_inputs.get_string("vifname"),	    xa_inputs.get_ipv6("addr"),	    peers);	if (e != XrlCmdError::OKAY()) {	    XLOG_WARNING("Handling method for %s failed: %s",            		 "ripng/0.1/get_peers", e.str().c_str());	    return e;        }    } catch (const XrlArgs::XrlAtomNotFound& e) {	XLOG_ERROR("Argument not found");	return XrlCmdError::BAD_ARGS();    }    /* Marshall return values */    try {	pxa_outputs->add("peers", peers);    } catch (const XrlArgs::XrlAtomFound& ) {	XLOG_FATAL("Duplicate atom name"); /* XXX Should never happen */    }    return XrlCmdError::OKAY();}const XrlCmdErrorXrlRipngTargetBase::handle_ripng_0_1_get_all_peers(const XrlArgs& xa_inputs, XrlArgs* pxa_outputs){    if (xa_inputs.size() != 0) {	XLOG_ERROR("Wrong number of arguments (%u != %u) handling %s",            XORP_UINT_CAST(0), XORP_UINT_CAST(xa_inputs.size()), "ripng/0.1/get_all_peers");	return XrlCmdError::BAD_ARGS();    }    if (pxa_outputs == 0) {	XLOG_FATAL("Return list empty");	return XrlCmdError::BAD_ARGS();    }    /* Return value declarations */    XrlAtomList peers;    XrlAtomList ifnames;    XrlAtomList vifnames;    XrlAtomList addrs;    try {	XrlCmdError e = ripng_0_1_get_all_peers(	    peers,	    ifnames,	    vifnames,	    addrs);	if (e != XrlCmdError::OKAY()) {	    XLOG_WARNING("Handling method for %s failed: %s",            		 "ripng/0.1/get_all_peers", e.str().c_str());	    return e;        }    } catch (const XrlArgs::XrlAtomNotFound& e) {	XLOG_ERROR("Argument not found");	return XrlCmdError::BAD_ARGS();    }    /* Marshall return values */    try {	pxa_outputs->add("peers", peers);	pxa_outputs->add("ifnames", ifnames);	pxa_outputs->add("vifnames", vifnames);	pxa_outputs->add("addrs", addrs);    } catch (const XrlArgs::XrlAtomFound& ) {	XLOG_FATAL("Duplicate atom name"); /* XXX Should never happen */    }    return XrlCmdError::OKAY();}const XrlCmdErrorXrlRipngTargetBase::handle_ripng_0_1_get_peer_counters(const XrlArgs& xa_inputs, XrlArgs* pxa_outputs){    if (xa_inputs.size() != 4) {	XLOG_ERROR("Wrong number of arguments (%u != %u) handling %s",            XORP_UINT_CAST(4), XORP_UINT_CAST(xa_inputs.size()), "ripng/0.1/get_peer_counters");	return XrlCmdError::BAD_ARGS();    }    if (pxa_outputs == 0) {	XLOG_FATAL("Return list empty");	return XrlCmdError::BAD_ARGS();    }    /* Return value declarations */    XrlAtomList counter_descriptions;    XrlAtomList counter_values;    uint32_t peer_last_active;    try {	XrlCmdError e = ripng_0_1_get_peer_counters(	    xa_inputs.get_string("ifname"),	    xa_inputs.get_string("vifname"),	    xa_inputs.get_ipv6("addr"),	    xa_inputs.get_ipv6("peer"),	    counter_descriptions,	    counter_values,	    peer_last_active);	if (e != XrlCmdError::OKAY()) {	    XLOG_WARNING("Handling method for %s failed: %s",            		 "ripng/0.1/get_peer_counters", e.str().c_str());	    return e;        }    } catch (const XrlArgs::XrlAtomNotFound& e) {	XLOG_ERROR("Argument not found");	return XrlCmdError::BAD_ARGS();    }    /* Marshall return values */    try {	pxa_outputs->add("counter_descriptions", counter_descriptions);	pxa_outputs->add("counter_values", counter_values);	pxa_outputs->add("peer_last_active", peer_last_active);    } catch (const XrlArgs::XrlAtomFound& ) {	XLOG_FATAL("Duplicate atom name"); /* XXX Should never happen */    }    return XrlCmdError::OKAY();}const XrlCmdErrorXrlRipngTargetBase::handle_ripng_0_1_redist_protocol_routes(const XrlArgs& xa_inputs, XrlArgs* /* pxa_outputs */){    if (xa_inputs.size() != 3) {	XLOG_ERROR("Wrong number of arguments (%u != %u) handling %s",            XORP_UINT_CAST(3), XORP_UINT_CAST(xa_inputs.size()), "ripng/0.1/redist_protocol_routes");	return XrlCmdError::BAD_ARGS();    }    /* Return value declarations */    try {	XrlCmdError e = ripng_0_1_redist_protocol_routes(	    xa_inputs.get_string("protocol_name"),	    xa_inputs.get_uint32("cost"),	    xa_inputs.get_uint32("tag"));	if (e != XrlCmdError::OKAY()) {	    XLOG_WARNING("Handling method for %s failed: %s",            		 "ripng/0.1/redist_protocol_routes", e.str().c_str());	    return e;        }    } catch (const XrlArgs::XrlAtomNotFound& e) {	XLOG_ERROR("Argument not found");	return XrlCmdError::BAD_ARGS();    }    return XrlCmdError::OKAY();}const XrlCmdErrorXrlRipngTargetBase::handle_ripng_0_1_no_redist_protocol_routes(const XrlArgs& xa_inputs, XrlArgs* /* pxa_outputs */){    if (xa_inputs.size() != 1) {	XLOG_ERROR("Wrong number of arguments (%u != %u) handling %s",            XORP_UINT_CAST(1), XORP_UINT_CAST(xa_inputs.size()), "ripng/0.1/no_redist_protocol_routes");	return XrlCmdError::BAD_ARGS();    }    /* Return value declarations */    try {	XrlCmdError e = ripng_0_1_no_redist_protocol_routes(	    xa_inputs.get_string("protocol_name"));	if (e != XrlCmdError::OKAY()) {	    XLOG_WARNING("Handling method for %s failed: %s",            		 "ripng/0.1/no_redist_protocol_routes", e.str().c_str());	    return e;        }    } catch (const XrlArgs::XrlAtomNotFound& e) {	XLOG_ERROR("Argument not found");	return XrlCmdError::BAD_ARGS();    }    return XrlCmdError::OKAY();}const XrlCmdErrorXrlRipngTargetBase::handle_socket6_user_0_1_recv_event(const XrlArgs& xa_inputs, XrlArgs* /* pxa_outputs */){    if (xa_inputs.size() != 4) {	XLOG_ERROR("Wrong number of arguments (%u != %u) handling %s",            XORP_UINT_CAST(4), XORP_UINT_CAST(xa_inputs.size()), "socket6_user/0.1/recv_event");	return XrlCmdError::BAD_ARGS();    }    /* Return value declarations */    try {	XrlCmdError e = socket6_user_0_1_recv_event(	    xa_inputs.get_string("sockid"),	    xa_inputs.get_ipv6("src_host"),	    xa_inputs.get_uint32("src_port"),	    xa_inputs.get_binary("data"));	if (e != XrlCmdError::OKAY()) {	    XLOG_WARNING("Handling method for %s failed: %s",            		 "socket6_user/0.1/recv_event", e.str().c_str());	    return e;        }    } catch (const XrlArgs::XrlAtomNotFound& e) {	XLOG_ERROR("Argument not found");	return XrlCmdError::BAD_ARGS();    }    return XrlCmdError::OKAY();}const XrlCmdErrorXrlRipngTargetBase::handle_socket6_user_0_1_connect_event(const XrlArgs& xa_inputs, XrlArgs* pxa_outputs){    if (xa_inputs.size() != 4) {	XLOG_ERROR("Wrong number of arguments (%u != %u) handling %s",            XORP_UINT_CAST(4), XORP_UINT_CAST(xa_inputs.size()), "socket6_user/0.1/connect_event");	return XrlCmdError::BAD_ARGS();    }    if (pxa_outputs == 0) {	XLOG_FATAL("Return list empty");	return XrlCmdError::BAD_ARGS();    }    /* Return value declarations */    bool accept;    try {	XrlCmdError e = socket6_user_0_1_connect_event(	    xa_inputs.get_string("sockid"),	    xa_inputs.get_ipv6("src_host"),	    xa_inputs.get_uint32("src_port"),	    xa_inputs.get_string("new_sockid"),	    accept);	if (e != XrlCmdError::OKAY()) {	    XLOG_WARNING("Handling method for %s failed: %s",            		 "socket6_user/0.1/connect_event", e.str().c_str());	    return e;        }    } catch (const XrlArgs::XrlAtomNotFound& e) {	XLOG_ERROR("Argument not found");	return XrlCmdError::BAD_ARGS();    }    /* Marshall return values */    try {	pxa_outputs->add("accept", accept);    } catch (const XrlArgs::XrlAtomFound& ) {	XLOG_FATAL("Duplicate atom name"); /* XXX Should never happen */    }    return XrlCmdError::OKAY();}const XrlCmdErrorXrlRipngTargetBase::handle_socket6_user_0_1_error_event(const XrlArgs& xa_inputs, XrlArgs* /* pxa_outputs */){    if (xa_inputs.size() != 3) {	XLOG_ERROR("Wrong number of arguments (%u != %u) handling %s",            XORP_UINT_CAST(3), XORP_UINT_CAST(xa_inputs.size()), "socket6_user/0.1/error_event");	return XrlCmdError::BAD_ARGS();    }    /* Return value declarations */    try {	XrlCmdError e = socket6_user_0_1_error_event(	    xa_inputs.get_string("sockid"),	    xa_inputs.get_string("error"),	    xa_inputs.get_bool("fatal"));	if (e != XrlCmdError::OKAY()) {	    XLOG_WARNING("Handling method for %s failed: %s",            		 "socket6_user/0.1/error_event", e.str().c_str());	    return e;        }    } catch (const XrlArgs::XrlAtomNotFound& e) {	XLOG_ERROR("Argument not found");	return XrlCmdError::BAD_ARGS();    }    return XrlCmdError::OKAY();}const XrlCmdErrorXrlRipngTargetBase::handle_socket6_user_0_1_close_event(const XrlArgs& xa_inputs, XrlArgs* /* pxa_outputs */){    if (xa_inputs.size() != 2) {	XLOG_ERROR("Wrong number of arguments (%u != %u) handling %s",            XORP_UINT_CAST(2), XORP_UINT_CAST(xa_inputs.size()), "socket6_user/0.1/close_event");	return XrlCmdError::BAD_ARGS();    }    /* Return value declarations */    try {	XrlCmdError e = socket6_user_0_1_close_event(	    xa_inputs.get_string("sockid"),	    xa_inputs.get_string("reason"));	if (e != XrlCmdError::OKAY()) {	    XLOG_WARNING("Handling method for %s failed: %s",            		 "socket6_user/0.1/close_event", e.str().c_str());	    return e;        }    } catch (const XrlArgs::XrlAtomNotFound& e) {	XLOG_ERROR("Argument not found");	return XrlCmdError::BAD_ARGS();    }    return XrlCmdError::OKAY();}voidXrlRipngTargetBase::add_handlers(){	if (_cmds->add_handler("common/0.1/get_target_name",	    callback(this, &XrlRipngTargetBase::handle_common_0_1_get_target_name)) == false) {	    XLOG_ERROR("Failed to xrl handler finder://%s/%s", "ripng", "common/0.1/get_target_name");	}	if (_cmds->add_handler("common/0.1/get_version",	    callback(this, &XrlRipngTargetBase::handle_common_0_1_get_version)) == false) {	    XLOG_ERROR("Failed to xrl handler finder://%s/%s", "ripng", "common/0.1/get_version");	}	if (_cmds->add_handler("common/0.1/get_status",	    callback(this, &XrlRipngTargetBase::handle_common_0_1_get_status)) == false) {	    XLOG_ERROR("Failed to xrl handler finder://%s/%s", "ripng", "common/0.1/get_status");	}	if (_cmds->add_handler("common/0.1/shutdown",	    callback(this, &XrlRipngTargetBase::handle_common_0_1_shutdown)) == false) {	    XLOG_ERROR("Failed to xrl handler finder://%s/%s", "ripng", "common/0.1/shutdown");	}	if (_cmds->add_handler("finder_event_observer/0.1/xrl_target_birth",	    callback(this, &XrlRipngTargetBase::handle_finder_event_observer_0_1_xrl_target_birth)) == false) {	    XLOG_ERROR("Failed to xrl handler finder://%s/%s", "ripng", "finder_event_observer/0.1/xrl_target_birth");	}	if (_cmds->add_handler("finder_event_observer/0.1/xrl_target_death",	    callback(this, &XrlRipngTargetBase::handle_finder_event_observer_0_1_xrl_target_death)) == false) {	    XLOG_ERROR("Failed to xrl handler finder://%s/%s", "ripng", "finder_event_observer/0.1/xrl_target_death");	}	if (_cmds->add_handler("policy_backend/0.1/configure",	    callback(this, &XrlRipngTargetBase::handle_policy_backend_0_1_configure)) == false) {	    XLOG_ERROR("Failed to xrl handler finder://%s/%s", "ripng", "policy_backend/0.1/configure");	}	if (_cmds->add_handler("policy_backend/0.1/reset",	    callback(this, &XrlRipngTargetBase::handle_policy_backend_0_1_reset)) == false) {	    XLOG_ERROR("Failed to xrl handler finder://%s/%s", "ripng", "policy_backend/0.1/reset");	}	if (_cmds->add_handler("policy_backend/0.1/push_routes",	    callback(this, &XrlRipngTargetBase::handle_policy_backend_0_1_push_routes)) == false) {	    XLOG_ERROR("Failed to xrl handler finder://%s/%s", "ripng", "policy_ba

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -