gui: Add option to enable unsolicited data caching
Change-Id: I53ccf0d7d63fc9212154d00298dab54188959535
diff --git a/app/src/main/jni/Android.mk b/app/src/main/jni/Android.mk
index 248db74..6237abf 100644
--- a/app/src/main/jni/Android.mk
+++ b/app/src/main/jni/Android.mk
@@ -4,9 +4,9 @@
include $(CLEAR_VARS)
LOCAL_MODULE := nfd-wrapper
LOCAL_SRC_FILES := nfd-wrapper.cpp
-LOCAL_SHARED_LIBRARIES := nfd_shared ndn_cxx_shared boost_system_shared boost_thread_shared boost_log_shared
+LOCAL_SHARED_LIBRARIES := nfd_shared ndn_cxx_shared boost_system_shared boost_thread_shared boost_log_shared boost_stacktrace_basic_shared
LOCAL_LDLIBS := -llog -latomic
-LOCAL_CFLAGS := -DBOOST_LOG_DYN_LINK=1
+LOCAL_CFLAGS := -DBOOST_LOG_DYN_LINK -DBOOST_STACKTRACE_DYN_LINK
include $(BUILD_SHARED_LIBRARY)
$(call import-module,../packages/nfd/0.6.6)
diff --git a/app/src/main/jni/nfd-wrapper.cpp b/app/src/main/jni/nfd-wrapper.cpp
index d7ebed5..7b72430 100644
--- a/app/src/main/jni/nfd-wrapper.cpp
+++ b/app/src/main/jni/nfd-wrapper.cpp
@@ -19,19 +19,20 @@
#include "nfd-wrapper.hpp"
-#include <nfd.hpp>
-#include <rib/service.hpp>
+#include <daemon/common/config-file.hpp>
+#include <daemon/common/global.hpp>
+#include <daemon/common/logger.hpp>
+#include <daemon/common/privilege-helper.hpp>
+#include <daemon/nfd.hpp>
+#include <daemon/rib/service.hpp>
-#include <common/config-file.hpp>
-#include <common/global.hpp>
-#include <common/logger.hpp>
-#include <common/privilege-helper.hpp>
+#include <ndn-cxx/util/exception.hpp>
+#include <ndn-cxx/util/logging.hpp>
#include <boost/property_tree/info_parser.hpp>
-#include <boost/thread.hpp>
+
+#include <thread>
#include <mutex>
-#include <ndn-cxx/util/logging.hpp>
-#include <stdlib.h>
NFD_LOG_INIT(NfdWrapper);
@@ -108,6 +109,12 @@
std::istringstream input(initialConfig);
boost::property_tree::read_info(input, m_config);
+ // now, the start procedure can update config if needed
+ }
+
+ void
+ finishInit()
+ {
m_nfd.reset(new Nfd(m_config, m_keyChain));
m_ribService.reset(new rib::Service(m_config, m_keyChain));
@@ -144,6 +151,12 @@
}
}
+ nfd::ConfigSection&
+ getConfig()
+ {
+ return m_config;
+ }
+
private:
std::mutex m_pointerMutex;
boost::asio::io_service* m_io;
@@ -155,7 +168,7 @@
};
static unique_ptr<Runner> g_runner;
-static boost::thread g_thread;
+static std::thread g_thread;
static std::map<std::string, std::string> g_params;
} // namespace nfd
@@ -212,16 +225,25 @@
::setenv("HOME", nfd::g_params["homePath"].c_str(), true);
NFD_LOG_INFO("Use [" << nfd::g_params["homePath"] << "] as a security storage");
- nfd::g_thread = boost::thread([] {
+ nfd::g_thread = std::thread([] {
nfd::resetGlobalIoService();
NFD_LOG_INFO("Starting NFD...");
try {
nfd::g_runner.reset(new nfd::Runner());
+ // update config
+ for (const auto& pair : nfd::g_params) {
+ if (pair.first == "homePath")
+ continue;
+
+ nfd::g_runner->getConfig().put(pair.first, pair.second);
+ }
+ nfd::g_runner->finishInit();
+
nfd::g_runner->run();
}
catch (const std::exception& e) {
- NFD_LOG_FATAL(e.what());
+ NFD_LOG_FATAL(boost::diagnostic_information(e));
}
catch (const nfd::PrivilegeHelper::Error& e) {
NFD_LOG_FATAL("PrivilegeHelper: " << e.what());