Add user context parameter to legacy ipmi handler registration

This part was originally omitted, but needed by some external provider
libraries. This will more closely mimic the behavior of ipmid prior to
the architecture update.

Change-Id: I5db35222e268a117480285c700d88206d6505d92
Signed-off-by: Vernon Mauery <vernon.mauery@linux.intel.com>
diff --git a/include/ipmid/handler.hpp b/include/ipmid/handler.hpp
index 1643e58..17beb42 100644
--- a/include/ipmid/handler.hpp
+++ b/include/ipmid/handler.hpp
@@ -278,12 +278,14 @@
 class IpmiHandler<ipmid_callback_t> final : public HandlerBase
 {
   public:
-    explicit IpmiHandler(const ipmid_callback_t& handler) : handler_(handler)
+    explicit IpmiHandler(const ipmid_callback_t& handler, void* ctx = nullptr) :
+        handler_(handler), handlerCtx(ctx)
     {
     }
 
   private:
     ipmid_callback_t handler_;
+    void* handlerCtx;
 
     /** @brief call the registered handler with the request
      *
@@ -315,7 +317,7 @@
         {
             ccRet = handler_(request->ctx->netFn, request->ctx->cmd,
                              request->payload.data(), response->payload.data(),
-                             &len, nullptr);
+                             &len, handlerCtx);
         }
         catch (const std::exception& e)
         {
@@ -453,9 +455,10 @@
  *
  * @return A shared_ptr to the created handler object
  */
-inline auto makeLegacyHandler(const ipmid_callback_t& handler)
+inline auto makeLegacyHandler(const ipmid_callback_t& handler,
+                              void* ctx = nullptr)
 {
-    HandlerBase::ptr ptr(new IpmiHandler<ipmid_callback_t>(handler));
+    HandlerBase::ptr ptr(new IpmiHandler<ipmid_callback_t>(handler, ctx));
     return ptr;
 }