Fix identityref passing through sysrepo and NETCONF

Change-Id: Ie0f712befe56c2fcea52401a12c33812b7fb9066
diff --git a/src/sysrepo_access.cpp b/src/sysrepo_access.cpp
index 7115ad7..bc7431b 100644
--- a/src/sysrepo_access.cpp
+++ b/src/sysrepo_access.cpp
@@ -40,6 +40,11 @@
         return std::string(value->data()->get_string());
     case SR_ENUM_T:
         return enum_{std::string(value->data()->get_enum())};
+    case SR_IDENTITYREF_T:
+    {
+        auto pair = splitModuleNode(value->data()->get_identityref());
+        return identityRef_{*pair.first, pair.second};
+    }
     case SR_DECIMAL64_T:
         return value->data()->get_decimal64();
     case SR_CONTAINER_T:
@@ -66,7 +71,7 @@
 
     sysrepo::S_Val operator()(const identityRef_& value) const
     {
-        auto res = value.m_prefix.value().m_name + ":" + value.m_value;
+        auto res = value.m_prefix ? (value.m_prefix.value().m_name + ":" + value.m_value) : value.m_value;
         return std::make_shared<sysrepo::Val>(res.c_str(), SR_IDENTITYREF_T);
     }