正在显示
3 个修改的文件
包含
58 行增加
和
53 行删除
| @@ -694,8 +694,8 @@ vhost http.remux.srs.com { | @@ -694,8 +694,8 @@ vhost http.remux.srs.com { | ||
| 694 | # whether http stream trigger rtmp stream source when no stream available, | 694 | # whether http stream trigger rtmp stream source when no stream available, |
| 695 | # for example, when encoder has not publish stream yet, | 695 | # for example, when encoder has not publish stream yet, |
| 696 | # user can play the http flv stream and wait for stream. | 696 | # user can play the http flv stream and wait for stream. |
| 697 | - # default: on | ||
| 698 | - hstrs on; | 697 | + # default: off |
| 698 | + hstrs off; | ||
| 699 | } | 699 | } |
| 700 | } | 700 | } |
| 701 | 701 |
| @@ -70,8 +70,8 @@ vhost vhost.srs.com { | @@ -70,8 +70,8 @@ vhost vhost.srs.com { | ||
| 70 | time_jitter full; | 70 | time_jitter full; |
| 71 | mix_correct off; | 71 | mix_correct off; |
| 72 | 72 | ||
| 73 | - atc on; | ||
| 74 | - atc_auto on; | 73 | + atc off; |
| 74 | + atc_auto off; | ||
| 75 | 75 | ||
| 76 | mw_latency 100; | 76 | mw_latency 100; |
| 77 | 77 | ||
| @@ -108,6 +108,7 @@ vhost vhost.srs.com { | @@ -108,6 +108,7 @@ vhost vhost.srs.com { | ||
| 108 | enabled off; | 108 | enabled off; |
| 109 | allow play all; | 109 | allow play all; |
| 110 | allow publish all; | 110 | allow publish all; |
| 111 | + deny publish all; | ||
| 111 | } | 112 | } |
| 112 | 113 | ||
| 113 | http_static { | 114 | http_static { |
| @@ -1643,18 +1643,16 @@ int SrsConfig::vhost_to_json(SrsConfDirective* vhost, SrsAmf0Object* obj) | @@ -1643,18 +1643,16 @@ int SrsConfig::vhost_to_json(SrsConfDirective* vhost, SrsAmf0Object* obj) | ||
| 1643 | 1643 | ||
| 1644 | SrsConfDirective* dir = NULL; | 1644 | SrsConfDirective* dir = NULL; |
| 1645 | 1645 | ||
| 1646 | - // stat id and name. | 1646 | + // always present in vhost. |
| 1647 | SrsStatistic* stat = SrsStatistic::instance(); | 1647 | SrsStatistic* stat = SrsStatistic::instance(); |
| 1648 | 1648 | ||
| 1649 | SrsStatisticVhost* svhost = stat->find_vhost(vhost->arg0()); | 1649 | SrsStatisticVhost* svhost = stat->find_vhost(vhost->arg0()); |
| 1650 | obj->set("id", SrsAmf0Any::number(svhost? (double)svhost->id : 0)); | 1650 | obj->set("id", SrsAmf0Any::number(svhost? (double)svhost->id : 0)); |
| 1651 | 1651 | ||
| 1652 | obj->set("name", vhost->dumps_arg0_to_str()); | 1652 | obj->set("name", vhost->dumps_arg0_to_str()); |
| 1653 | + obj->set("enabled", SrsAmf0Any::boolean(get_vhost_enabled(vhost))); | ||
| 1653 | 1654 | ||
| 1654 | // vhost scope configs. | 1655 | // vhost scope configs. |
| 1655 | - if ((dir = vhost->get("enabled")) != NULL) { | ||
| 1656 | - obj->set("enabled", dir->dumps_arg0_to_boolean()); | ||
| 1657 | - } | ||
| 1658 | if ((dir = vhost->get("chunk_size")) != NULL) { | 1656 | if ((dir = vhost->get("chunk_size")) != NULL) { |
| 1659 | obj->set("chunk_size", dir->dumps_arg0_to_number()); | 1657 | obj->set("chunk_size", dir->dumps_arg0_to_number()); |
| 1660 | } | 1658 | } |
| @@ -1692,12 +1690,12 @@ int SrsConfig::vhost_to_json(SrsConfDirective* vhost, SrsAmf0Object* obj) | @@ -1692,12 +1690,12 @@ int SrsConfig::vhost_to_json(SrsConfDirective* vhost, SrsAmf0Object* obj) | ||
| 1692 | SrsAmf0Object* forward = SrsAmf0Any::object(); | 1690 | SrsAmf0Object* forward = SrsAmf0Any::object(); |
| 1693 | obj->set("forward", forward); | 1691 | obj->set("forward", forward); |
| 1694 | 1692 | ||
| 1693 | + forward->set("enabled", SrsAmf0Any::boolean(get_forward_enabled(vhost->name))); | ||
| 1694 | + | ||
| 1695 | for (int i = 0; i < (int)dir->directives.size(); i++) { | 1695 | for (int i = 0; i < (int)dir->directives.size(); i++) { |
| 1696 | SrsConfDirective* sdir = dir->directives.at(i); | 1696 | SrsConfDirective* sdir = dir->directives.at(i); |
| 1697 | 1697 | ||
| 1698 | - if (sdir->name == "enabled") { | ||
| 1699 | - forward->set("enabled", sdir->dumps_arg0_to_boolean()); | ||
| 1700 | - } else if (sdir->name == "destination") { | 1698 | + if (sdir->name == "destination") { |
| 1701 | forward->set("destination", sdir->dumps_args()); | 1699 | forward->set("destination", sdir->dumps_args()); |
| 1702 | } | 1700 | } |
| 1703 | } | 1701 | } |
| @@ -1758,12 +1756,12 @@ int SrsConfig::vhost_to_json(SrsConfDirective* vhost, SrsAmf0Object* obj) | @@ -1758,12 +1756,12 @@ int SrsConfig::vhost_to_json(SrsConfDirective* vhost, SrsAmf0Object* obj) | ||
| 1758 | SrsAmf0Object* refer = SrsAmf0Any::object(); | 1756 | SrsAmf0Object* refer = SrsAmf0Any::object(); |
| 1759 | obj->set("refer", refer); | 1757 | obj->set("refer", refer); |
| 1760 | 1758 | ||
| 1759 | + refer->set("enabled", SrsAmf0Any::boolean(get_refer_enabled(vhost->name))); | ||
| 1760 | + | ||
| 1761 | for (int i = 0; i < (int)dir->directives.size(); i++) { | 1761 | for (int i = 0; i < (int)dir->directives.size(); i++) { |
| 1762 | SrsConfDirective* sdir = dir->directives.at(i); | 1762 | SrsConfDirective* sdir = dir->directives.at(i); |
| 1763 | 1763 | ||
| 1764 | - if (sdir->name == "enabled") { | ||
| 1765 | - refer->set("enabled", sdir->dumps_arg0_to_boolean()); | ||
| 1766 | - } else if (sdir->name == "all") { | 1764 | + if (sdir->name == "all") { |
| 1767 | refer->set("all", sdir->dumps_args()); | 1765 | refer->set("all", sdir->dumps_args()); |
| 1768 | } else if (sdir->name == "publish") { | 1766 | } else if (sdir->name == "publish") { |
| 1769 | refer->set("publish", sdir->dumps_args()); | 1767 | refer->set("publish", sdir->dumps_args()); |
| @@ -1778,12 +1776,12 @@ int SrsConfig::vhost_to_json(SrsConfDirective* vhost, SrsAmf0Object* obj) | @@ -1778,12 +1776,12 @@ int SrsConfig::vhost_to_json(SrsConfDirective* vhost, SrsAmf0Object* obj) | ||
| 1778 | SrsAmf0Object* bandcheck = SrsAmf0Any::object(); | 1776 | SrsAmf0Object* bandcheck = SrsAmf0Any::object(); |
| 1779 | obj->set("bandcheck", bandcheck); | 1777 | obj->set("bandcheck", bandcheck); |
| 1780 | 1778 | ||
| 1779 | + bandcheck->set("enabled", SrsAmf0Any::boolean(get_bw_check_enabled(vhost->name))); | ||
| 1780 | + | ||
| 1781 | for (int i = 0; i < (int)dir->directives.size(); i++) { | 1781 | for (int i = 0; i < (int)dir->directives.size(); i++) { |
| 1782 | SrsConfDirective* sdir = dir->directives.at(i); | 1782 | SrsConfDirective* sdir = dir->directives.at(i); |
| 1783 | 1783 | ||
| 1784 | - if (sdir->name == "enabled") { | ||
| 1785 | - bandcheck->set("enabled", sdir->dumps_arg0_to_boolean()); | ||
| 1786 | - } else if (sdir->name == "key") { | 1784 | + if (sdir->name == "key") { |
| 1787 | bandcheck->set("key", sdir->dumps_arg0_to_str()); | 1785 | bandcheck->set("key", sdir->dumps_arg0_to_str()); |
| 1788 | } else if (sdir->name == "interval") { | 1786 | } else if (sdir->name == "interval") { |
| 1789 | bandcheck->set("interval", sdir->dumps_arg0_to_number()); | 1787 | bandcheck->set("interval", sdir->dumps_arg0_to_number()); |
| @@ -1798,20 +1796,29 @@ int SrsConfig::vhost_to_json(SrsConfDirective* vhost, SrsAmf0Object* obj) | @@ -1798,20 +1796,29 @@ int SrsConfig::vhost_to_json(SrsConfDirective* vhost, SrsAmf0Object* obj) | ||
| 1798 | SrsAmf0Object* security = SrsAmf0Any::object(); | 1796 | SrsAmf0Object* security = SrsAmf0Any::object(); |
| 1799 | obj->set("security", security); | 1797 | obj->set("security", security); |
| 1800 | 1798 | ||
| 1799 | + security->set("enabled", SrsAmf0Any::boolean(get_security_enabled(vhost->name))); | ||
| 1800 | + | ||
| 1801 | SrsAmf0StrictArray* allows = SrsAmf0Any::strict_array(); | 1801 | SrsAmf0StrictArray* allows = SrsAmf0Any::strict_array(); |
| 1802 | security->set("allows", allows); | 1802 | security->set("allows", allows); |
| 1803 | 1803 | ||
| 1804 | + SrsAmf0StrictArray* denies = SrsAmf0Any::strict_array(); | ||
| 1805 | + security->set("denies", denies); | ||
| 1806 | + | ||
| 1804 | for (int i = 0; i < (int)dir->directives.size(); i++) { | 1807 | for (int i = 0; i < (int)dir->directives.size(); i++) { |
| 1805 | SrsConfDirective* sdir = dir->directives.at(i); | 1808 | SrsConfDirective* sdir = dir->directives.at(i); |
| 1806 | 1809 | ||
| 1807 | - if (sdir->name == "enabled") { | ||
| 1808 | - security->set("enabled", sdir->dumps_arg0_to_boolean()); | ||
| 1809 | - } else if (sdir->name == "allow") { | 1810 | + if (sdir->name == "allow") { |
| 1810 | SrsAmf0Object* allow = SrsAmf0Any::object(); | 1811 | SrsAmf0Object* allow = SrsAmf0Any::object(); |
| 1811 | allow->set("action", SrsAmf0Any::str(sdir->name.c_str())); | 1812 | allow->set("action", SrsAmf0Any::str(sdir->name.c_str())); |
| 1812 | allow->set("method", SrsAmf0Any::str(sdir->arg0().c_str())); | 1813 | allow->set("method", SrsAmf0Any::str(sdir->arg0().c_str())); |
| 1813 | allow->set("entry", SrsAmf0Any::str(sdir->arg1().c_str())); | 1814 | allow->set("entry", SrsAmf0Any::str(sdir->arg1().c_str())); |
| 1814 | allows->append(allow); | 1815 | allows->append(allow); |
| 1816 | + } else if (sdir->name == "deny") { | ||
| 1817 | + SrsAmf0Object* deny = SrsAmf0Any::object(); | ||
| 1818 | + deny->set("action", SrsAmf0Any::str(sdir->name.c_str())); | ||
| 1819 | + deny->set("method", SrsAmf0Any::str(sdir->arg0().c_str())); | ||
| 1820 | + deny->set("entry", SrsAmf0Any::str(sdir->arg1().c_str())); | ||
| 1821 | + denies->append(deny); | ||
| 1815 | } | 1822 | } |
| 1816 | } | 1823 | } |
| 1817 | } | 1824 | } |
| @@ -1821,12 +1828,12 @@ int SrsConfig::vhost_to_json(SrsConfDirective* vhost, SrsAmf0Object* obj) | @@ -1821,12 +1828,12 @@ int SrsConfig::vhost_to_json(SrsConfDirective* vhost, SrsAmf0Object* obj) | ||
| 1821 | SrsAmf0Object* http_static = SrsAmf0Any::object(); | 1828 | SrsAmf0Object* http_static = SrsAmf0Any::object(); |
| 1822 | obj->set("http_static", http_static); | 1829 | obj->set("http_static", http_static); |
| 1823 | 1830 | ||
| 1831 | + http_static->set("enabled", SrsAmf0Any::boolean(get_vhost_http_enabled(vhost->name))); | ||
| 1832 | + | ||
| 1824 | for (int i = 0; i < (int)dir->directives.size(); i++) { | 1833 | for (int i = 0; i < (int)dir->directives.size(); i++) { |
| 1825 | SrsConfDirective* sdir = dir->directives.at(i); | 1834 | SrsConfDirective* sdir = dir->directives.at(i); |
| 1826 | 1835 | ||
| 1827 | - if (sdir->name == "enabled") { | ||
| 1828 | - http_static->set("enabled", sdir->dumps_arg0_to_boolean()); | ||
| 1829 | - } else if (sdir->name == "mount") { | 1836 | + if (sdir->name == "mount") { |
| 1830 | http_static->set("mount", sdir->dumps_arg0_to_str()); | 1837 | http_static->set("mount", sdir->dumps_arg0_to_str()); |
| 1831 | } else if (sdir->name == "dir") { | 1838 | } else if (sdir->name == "dir") { |
| 1832 | http_static->set("dir", sdir->dumps_arg0_to_str()); | 1839 | http_static->set("dir", sdir->dumps_arg0_to_str()); |
| @@ -1839,12 +1846,12 @@ int SrsConfig::vhost_to_json(SrsConfDirective* vhost, SrsAmf0Object* obj) | @@ -1839,12 +1846,12 @@ int SrsConfig::vhost_to_json(SrsConfDirective* vhost, SrsAmf0Object* obj) | ||
| 1839 | SrsAmf0Object* http_remux = SrsAmf0Any::object(); | 1846 | SrsAmf0Object* http_remux = SrsAmf0Any::object(); |
| 1840 | obj->set("http_remux", http_remux); | 1847 | obj->set("http_remux", http_remux); |
| 1841 | 1848 | ||
| 1849 | + http_remux->set("enabled", SrsAmf0Any::boolean(get_vhost_http_remux_enabled(vhost->name))); | ||
| 1850 | + | ||
| 1842 | for (int i = 0; i < (int)dir->directives.size(); i++) { | 1851 | for (int i = 0; i < (int)dir->directives.size(); i++) { |
| 1843 | SrsConfDirective* sdir = dir->directives.at(i); | 1852 | SrsConfDirective* sdir = dir->directives.at(i); |
| 1844 | 1853 | ||
| 1845 | - if (sdir->name == "enabled") { | ||
| 1846 | - http_remux->set("enabled", sdir->dumps_arg0_to_boolean()); | ||
| 1847 | - } else if (sdir->name == "fast_cache") { | 1854 | + if (sdir->name == "fast_cache") { |
| 1848 | http_remux->set("fast_cache", sdir->dumps_arg0_to_number()); | 1855 | http_remux->set("fast_cache", sdir->dumps_arg0_to_number()); |
| 1849 | } else if (sdir->name == "mount") { | 1856 | } else if (sdir->name == "mount") { |
| 1850 | http_remux->set("mount", sdir->dumps_arg0_to_str()); | 1857 | http_remux->set("mount", sdir->dumps_arg0_to_str()); |
| @@ -1859,12 +1866,12 @@ int SrsConfig::vhost_to_json(SrsConfDirective* vhost, SrsAmf0Object* obj) | @@ -1859,12 +1866,12 @@ int SrsConfig::vhost_to_json(SrsConfDirective* vhost, SrsAmf0Object* obj) | ||
| 1859 | SrsAmf0Object* http_hooks = SrsAmf0Any::object(); | 1866 | SrsAmf0Object* http_hooks = SrsAmf0Any::object(); |
| 1860 | obj->set("http_hooks", http_hooks); | 1867 | obj->set("http_hooks", http_hooks); |
| 1861 | 1868 | ||
| 1869 | + http_hooks->set("enabled", SrsAmf0Any::boolean(get_vhost_http_hooks_enabled(vhost->name))); | ||
| 1870 | + | ||
| 1862 | for (int i = 0; i < (int)dir->directives.size(); i++) { | 1871 | for (int i = 0; i < (int)dir->directives.size(); i++) { |
| 1863 | SrsConfDirective* sdir = dir->directives.at(i); | 1872 | SrsConfDirective* sdir = dir->directives.at(i); |
| 1864 | 1873 | ||
| 1865 | - if (sdir->name == "enabled") { | ||
| 1866 | - http_hooks->set("enabled", sdir->dumps_arg0_to_boolean()); | ||
| 1867 | - } else if (sdir->name == "on_connect") { | 1874 | + if (sdir->name == "on_connect") { |
| 1868 | http_hooks->set("on_connect", sdir->dumps_args()); | 1875 | http_hooks->set("on_connect", sdir->dumps_args()); |
| 1869 | } else if (sdir->name == "on_close") { | 1876 | } else if (sdir->name == "on_close") { |
| 1870 | http_hooks->set("on_close", sdir->dumps_args()); | 1877 | http_hooks->set("on_close", sdir->dumps_args()); |
| @@ -1891,12 +1898,12 @@ int SrsConfig::vhost_to_json(SrsConfDirective* vhost, SrsAmf0Object* obj) | @@ -1891,12 +1898,12 @@ int SrsConfig::vhost_to_json(SrsConfDirective* vhost, SrsAmf0Object* obj) | ||
| 1891 | SrsAmf0Object* hls = SrsAmf0Any::object(); | 1898 | SrsAmf0Object* hls = SrsAmf0Any::object(); |
| 1892 | obj->set("hls", hls); | 1899 | obj->set("hls", hls); |
| 1893 | 1900 | ||
| 1901 | + hls->set("enabled", SrsAmf0Any::boolean(get_hls_enabled(vhost->name))); | ||
| 1902 | + | ||
| 1894 | for (int i = 0; i < (int)dir->directives.size(); i++) { | 1903 | for (int i = 0; i < (int)dir->directives.size(); i++) { |
| 1895 | SrsConfDirective* sdir = dir->directives.at(i); | 1904 | SrsConfDirective* sdir = dir->directives.at(i); |
| 1896 | 1905 | ||
| 1897 | - if (sdir->name == "enabled") { | ||
| 1898 | - hls->set("enabled", sdir->dumps_arg0_to_boolean()); | ||
| 1899 | - } else if (sdir->name == "hls_fragment") { | 1906 | + if (sdir->name == "hls_fragment") { |
| 1900 | hls->set("hls_fragment", sdir->dumps_arg0_to_number()); | 1907 | hls->set("hls_fragment", sdir->dumps_arg0_to_number()); |
| 1901 | } else if (sdir->name == "hls_td_ratio") { | 1908 | } else if (sdir->name == "hls_td_ratio") { |
| 1902 | hls->set("hls_td_ratio", sdir->dumps_arg0_to_number()); | 1909 | hls->set("hls_td_ratio", sdir->dumps_arg0_to_number()); |
| @@ -1941,12 +1948,12 @@ int SrsConfig::vhost_to_json(SrsConfDirective* vhost, SrsAmf0Object* obj) | @@ -1941,12 +1948,12 @@ int SrsConfig::vhost_to_json(SrsConfDirective* vhost, SrsAmf0Object* obj) | ||
| 1941 | SrsAmf0Object* hds = SrsAmf0Any::object(); | 1948 | SrsAmf0Object* hds = SrsAmf0Any::object(); |
| 1942 | obj->set("hds", hds); | 1949 | obj->set("hds", hds); |
| 1943 | 1950 | ||
| 1951 | + hds->set("enabled", SrsAmf0Any::boolean(get_hds_enabled(vhost->name))); | ||
| 1952 | + | ||
| 1944 | for (int i = 0; i < (int)dir->directives.size(); i++) { | 1953 | for (int i = 0; i < (int)dir->directives.size(); i++) { |
| 1945 | SrsConfDirective* sdir = dir->directives.at(i); | 1954 | SrsConfDirective* sdir = dir->directives.at(i); |
| 1946 | 1955 | ||
| 1947 | - if (sdir->name == "enabled") { | ||
| 1948 | - hds->set("enabled", sdir->dumps_arg0_to_boolean()); | ||
| 1949 | - } else if (sdir->name == "hds_fragment") { | 1956 | + if (sdir->name == "hds_fragment") { |
| 1950 | hds->set("hds_fragment", sdir->dumps_arg0_to_number()); | 1957 | hds->set("hds_fragment", sdir->dumps_arg0_to_number()); |
| 1951 | } else if (sdir->name == "hds_window") { | 1958 | } else if (sdir->name == "hds_window") { |
| 1952 | hds->set("hds_window", sdir->dumps_arg0_to_number()); | 1959 | hds->set("hds_window", sdir->dumps_arg0_to_number()); |
| @@ -1961,12 +1968,12 @@ int SrsConfig::vhost_to_json(SrsConfDirective* vhost, SrsAmf0Object* obj) | @@ -1961,12 +1968,12 @@ int SrsConfig::vhost_to_json(SrsConfDirective* vhost, SrsAmf0Object* obj) | ||
| 1961 | SrsAmf0Object* dvr = SrsAmf0Any::object(); | 1968 | SrsAmf0Object* dvr = SrsAmf0Any::object(); |
| 1962 | obj->set("dvr", dvr); | 1969 | obj->set("dvr", dvr); |
| 1963 | 1970 | ||
| 1971 | + dvr->set("enabled", SrsAmf0Any::boolean(get_dvr_enabled(vhost->name))); | ||
| 1972 | + | ||
| 1964 | for (int i = 0; i < (int)dir->directives.size(); i++) { | 1973 | for (int i = 0; i < (int)dir->directives.size(); i++) { |
| 1965 | SrsConfDirective* sdir = dir->directives.at(i); | 1974 | SrsConfDirective* sdir = dir->directives.at(i); |
| 1966 | 1975 | ||
| 1967 | - if (sdir->name == "enabled") { | ||
| 1968 | - dvr->set("enabled", sdir->dumps_arg0_to_boolean()); | ||
| 1969 | - } else if (sdir->name == "dvr_plan") { | 1976 | + if (sdir->name == "dvr_plan") { |
| 1970 | dvr->set("dvr_plan", sdir->dumps_arg0_to_str()); | 1977 | dvr->set("dvr_plan", sdir->dumps_arg0_to_str()); |
| 1971 | } else if (sdir->name == "dvr_path") { | 1978 | } else if (sdir->name == "dvr_path") { |
| 1972 | dvr->set("dvr_path", sdir->dumps_arg0_to_str()); | 1979 | dvr->set("dvr_path", sdir->dumps_arg0_to_str()); |
| @@ -1985,12 +1992,12 @@ int SrsConfig::vhost_to_json(SrsConfDirective* vhost, SrsAmf0Object* obj) | @@ -1985,12 +1992,12 @@ int SrsConfig::vhost_to_json(SrsConfDirective* vhost, SrsAmf0Object* obj) | ||
| 1985 | SrsAmf0Object* ng_exec = SrsAmf0Any::object(); | 1992 | SrsAmf0Object* ng_exec = SrsAmf0Any::object(); |
| 1986 | obj->set("exec", ng_exec); | 1993 | obj->set("exec", ng_exec); |
| 1987 | 1994 | ||
| 1995 | + ng_exec->set("enabled", SrsAmf0Any::boolean(get_exec_enabled(vhost->name))); | ||
| 1996 | + | ||
| 1988 | for (int i = 0; i < (int)dir->directives.size(); i++) { | 1997 | for (int i = 0; i < (int)dir->directives.size(); i++) { |
| 1989 | SrsConfDirective* sdir = dir->directives.at(i); | 1998 | SrsConfDirective* sdir = dir->directives.at(i); |
| 1990 | 1999 | ||
| 1991 | - if (sdir->name == "enabled") { | ||
| 1992 | - ng_exec->set("enabled", sdir->dumps_arg0_to_boolean()); | ||
| 1993 | - } else if (sdir->name == "publish") { | 2000 | + if (sdir->name == "publish") { |
| 1994 | ng_exec->set("publish", sdir->dumps_args()); | 2001 | ng_exec->set("publish", sdir->dumps_args()); |
| 1995 | } | 2002 | } |
| 1996 | } | 2003 | } |
| @@ -2011,14 +2018,13 @@ int SrsConfig::vhost_to_json(SrsConfDirective* vhost, SrsAmf0Object* obj) | @@ -2011,14 +2018,13 @@ int SrsConfig::vhost_to_json(SrsConfDirective* vhost, SrsAmf0Object* obj) | ||
| 2011 | 2018 | ||
| 2012 | SrsAmf0Object* ingest = SrsAmf0Any::object(); | 2019 | SrsAmf0Object* ingest = SrsAmf0Any::object(); |
| 2013 | ingest->set("id", dir->dumps_arg0_to_str()); | 2020 | ingest->set("id", dir->dumps_arg0_to_str()); |
| 2021 | + ingest->set("enabled", SrsAmf0Any::boolean(get_ingest_enabled(dir))); | ||
| 2014 | ingests->append(ingest); | 2022 | ingests->append(ingest); |
| 2015 | 2023 | ||
| 2016 | for (int j = 0; j < (int)dir->directives.size(); j++) { | 2024 | for (int j = 0; j < (int)dir->directives.size(); j++) { |
| 2017 | SrsConfDirective* sdir = dir->directives.at(j); | 2025 | SrsConfDirective* sdir = dir->directives.at(j); |
| 2018 | 2026 | ||
| 2019 | - if (sdir->name == "enabled") { | ||
| 2020 | - ingest->set("enabled", sdir->dumps_arg0_to_boolean()); | ||
| 2021 | - } else if (sdir->name == "input") { | 2027 | + if (sdir->name == "input") { |
| 2022 | SrsAmf0Object* input = SrsAmf0Any::object(); | 2028 | SrsAmf0Object* input = SrsAmf0Any::object(); |
| 2023 | ingest->set("input", input); | 2029 | ingest->set("input", input); |
| 2024 | 2030 | ||
| @@ -2049,15 +2055,15 @@ int SrsConfig::vhost_to_json(SrsConfDirective* vhost, SrsAmf0Object* obj) | @@ -2049,15 +2055,15 @@ int SrsConfig::vhost_to_json(SrsConfDirective* vhost, SrsAmf0Object* obj) | ||
| 2049 | SrsAmf0Object* transcode = SrsAmf0Any::object(); | 2055 | SrsAmf0Object* transcode = SrsAmf0Any::object(); |
| 2050 | obj->set("transcode", transcode); | 2056 | obj->set("transcode", transcode); |
| 2051 | 2057 | ||
| 2058 | + transcode->set("enabled", SrsAmf0Any::boolean(get_transcode_enabled(dir))); | ||
| 2059 | + | ||
| 2052 | SrsAmf0StrictArray* engines = SrsAmf0Any::strict_array(); | 2060 | SrsAmf0StrictArray* engines = SrsAmf0Any::strict_array(); |
| 2053 | obj->set("engines", engines); | 2061 | obj->set("engines", engines); |
| 2054 | 2062 | ||
| 2055 | for (int i = 0; i < (int)dir->directives.size(); i++) { | 2063 | for (int i = 0; i < (int)dir->directives.size(); i++) { |
| 2056 | SrsConfDirective* sdir = dir->directives.at(i); | 2064 | SrsConfDirective* sdir = dir->directives.at(i); |
| 2057 | 2065 | ||
| 2058 | - if (sdir->name == "enabled") { | ||
| 2059 | - transcode->set("enabled", sdir->dumps_arg0_to_boolean()); | ||
| 2060 | - } else if (sdir->name == "ffmpeg") { | 2066 | + if (sdir->name == "ffmpeg") { |
| 2061 | transcode->set("ffmpeg", sdir->dumps_arg0_to_str()); | 2067 | transcode->set("ffmpeg", sdir->dumps_arg0_to_str()); |
| 2062 | } else if (sdir->name == "engine") { | 2068 | } else if (sdir->name == "engine") { |
| 2063 | SrsAmf0Object* engine = SrsAmf0Any::object(); | 2069 | SrsAmf0Object* engine = SrsAmf0Any::object(); |
| @@ -2101,10 +2107,7 @@ int SrsConfig::dumps_engine(SrsConfDirective* dir, SrsAmf0Object* engine) | @@ -2101,10 +2107,7 @@ int SrsConfig::dumps_engine(SrsConfDirective* dir, SrsAmf0Object* engine) | ||
| 2101 | SrsConfDirective* conf = NULL; | 2107 | SrsConfDirective* conf = NULL; |
| 2102 | 2108 | ||
| 2103 | engine->set("name", dir->dumps_arg0_to_str()); | 2109 | engine->set("name", dir->dumps_arg0_to_str()); |
| 2104 | - | ||
| 2105 | - if ((conf = dir->get("enabled")) != NULL) { | ||
| 2106 | - engine->set("enabled", conf->dumps_arg0_to_boolean()); | ||
| 2107 | - } | 2110 | + engine->set("enabled", SrsAmf0Any::boolean(get_engine_enabled(dir))); |
| 2108 | 2111 | ||
| 2109 | if ((conf = dir->get("iformat")) != NULL) { | 2112 | if ((conf = dir->get("iformat")) != NULL) { |
| 2110 | engine->set("iformat", conf->dumps_arg0_to_str()); | 2113 | engine->set("iformat", conf->dumps_arg0_to_str()); |
| @@ -5414,7 +5417,8 @@ string SrsConfig::get_vhost_http_remux_mount(string vhost) | @@ -5414,7 +5417,8 @@ string SrsConfig::get_vhost_http_remux_mount(string vhost) | ||
| 5414 | 5417 | ||
| 5415 | bool SrsConfig::get_vhost_http_remux_hstrs(string vhost) | 5418 | bool SrsConfig::get_vhost_http_remux_hstrs(string vhost) |
| 5416 | { | 5419 | { |
| 5417 | - static bool DEFAULT = true; | 5420 | + // the HSTRS must default to false for origin. |
| 5421 | + static bool DEFAULT = false; | ||
| 5418 | 5422 | ||
| 5419 | SrsConfDirective* conf = get_vhost(vhost); | 5423 | SrsConfDirective* conf = get_vhost(vhost); |
| 5420 | if (!conf) { | 5424 | if (!conf) { |
| @@ -5854,7 +5858,7 @@ int srs_config_transform_vhost(SrsConfDirective* root) | @@ -5854,7 +5858,7 @@ int srs_config_transform_vhost(SrsConfDirective* root) | ||
| 5854 | // vhost { forward; } | 5858 | // vhost { forward; } |
| 5855 | // SRS3+: | 5859 | // SRS3+: |
| 5856 | // vhost { forward { enabled; destination; } } | 5860 | // vhost { forward { enabled; destination; } } |
| 5857 | - if (n == "forward") { | 5861 | + if (n == "forward" && conf->directives.empty()) { |
| 5858 | conf->get_or_create("enabled", "on"); | 5862 | conf->get_or_create("enabled", "on"); |
| 5859 | 5863 | ||
| 5860 | SrsConfDirective* destination = conf->get_or_create("destination"); | 5864 | SrsConfDirective* destination = conf->get_or_create("destination"); |
-
请 注册 或 登录 后发表评论