diff --git a/tools/ndncert-ca-server.cpp b/tools/ndncert-ca-server.cpp
index 1f91bc8..7c055d5 100644
--- a/tools/ndncert-ca-server.cpp
+++ b/tools/ndncert-ca-server.cpp
@@ -124,15 +124,15 @@
   if (wantRepoOut) {
     writeDataToRepo(profileData);
     ca.setStatusUpdateCallback([&](const RequestState& request) {
-      if (request.m_status == Status::SUCCESS && request.m_requestType == RequestType::NEW) {
-        writeDataToRepo(request.m_cert);
+      if (request.status == Status::SUCCESS && request.requestType == RequestType::NEW) {
+        writeDataToRepo(request.cert);
       }
     });
   }
   else {
     ca.setStatusUpdateCallback([&](const RequestState& request) {
-      if (request.m_status == Status::SUCCESS && request.m_requestType == RequestType::NEW) {
-        cachedCertificates[request.m_cert.getName()] = request.m_cert;
+      if (request.status == Status::SUCCESS && request.requestType == RequestType::NEW) {
+        cachedCertificates[request.cert.getName()] = request.cert;
       }
     });
     cachedCertificates[profileData.getName()] = profileData;
