libpldmresponder: Use async call in storePel

The storePel function used call_noreply, a synchronous D-Bus method
with timeout of 5 secs, which caused it to timeout in some scenarios.

To mitigate this issue, it has been replaced with call_async method.
Additionally, PLDM_SUCCESS is being returned now regardless of
the method call outcome. In case of any error during the async
method call, it will be logged by the callback function.

Change-Id: Ifbb80585ace516c8d4bf484c08356c3734d351fc
Signed-off-by: Jino Abraham <jinoabraham26@gmail.com>
diff --git a/oem/ibm/libpldmresponder/file_io_type_pel.cpp b/oem/ibm/libpldmresponder/file_io_type_pel.cpp
index 6c480ae..ec631fa 100644
--- a/oem/ibm/libpldmresponder/file_io_type_pel.cpp
+++ b/oem/ibm/libpldmresponder/file_io_type_pel.cpp
@@ -321,7 +321,17 @@
                                           logInterface, "Create");
         method.append("xyz.openbmc_project.Host.Error.Event", severity,
                       addlData);
-        bus.call_noreply(method, dbusTimeout);
+
+        auto callback = [pelFileName](sdbusplus::message_t&& msg) {
+            if (msg.is_method_error())
+            {
+                error(
+                    "Async DBus call failed for PEL file name - '{FILE}', ERROR - {ERROR}",
+                    "FILE", pelFileName, "ERROR", msg.get_error()->message);
+            }
+        };
+
+        [[maybe_unused]] auto slot = method.call_async(callback);
     }
     catch (const std::exception& e)
     {