RemoteMessagePort::SendMessage() returns E_SYSTEM when the socket receiver buffer...
[platform/framework/native/appfw.git] / src / io / FIo_MessagePortProxy.cpp
index 23ad6ea..1252927 100644 (file)
@@ -346,6 +346,11 @@ _MessagePortProxy::SendMessage(const AppId& remoteAppId, const String& remotePor
 
        if (ret < 0)
        {
+               if (ret == MESSAGEPORT_ERROR_RESOURCE_UNAVAILABLE)
+               {
+                       SysLogException(NID_IO, E_SYSTEM, "[E_SYSTEM] The socket receiver queue of remote port is temporarily full.");
+               }
+
                result r = ConvertToResult(ret);
 
                SysTryReturnResult(NID_IO, r != E_OBJ_NOT_FOUND, E_OBJ_NOT_FOUND, "The remote message port is not found.");
@@ -403,6 +408,11 @@ _MessagePortProxy::SendMessage(const String& localPort, bool isTrustedLocal, con
 
        if (ret < 0)
        {
+               if (ret == MESSAGEPORT_ERROR_RESOURCE_UNAVAILABLE)
+               {
+                       SysLogException(NID_IO, E_SYSTEM, "[E_SYSTEM] The socket receiver queue of remote port is temporarily full.");
+               }
+
                result r = ConvertToResult(ret);
 
                SysTryReturnResult(NID_IO, r != E_OBJ_NOT_FOUND, E_OBJ_NOT_FOUND, "The remote message port is not found.");
@@ -462,6 +472,9 @@ _MessagePortProxy::ConvertToResult(int error)
                case MESSAGEPORT_ERROR_MAX_EXCEEDED:
                        return E_MAX_EXCEEDED;
 
+               case MESSAGEPORT_ERROR_RESOURCE_UNAVAILABLE:
+                       // fall through
+
                default:
                        return E_SYSTEM;
        }