Add list function

Change-Id: I3923d4f12e2134250b5a61419d53582e5450bdde
diff --git a/tools/ndncert-ca-server.cpp b/tools/ndncert-ca-server.cpp
index 75dd400..7377fc1 100644
--- a/tools/ndncert-ca-server.cpp
+++ b/tools/ndncert-ca-server.cpp
@@ -29,6 +29,7 @@
 namespace ndn {
 namespace ndncert {
 
+
 int
 main(int argc, char* argv[])
 {
@@ -56,8 +57,23 @@
   Face face;
   security::v2::KeyChain keyChain;
   CaModule ca(face, keyChain, configFilePath);
-  face.processEvents();
 
+  ca.setRecommendCaHandler(Name("/ndn"),
+    [] (const std::string& input, const std::list<Name>& list) -> std::tuple<Name, std::string> {
+      Name recommendedCa;
+      std::string identity;
+      for (auto caName : list) {
+        std::string univName = readString(caName.get(-1));
+        if (input.find(univName) != std::string::npos) {
+          recommendedCa = caName;
+          identity = input.substr(0, input.find("@"));
+          break;
+        }
+      }
+      return std::make_tuple(recommendedCa, identity);
+    });
+
+  face.processEvents();
   return 0;
 }