[Xorp-hackers] [PATCH 1/8] xorp: rtrmgr: Insert missing XrlAtoms for sending fake args
igorm at etf.rs
igorm at etf.rs
Tue Mar 20 10:02:40 PDT 2012
From: Igor Maravic <igorm at etf.rs>
Added missing XrlAtoms for sending fake args.
Signed-off-by: Igor Maravic <igorm at etf.rs>
---
xorp/rtrmgr/xorp_client.cc | 19 ++++++++++++++++++-
1 files changed, 18 insertions(+), 1 deletions(-)
diff --git a/xorp/rtrmgr/xorp_client.cc b/xorp/rtrmgr/xorp_client.cc
index a1df523..437fcb6 100644
--- a/xorp/rtrmgr/xorp_client.cc
+++ b/xorp/rtrmgr/xorp_client.cc
@@ -109,6 +109,7 @@ XorpClient::fake_return_args(const string& xrl_return_spec)
list<string>::const_iterator iter;
for (iter = args.begin(); iter != args.end(); ++iter) {
string::size_type eq = iter->find("=");
+ uint8_t data[] = {0}; //Needed for xrlatom_binary
XrlAtom atom;
debug_msg("ARG: %s\n", iter->c_str());
@@ -140,15 +141,31 @@ XorpClient::fake_return_args(const string& xrl_return_spec)
xargs.add(XrlAtom(atom.name().c_str(), string("")) );
break;
case xrlatom_ipv6:
+ xargs.add(XrlAtom(atom.name().c_str(), IPv6("::")) );
+ break;
case xrlatom_ipv6net:
+ xargs.add(XrlAtom(atom.name().c_str(), IPv6Net("::/0")) );
+ break;
case xrlatom_mac:
+ xargs.add(XrlAtom(atom.name().c_str(), Mac("00:00:00:00:00:00")) );
+ break;
case xrlatom_list:
+ xargs.add(XrlAtom(atom.name().c_str(), XrlAtomList()) );
+ break;
case xrlatom_boolean:
+ xargs.add(XrlAtom(atom.name().c_str(), false) );
+ break;
case xrlatom_binary:
+ xargs.add(XrlAtom(atom.name().c_str(), data, sizeof(data)) );
+ break;
case xrlatom_uint64:
+ xargs.add(XrlAtom(atom.name().c_str(), (uint64_t)0) );
+ break;
case xrlatom_int64:
+ xargs.add(XrlAtom(atom.name().c_str(), (int64_t)0) );
+ break;
case xrlatom_fp64:
- XLOG_UNFINISHED();
+ xargs.add(XrlAtom(atom.name().c_str(), (fp64_t)0) );
break;
}
}
--
1.7.5.4
More information about the Xorp-hackers
mailing list