summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--hal/inc/PrefixParser.h1
-rw-r--r--hal/src/HAL.cpp8
-rw-r--r--hal/src/PrefixParser.cpp6
3 files changed, 11 insertions, 4 deletions
diff --git a/hal/inc/PrefixParser.h b/hal/inc/PrefixParser.h
index 4682aa5..99afbe0 100644
--- a/hal/inc/PrefixParser.h
+++ b/hal/inc/PrefixParser.h
@@ -57,6 +57,7 @@ public:
int size();
bool allAreFullyQualified();
Prefix getFirstPrefix();
+ Prefix getFirstPrefix(IP_FAM);
string getLastErrAsStr();
private:
bool add(string /* in */, IP_FAM /* famHint */);
diff --git a/hal/src/HAL.cpp b/hal/src/HAL.cpp
index c4d9722..d1d10fd 100644
--- a/hal/src/HAL.cpp
+++ b/hal/src/HAL.cpp
@@ -521,8 +521,8 @@ Return<void> HAL::setUpstreamParameters
} else if (iface.size()>= 1) {
RET ipaReturn = mIPA->setUpstream(
iface.c_str(),
- v4GwParser.getFirstPrefix(),
- v6GwParser.getFirstPrefix());
+ v4GwParser.getFirstPrefix(IP_FAM::V4),
+ v6GwParser.getFirstPrefix(IP_FAM::V6));
BoolResult res = ipaResultToBoolResult(ipaReturn);
hidl_cb(res.success, res.errMsg);
fl.setResult(res.success, res.errMsg);
@@ -530,8 +530,8 @@ Return<void> HAL::setUpstreamParameters
/* send NULL iface string when upstream down */
RET ipaReturn = mIPA->setUpstream(
NULL,
- v4GwParser.getFirstPrefix(),
- v6GwParser.getFirstPrefix());
+ v4GwParser.getFirstPrefix(IP_FAM::V4),
+ v6GwParser.getFirstPrefix(IP_FAM::V6));
BoolResult res = ipaResultToBoolResult(ipaReturn);
hidl_cb(res.success, res.errMsg);
fl.setResult(res.success, res.errMsg);
diff --git a/hal/src/PrefixParser.cpp b/hal/src/PrefixParser.cpp
index d38bec0..ff55147 100644
--- a/hal/src/PrefixParser.cpp
+++ b/hal/src/PrefixParser.cpp
@@ -111,6 +111,12 @@ Prefix PrefixParser::getFirstPrefix() {
return makeBlankPrefix(IP_FAM::INVALID);
} /* getFirstPrefix */
+Prefix PrefixParser::getFirstPrefix(IP_FAM famHint) {
+ if (size() >= 1)
+ return mPrefixes[0];
+ return makeBlankPrefix(famHint);
+} /* getFirstPrefix */
+
string PrefixParser::getLastErrAsStr() {
return mLastErr;
} /* getLastErrAsStr */