From cb33bec6436074d611d398a93e0b78437142cc52 Mon Sep 17 00:00:00 2001 From: Hyunbin Lee Date: Tue, 19 Nov 2013 15:07:51 +0900 Subject: [PATCH 1/1] RemoteMessagePort::SendMessage() returns E_SYSTEM when the socket receiver buffer of remote port is temporarily full. Change-Id: I077e532b391536ec4cbf5ce603b37165ed236e5d Signed-off-by: Hyunbin Lee --- src/io/FIo_MessagePortProxy.cpp | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/io/FIo_MessagePortProxy.cpp b/src/io/FIo_MessagePortProxy.cpp index 23ad6ea..1252927 100644 --- a/src/io/FIo_MessagePortProxy.cpp +++ b/src/io/FIo_MessagePortProxy.cpp @@ -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; } -- 2.7.4