]> git.sesse.net Git - casparcg/commitdiff
git-svn-id: https://casparcg.svn.sourceforge.net/svnroot/casparcg/server/branches...
authorronag <ronag@362d55ac-95cf-4e76-9f9a-cbaa9c17b72d>
Fri, 9 Mar 2012 11:29:22 +0000 (11:29 +0000)
committerronag <ronag@362d55ac-95cf-4e76-9f9a-cbaa9c17b72d>
Fri, 9 Mar 2012 11:29:22 +0000 (11:29 +0000)
protocol/osc/server.cpp
protocol/util/AsyncEventServer.cpp
shell/casparcg.config

index b4be0ff01f39c9b23325e552d22f4cce451fa88e..6757d11928b9ba66e4c597bbd7dfb6f2b9b2b998 100644 (file)
@@ -93,7 +93,6 @@ public:
        void stop()\r
        {\r
                connection_set_->erase(shared_from_this());\r
-               socket_->shutdown(boost::asio::socket_base::shutdown_both);\r
                socket_->close();\r
        }\r
                \r
@@ -209,8 +208,9 @@ public:
        {\r
                service_.post([=]\r
                {\r
-                       BOOST_FOREACH(auto& connection, *connection_set_)\r
-                               connection->on_next(e);\r
+                       auto connections = *connection_set_;\r
+                       BOOST_FOREACH(auto& connection, connections)\r
+                               connection->stop();\r
                });\r
        }       \r
 private:               \r
index 7eee0639427efce43cc005ba0e26baed86a85d95..dcc31718bae8972bca0a6b50e97ca984a16847fe 100644 (file)
@@ -161,7 +161,6 @@ public:
        void stop()\r
        {\r
                connection_set_->erase(shared_from_this());\r
-               socket_->shutdown(boost::asio::socket_base::shutdown_both);\r
                socket_->close();\r
                CASPAR_LOG(info) << print() << L" Disconnected.";\r
        }\r
@@ -251,13 +250,30 @@ struct AsyncEventServer::implementation
 \r
        ~implementation()\r
        {\r
-               acceptor_.close();\r
+               try\r
+               {\r
+                       acceptor_.close();\r
 \r
-               service_.post([=]\r
+                       service_.post([=]\r
+                       {\r
+                               auto connections = *connection_set_;\r
+                               BOOST_FOREACH(auto& connection, connections)\r
+                               {\r
+                                       try\r
+                                       {\r
+                                               connection->stop();\r
+                                       }\r
+                                       catch(...)\r
+                                       {\r
+                                               CASPAR_LOG_CURRENT_EXCEPTION();\r
+                                       }\r
+                               }\r
+                       });\r
+               }\r
+               catch(...)\r
                {\r
-                       BOOST_FOREACH(auto& connection, *connection_set_)\r
-                               connection->stop();\r
-               });\r
+                       CASPAR_LOG_CURRENT_EXCEPTION();\r
+               }\r
 \r
                thread_.join();\r
        }\r
index 58d1c975871e93b0e12cf2787eb42c84c792d824..637fec412c73f0e3c95938785aac652a7aec4926 100644 (file)
@@ -2,7 +2,7 @@
 <configuration>\r
   <paths>\r
     <media-path>D:\casparcg\_media\</media-path>\r
-    <log-path>./</log-path>\r
+    <log-path>D:\casparcg\_log\</log-path>\r
     <data-path>D:\casparcg\_data\</data-path>\r
     <template-path>D:\caspar\_templates\</template-path>\r
   </paths>\r