update profile fetching

Change-Id: I788ece8371f7e24c87918a57062673be1d866e5b
diff --git a/tools/ndncert-client.cpp b/tools/ndncert-client.cpp
index 7f0d005..cecb978 100644
--- a/tools/ndncert-client.cpp
+++ b/tools/ndncert-client.cpp
@@ -275,10 +275,19 @@
   }
   else {
     //redirects
-    auto redirectedCaName = redirects[index - names.size()];
-    std::cerr << "You selected redirects with certificate: " << redirectedCaName.getPrefix(-1).toUri() << std::endl;
-    face.expressInterest(*Requester::genCaProfileInterest(redirects[index - names.size()]),
-                         bind(&InfoCb, _2, redirectedCaName), bind(&onNackCb), bind(&timeoutCb));
+    auto redirectedCaFullName = redirects[index - names.size()];
+    std::cerr << "You selected redirects with certificate: " << redirectedCaFullName.getPrefix(-1).toUri() << std::endl;
+    face.expressInterest(
+        *Requester::genCaProfileDiscoveryInterest(redirectedCaFullName.getPrefix(-1)),
+        [&](const Interest&, const Data& data) {
+          auto fetchingInterest = Requester::genCaProfileInterestFromDiscoveryResponse(data);
+          face.expressInterest(*fetchingInterest,
+                               bind(&InfoCb, _2, redirectedCaFullName),
+                               bind(&onNackCb),
+                               bind(&timeoutCb));
+        },
+        bind(&onNackCb),
+        bind(&timeoutCb));
   }
 }
 
@@ -312,8 +321,17 @@
               << "Step " << nStep << ": ADD NEW CA\nPlease type in the CA's Name:" << std::endl;
     std::string expectedCAName;
     getline(std::cin, expectedCAName);
-    face.expressInterest(*Requester::genCaProfileInterest(Name(expectedCAName)),
-                         bind(&InfoCb, _2, Name()), bind(&onNackCb), bind(&timeoutCb));
+    face.expressInterest(
+        *Requester::genCaProfileDiscoveryInterest(Name(expectedCAName)),
+        [&](const Interest&, const Data& data) {
+          auto fetchingInterest = Requester::genCaProfileInterestFromDiscoveryResponse(data);
+          face.expressInterest(*fetchingInterest,
+                               bind(&InfoCb, _2, Name()),
+                               bind(&onNackCb),
+                               bind(&timeoutCb));
+        },
+        bind(&onNackCb),
+        bind(&timeoutCb));
   }
   else {
     size_t caIndex;