Ver Fonte

IPCCompiler: Make the connection shut down if the peer disconnected

If we know that the peer disconnected while receiving a message in the
generated code, let's shutdown the connection from here instead of
forcing each client to do so.
Lucas CHOLLET há 1 ano atrás
pai
commit
4e9e340d21
1 ficheiros alterados com 4 adições e 2 exclusões
  1. 4 2
      Meta/Lagom/Tools/CodeGenerators/IPCCompiler/main.cpp

+ 4 - 2
Meta/Lagom/Tools/CodeGenerators/IPCCompiler/main.cpp

@@ -514,8 +514,10 @@ void do_message_for_proxy(SourceGenerator message_generator, Endpoint const& end
             message_generator.append(";");
             message_generator.append(";");
         } else if (is_try) {
         } else if (is_try) {
             message_generator.append(R"~~~();
             message_generator.append(R"~~~();
-        if (!result)
-            return IPC::ErrorCode::PeerDisconnected;)~~~");
+        if (!result) {
+            m_connection.shutdown();
+            return IPC::ErrorCode::PeerDisconnected;
+        })~~~");
             if (inner_return_type != "void") {
             if (inner_return_type != "void") {
                 message_generator.appendln(R"~~~(
                 message_generator.appendln(R"~~~(
         return move(*result);)~~~");
         return move(*result);)~~~");