]> git.sesse.net Git - casparcg/commitdiff
2.0.2: INFO: Fixed compatibility with old client.
authorronag <ronag@362d55ac-95cf-4e76-9f9a-cbaa9c17b72d>
Mon, 5 Dec 2011 10:58:35 +0000 (10:58 +0000)
committerronag <ronag@362d55ac-95cf-4e76-9f9a-cbaa9c17b72d>
Mon, 5 Dec 2011 10:58:35 +0000 (10:58 +0000)
git-svn-id: https://casparcg.svn.sourceforge.net/svnroot/casparcg/server/branches/2.0.2@1791 362d55ac-95cf-4e76-9f9a-cbaa9c17b72d

protocol/amcp/AMCPCommandsImpl.cpp

index 81ea2ef344b3b989493d322b3f96d58209e1fba4..75f8e3f9ddfa90b6f17c8f544f87bc38d4ec4b88 100644 (file)
@@ -1363,13 +1363,26 @@ bool InfoCommand::DoExecute()
                                                \r
                        boost::property_tree::write_xml(replyString, info, w);\r
                }\r
-               else // channel\r
+               else if(_parameters.size() >= 1 && _parameters[0] == L"SERVER")\r
                {\r
-                       replyString << TEXT("201 INFO OK\r\n");\r
+                       replyString << L"201 INFO SYSTEM OK\r\n";\r
                        \r
                        boost::property_tree::wptree info;\r
+\r
+                       int index = 0;\r
+                       BOOST_FOREACH(auto channel, channels_)\r
+                               info.add_child(L"channels.channel", channel->info())\r
+                                       .add(L"index", ++index);\r
+                       \r
+                       boost::property_tree::write_xml(replyString, info, w);\r
+               }\r
+               else // channel\r
+               {                       \r
                        if(_parameters.size() >= 1)\r
                        {\r
+                               replyString << TEXT("201 INFO OK\r\n");\r
+                               boost::property_tree::wptree info;\r
+\r
                                std::vector<std::wstring> split;\r
                                boost::split(split, _parameters[0], boost::is_any_of("-"));\r
                                        \r
@@ -1399,16 +1412,17 @@ bool InfoCommand::DoExecute()
                                                        .add(L"index", layer);\r
                                        }\r
                                }\r
+                               boost::property_tree::xml_parser::write_xml(replyString, info, w);\r
                        }\r
                        else\r
                        {\r
-                               int index = 0;\r
-                               BOOST_FOREACH(auto channel, channels_)\r
-                                       info.add_child(L"channels.channel", channel->info())\r
-                                               .add(L"index", ++index);\r
+                               // This is needed for backwards compatibility with old clients\r
+                               replyString << TEXT("200 INFO OK\r\n");\r
+                               for(size_t n = 0; n < channels_.size(); ++n)\r
+                                       GenerateChannelInfo(n, channels_[n], replyString);\r
+                               replyString << TEXT("\r\n");\r
                        }\r
 \r
-                       boost::property_tree::xml_parser::write_xml(replyString, info, w);\r
                }\r
        }\r
        catch(...)\r