[Libreoffice-commits] online.git: loolwsd/LOOLBroker.cpp

Ashod Nakashian ashod.nakashian at collabora.co.uk
Sun Dec 27 20:06:52 PST 2015


 loolwsd/LOOLBroker.cpp |   17 ++++++++++++++---
 1 file changed, 14 insertions(+), 3 deletions(-)

New commits:
commit e8e8e6c844d03113aff344852a0d1c38976bdfdb
Author: Ashod Nakashian <ashod.nakashian at collabora.co.uk>
Date:   Sat Dec 26 11:27:44 2015 -0500

    loolwsd: detect broken pipe
    
    Change-Id: If1f40833e26c9ff281f33cc5d7c798fc0f9f3239
    Reviewed-on: https://gerrit.libreoffice.org/20973
    Reviewed-by: Ashod Nakashian <ashnakash at gmail.com>
    Tested-by: Ashod Nakashian <ashnakash at gmail.com>

diff --git a/loolwsd/LOOLBroker.cpp b/loolwsd/LOOLBroker.cpp
index 314d54c..bb3e3b7 100644
--- a/loolwsd/LOOLBroker.cpp
+++ b/loolwsd/LOOLBroker.cpp
@@ -451,18 +451,29 @@ public:
             {
                 (void)poll(&aPoll,1,-1);
 
-                if( (aPoll.revents & POLLIN) != 0 )
+                if (poll(&aPoll, 1, -1) < 0)
+                {
+                    Log::error("Failed to poll pipe [" + FIFO_FILE + "].");
+                    continue;
+                }
+                else
+                if (aPoll.revents & POLLIN)
                 {
                     nBytes = Util::readFIFO(readerBroker, aBuffer, sizeof(aBuffer));
                     if (nBytes < 0)
                     {
                         pStart = pEnd = nullptr;
-                        Log::error("Error reading message.");
+                        Log::error("Error reading message from pipe [" + FIFO_FILE + "].");
                         continue;
                     }
                     pStart = aBuffer;
                     pEnd   = aBuffer + nBytes;
-                    Log::trace("Broker readFIFO: [" + std::string(pStart, nBytes) + "]");
+                }
+                else
+                if (aPoll.revents & (POLLERR | POLLHUP))
+                {
+                    Log::error("Broken pipe [" + FIFO_FILE + "] with broker.");
+                    break;
                 }
             }
 


More information about the Libreoffice-commits mailing list