rib: Update to properly handle optional ExpirationPeriod in RibRegister command

Change-Id: I9f18988f295a993e53dc03547f2f20967431dc10
Refs: #1772
diff --git a/rib/rib-manager.cpp b/rib/rib-manager.cpp
index c8d6111..d9c88e2 100644
--- a/rib/rib-manager.cpp
+++ b/rib/rib-manager.cpp
@@ -227,7 +227,8 @@
   faceEntry.cost = parameters.getCost();
   faceEntry.flags = parameters.getFlags();
 
-  if (parameters.getExpirationPeriod() != time::milliseconds::max())
+  if (parameters.hasExpirationPeriod() &&
+      parameters.getExpirationPeriod() != time::milliseconds::max())
     {
       faceEntry.expires = time::steady_clock::now() + parameters.getExpirationPeriod();
 
diff --git a/tools/nfdc.cpp b/tools/nfdc.cpp
index a0e1c56..8578e43 100644
--- a/tools/nfdc.cpp
+++ b/tools/nfdc.cpp
@@ -228,8 +228,10 @@
     .setName(m_name)
     .setCost(m_cost)
     .setFlags(m_flags)
-    .setOrigin(m_origin)
-    .setExpirationPeriod(m_expires);
+    .setOrigin(m_origin);
+
+  if (m_expires != DEFAULT_EXPIRATION_PERIOD)
+    parameters.setExpirationPeriod(m_expires);
 
   if (!isValidUri(m_commandLineArguments[1])) {
     try { //So the uri is not valid, may be a faceId is provided.
@@ -261,10 +263,12 @@
     .setName(m_name)
     .setCost(m_cost)
     .setFlags(m_flags)
-    .setExpirationPeriod(m_expires)
     .setOrigin(m_origin)
     .setFaceId(faceCreateResult.getFaceId());
 
+  if (m_expires != DEFAULT_EXPIRATION_PERIOD)
+    ribParameters.setExpirationPeriod(m_expires);
+
   m_controller.start<RibRegisterCommand>(ribParameters,
                                          bind(&Nfdc::onSuccess, this, _1,
                                                 "Successful in name registration"),