Add an E_RESOURCE_UNAVAILABLE in IPC
[platform/framework/native/appfw.git] / src / io / FIo_IpcClient.cpp
index 6e1061f..70a77be 100644 (file)
@@ -493,9 +493,15 @@ _IpcClient::SendAsync(IPC::Message* pMessage)
                written = write(fd, (char*) pData, remain);
                if (written < 0)
                {
-                       SysLogException(NID_IO, E_SYSTEM, "[E_SYSTEM] Failed to send a request: %d, %s", errno, strerror(errno));
-
                        ReleaseFd(fd);
+
+                       if (errno == EAGAIN)
+                       {
+                               SysLogException(NID_IO, E_RESOURCE_UNAVAILABLE, "[E_RESOURCE_UNAVAILABLE] The socket buffer is full.");
+                               return E_RESOURCE_UNAVAILABLE;
+                       }
+
+                       SysLogException(NID_IO, E_SYSTEM, "[E_SYSTEM] Failed to send a request: %d, %s", errno, strerror(errno));
                        return E_SYSTEM;
                }
 
@@ -543,9 +549,15 @@ _IpcClient::SendSync(IPC::Message* pMessage)
                written = write(fd, (char*) pData, remain);
                if (written < 0)
                {
-                       SysLogException(NID_IO, E_SYSTEM, "[E_SYSTEM] Failed to send a request: %d, %s", errno, strerror(errno));
-
                        ReleaseFd(fd);
+
+                       if (errno == EAGAIN)
+                       {
+                               SysLogException(NID_IO, E_RESOURCE_UNAVAILABLE, "[E_RESOURCE_UNAVAILABLE] The socket buffer is full.");
+                               return E_RESOURCE_UNAVAILABLE;
+                       }
+
+                       SysLogException(NID_IO, E_SYSTEM, "[E_SYSTEM] Failed to send a request: %d, %s", errno, strerror(errno));
                        return E_SYSTEM;
                }