Fix for Callback privilege

Issue: Not returning proper error when user privilege is Callback

Returning proper error codes.

Tested:
Command:  ipmitool raw 0x06 0x40 0x3 0x42 0x41   //SetChannelAccess
Response: Unable to send RAW command (channel=0x0 netfn=0x6 lun=0x0
          cmd=0x40 rsp=0xcc): Invalid data field in request
Command:  ipmitool raw 0x06 0x40 0x3 0x42 0xc2 //SetChannelAccess
Response: Unable to send RAW command (channel=0x0 netfn=0x6 lun=0x0
          cmd=0x40 rsp=0x83): Unknown (0x83)
Command:  ipmitool user priv 2 0x01 1
Response: IPMI command failed: Invalid data field in request
          Set Privilege Level command failed (user 2)
Command:  ipmitool raw 0x06 0x38 1 1  //Get Channel Auth Capabilities
Response: Unable to send RAW command (channel=0x0 netfn=0x6 lun=0x0
          cmd=0x38 rsp=0xcc): Invalid data field in request
Command:  ipmitool raw 0x06 0x40 0x1 0x42 0x81  //SetChannelAccess
Response: Unable to send RAW command (channel=0x0 netfn=0x6 lun=0x0
          cmd=0x40 rsp=0xcc): Invalid data field in request
Command:  ipmitool raw 0x06 0x43 0x1 2 1 0  //Set User Access Command
Response: Unable to send RAW command (channel=0x0 netfn=0x6 lun=0x0
          cmd=0x43 rsp=0xcc): Invalid data field in request
Command:  ipmitool raw 0x06 0x43 0x2 1 2 0 //Set User Access Command
Response: Unable to send RAW command (channel=0x0 netfn=0x6 lun=0x0
          cmd=0x43 rsp=0xff): Unspecified error
Command:  ipmitool raw 0x06 0x42 0x02  //Get Channel Info Command
Response: Unable to send RAW command (channel=0x0 netfn=0x6 lun=0x0
          cmd=0x42 rsp=0x82): Unknown (0x82)
Command:  ipmitool raw 0x06 0x4E 0x02  //Get Channel Payload Support
Response: Unable to send RAW command (channel=0x0 netfn=0x6 lun=0x0
          cmd=0x4e rsp=0xff): Unspecified error
Command:  ipmitool raw 0x06 0x4E 0x0F  //Get Channel Payload Support
Response: Unable to send RAW command (channel=0x0 netfn=0x6 lun=0x0
          cmd=0x4e rsp=0xcc): Invalid data field in request
Command:  ipmitool raw 0x06 0x4F 0x02 0x00 //Get Channel Payload Version
Response: Unable to send RAW command (channel=0x0 netfn=0x6 lun=0x0
          cmd=0x4f rsp=0xcc): Invalid data field in request
Command:  ipmitool raw 0x06 0x4C 0x02 0x01 0x02 0x00 0x00 0x00
                                    //Set User Payload Access
Response: Unable to send RAW command (channel=0x0 netfn=0x6 lun=0x0
          cmd=0x4c rsp=0xcc): Invalid data field in request
Command:  ipmitool raw 0x06 0x44 0x02 0x02  //Get User Access Command
Response: Unable to send RAW command (channel=0x0 netfn=0x6 lun=0x0
          cmd=0x44 rsp=0xcc): Invalid data field in request
Command:  ipmitool raw 0x06 0x44 0x01 0x11  //Get User Access Command
Response: Unable to send RAW command (channel=0x0 netfn=0x6 lun=0x0
          cmd=0x44 rsp=0xc9): Parameter out of range
Command:  ipmitool raw 0x06 0x4D 0x02 0x02  //Get User Payload Access
Response: Unable to send RAW command (channel=0x0 netfn=0x6 lun=0x0
          cmd=0x4d rsp=0xcc): Invalid data field in request
Command:  ipmitool raw 0x06 0x40 0x3 0x44 0x43
                      // set channel access for Non-volatile priv limit
Response: Unable to send RAW command (channel=0x0 netfn=0x6 lun=0x0
          cmd=0x40 rsp=0x83): Unknown (0x83)
Command:  ipmitool raw 0x06 0x40 0x1 0x85 0x82
                      // set channel access for volatile priv limit
Response: Unable to send RAW command (channel=0x0 netfn=0x6 lun=0x0
          cmd=0x40 rsp=0x83): Unknown (0x83)

Signed-off-by: jayaprakash Mutyala <mutyalax.jayaprakash@intel.com>
Change-Id: I4ff6fb5ae9a604e6b38fb92c249416605ec27cb5
diff --git a/user_channel/channel_mgmt.cpp b/user_channel/channel_mgmt.cpp
index 70e2c7d..b8e0b85 100644
--- a/user_channel/channel_mgmt.cpp
+++ b/user_channel/channel_mgmt.cpp
@@ -462,12 +462,15 @@
         return ccActionNotSupportedForChannel;
     }
 
-    if (((setFlag & setAccessMode) &&
-         (!isValidAccessMode(chAccessData.accessMode))) ||
-        ((setFlag & setPrivLimit) &&
-         (!isValidPrivLimit(chAccessData.privLimit))))
+    if ((setFlag & setAccessMode) &&
+        (!isValidAccessMode(chAccessData.accessMode)))
     {
-        log<level::DEBUG>("Invalid access mode / privilege limit specified");
+        log<level::DEBUG>("Invalid access mode specified");
+        return ccAccessModeNotSupportedForChannel;
+    }
+    if ((setFlag & setPrivLimit) && (!isValidPrivLimit(chAccessData.privLimit)))
+    {
+        log<level::DEBUG>("Invalid privilege limit specified");
         return ccInvalidFieldRequest;
     }
 
@@ -558,12 +561,15 @@
         return ccActionNotSupportedForChannel;
     }
 
-    if (((setFlag & setAccessMode) &&
-         (!isValidAccessMode(chAccessData.accessMode))) ||
-        ((setFlag & setPrivLimit) &&
-         (!isValidPrivLimit(chAccessData.privLimit))))
+    if ((setFlag & setAccessMode) &&
+        (!isValidAccessMode(chAccessData.accessMode)))
     {
-        log<level::DEBUG>("Invalid access mode / privilege limit specified");
+        log<level::DEBUG>("Invalid access mode specified");
+        return ccAccessModeNotSupportedForChannel;
+    }
+    if ((setFlag & setPrivLimit) && (!isValidPrivLimit(chAccessData.privLimit)))
+    {
+        log<level::DEBUG>("Invalid privilege limit specified");
         return ccInvalidFieldRequest;
     }