RemoteMessagePort::SendMessage() returns E_SYSTEM when the socket receiver buffer... 75/14075/1
authorHyunbin Lee <hyunbin.lee@samsung.com>
Tue, 19 Nov 2013 06:07:51 +0000 (15:07 +0900)
committerHyunbin Lee <hyunbin.lee@samsung.com>
Mon, 23 Dec 2013 06:32:25 +0000 (15:32 +0900)
Change-Id: I077e532b391536ec4cbf5ce603b37165ed236e5d
Signed-off-by: Hyunbin Lee <hyunbin.lee@samsung.com>
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;
        }