1
0
Fork 0
mirror of https://github.com/ossrs/srs.git synced 2025-03-09 15:49:59 +00:00

For #913, reload use complex error

This commit is contained in:
winlin 2017-09-22 16:14:30 +08:00
parent 3744606c9b
commit fd91df9411
28 changed files with 642 additions and 630 deletions

View file

@ -1220,9 +1220,9 @@ srs_error_t SrsConfig::reload()
return err;
}
int SrsConfig::reload_vhost(SrsConfDirective* old_root)
srs_error_t SrsConfig::reload_vhost(SrsConfDirective* old_root)
{
int ret = ERROR_SUCCESS;
srs_error_t err = srs_success;
// merge config.
std::vector<ISrsReloadHandler*>::iterator it;
@ -1265,16 +1265,16 @@ int SrsConfig::reload_vhost(SrsConfDirective* old_root)
// DISABLED => ENABLED
if (!get_vhost_enabled(old_vhost) && get_vhost_enabled(new_vhost)) {
if ((ret = do_reload_vhost_added(vhost)) != ERROR_SUCCESS) {
return ret;
if ((err = do_reload_vhost_added(vhost)) != srs_success) {
return srs_error_wrap(err, "reload vhost added");
}
continue;
}
// ENABLED => DISABLED
if (get_vhost_enabled(old_vhost) && !get_vhost_enabled(new_vhost)) {
if ((ret = do_reload_vhost_removed(vhost)) != ERROR_SUCCESS) {
return ret;
if ((err = do_reload_vhost_removed(vhost)) != srs_success) {
return srs_error_wrap(err, "reload vhost removed");
}
continue;
}
@ -1287,9 +1287,7 @@ int SrsConfig::reload_vhost(SrsConfDirective* old_root)
// edge will retry and the users connected to edge are ok.
// it's ok to add or remove edge/origin vhost.
if (get_vhost_is_edge(old_vhost) != get_vhost_is_edge(new_vhost)) {
ret = ERROR_RTMP_EDGE_RELOAD;
srs_error("reload never supports mode changed. ret=%d", ret);
return ret;
return srs_error_new(ERROR_RTMP_EDGE_RELOAD, "vhost mode changed");
}
// the auto reload configs:
@ -1302,9 +1300,8 @@ int SrsConfig::reload_vhost(SrsConfDirective* old_root)
if (!srs_directive_equals(new_vhost->get("chunk_size"), old_vhost->get("chunk_size"))) {
for (it = subscribes.begin(); it != subscribes.end(); ++it) {
ISrsReloadHandler* subscribe = *it;
if ((ret = subscribe->on_reload_vhost_chunk_size(vhost)) != ERROR_SUCCESS) {
srs_error("vhost %s notify subscribes chunk_size failed. ret=%d", vhost.c_str(), ret);
return ret;
if ((err = subscribe->on_reload_vhost_chunk_size(vhost)) != srs_success) {
return srs_error_wrap(err, "vhost %s notify subscribes chunk_size failed", vhost.c_str());
}
}
srs_trace("vhost %s reload chunk_size success.", vhost.c_str());
@ -1314,9 +1311,8 @@ int SrsConfig::reload_vhost(SrsConfDirective* old_root)
if (!srs_directive_equals(new_vhost->get("tcp_nodelay"), old_vhost->get("tcp_nodelay"))) {
for (it = subscribes.begin(); it != subscribes.end(); ++it) {
ISrsReloadHandler* subscribe = *it;
if ((ret = subscribe->on_reload_vhost_tcp_nodelay(vhost)) != ERROR_SUCCESS) {
srs_error("vhost %s notify subscribes tcp_nodelay failed. ret=%d", vhost.c_str(), ret);
return ret;
if ((err = subscribe->on_reload_vhost_tcp_nodelay(vhost)) != srs_success) {
return srs_error_wrap(err, "vhost %s notify subscribes tcp_nodelay failed", vhost.c_str());
}
}
srs_trace("vhost %s reload tcp_nodelay success.", vhost.c_str());
@ -1326,9 +1322,8 @@ int SrsConfig::reload_vhost(SrsConfDirective* old_root)
if (!srs_directive_equals(new_vhost->get("min_latency"), old_vhost->get("min_latency"))) {
for (it = subscribes.begin(); it != subscribes.end(); ++it) {
ISrsReloadHandler* subscribe = *it;
if ((ret = subscribe->on_reload_vhost_realtime(vhost)) != ERROR_SUCCESS) {
srs_error("vhost %s notify subscribes min_latency failed. ret=%d", vhost.c_str(), ret);
return ret;
if ((err = subscribe->on_reload_vhost_realtime(vhost)) != srs_success) {
return srs_error_wrap(err, "vhost %s notify subscribes min_latency failed", vhost.c_str());
}
}
srs_trace("vhost %s reload min_latency success.", vhost.c_str());
@ -1338,9 +1333,8 @@ int SrsConfig::reload_vhost(SrsConfDirective* old_root)
if (!srs_directive_equals(new_vhost->get("play"), old_vhost->get("play"))) {
for (it = subscribes.begin(); it != subscribes.end(); ++it) {
ISrsReloadHandler* subscribe = *it;
if ((ret = subscribe->on_reload_vhost_play(vhost)) != ERROR_SUCCESS) {
srs_error("vhost %s notify subscribes play failed. ret=%d", vhost.c_str(), ret);
return ret;
if ((err = subscribe->on_reload_vhost_play(vhost)) != srs_success) {
return srs_error_wrap(err, "vhost %s notify subscribes play failed", vhost.c_str());
}
}
srs_trace("vhost %s reload play success.", vhost.c_str());
@ -1350,9 +1344,8 @@ int SrsConfig::reload_vhost(SrsConfDirective* old_root)
if (!srs_directive_equals(new_vhost->get("forward"), old_vhost->get("forward"))) {
for (it = subscribes.begin(); it != subscribes.end(); ++it) {
ISrsReloadHandler* subscribe = *it;
if ((ret = subscribe->on_reload_vhost_forward(vhost)) != ERROR_SUCCESS) {
srs_error("vhost %s notify subscribes forward failed. ret=%d", vhost.c_str(), ret);
return ret;
if ((err = subscribe->on_reload_vhost_forward(vhost)) != srs_success) {
return srs_error_wrap(err, "vhost %s notify subscribes forward failed", vhost.c_str());
}
}
srs_trace("vhost %s reload forward success.", vhost.c_str());
@ -1362,9 +1355,8 @@ int SrsConfig::reload_vhost(SrsConfDirective* old_root)
if (!srs_directive_equals(new_vhost->get("dash"), old_vhost->get("dash"))) {
for (it = subscribes.begin(); it != subscribes.end(); ++it) {
ISrsReloadHandler* subscribe = *it;
if ((ret = subscribe->on_reload_vhost_dash(vhost)) != ERROR_SUCCESS) {
srs_error("Reload vhost %s dash failed, ret=%d", vhost.c_str(), ret);
return ret;
if ((err = subscribe->on_reload_vhost_dash(vhost)) != srs_success) {
return srs_error_wrap(err, "Reload vhost %s dash failed", vhost.c_str());
}
}
srs_trace("Reload vhost %s dash ok.", vhost.c_str());
@ -1375,9 +1367,8 @@ int SrsConfig::reload_vhost(SrsConfDirective* old_root)
if (!srs_directive_equals(new_vhost->get("hls"), old_vhost->get("hls"))) {
for (it = subscribes.begin(); it != subscribes.end(); ++it) {
ISrsReloadHandler* subscribe = *it;
if ((ret = subscribe->on_reload_vhost_hls(vhost)) != ERROR_SUCCESS) {
srs_error("vhost %s notify subscribes hls failed. ret=%d", vhost.c_str(), ret);
return ret;
if ((err = subscribe->on_reload_vhost_hls(vhost)) != srs_success) {
return srs_error_wrap(err, "vhost %s notify subscribes hls failed", vhost.c_str());
}
}
srs_trace("vhost %s reload hls success.", vhost.c_str());
@ -1387,9 +1378,8 @@ int SrsConfig::reload_vhost(SrsConfDirective* old_root)
if (!srs_directive_equals(new_vhost->get("hds"), old_vhost->get("hds"))) {
for (it = subscribes.begin(); it != subscribes.end(); ++it) {
ISrsReloadHandler* subscribe = *it;
if ((ret = subscribe->on_reload_vhost_hds(vhost)) != ERROR_SUCCESS) {
srs_error("vhost %s notify subscribes hds failed. ret=%d", vhost.c_str(), ret);
return ret;
if ((err = subscribe->on_reload_vhost_hds(vhost)) != srs_success) {
return srs_error_wrap(err, "vhost %s notify subscribes hds failed", vhost.c_str());
}
}
srs_trace("vhost %s reload hds success.", vhost.c_str());
@ -1399,9 +1389,8 @@ int SrsConfig::reload_vhost(SrsConfDirective* old_root)
if (!srs_directive_equals(new_vhost->get("dvr"), old_vhost->get("dvr"), "dvr_apply")) {
for (it = subscribes.begin(); it != subscribes.end(); ++it) {
ISrsReloadHandler* subscribe = *it;
if ((ret = subscribe->on_reload_vhost_dvr(vhost)) != ERROR_SUCCESS) {
srs_error("vhost %s notify subscribes dvr failed. ret=%d", vhost.c_str(), ret);
return ret;
if ((err = subscribe->on_reload_vhost_dvr(vhost)) != srs_success) {
return srs_error_wrap(err, "vhost %s notify subscribes dvr failed", vhost.c_str());
}
}
srs_trace("vhost %s reload dvr success.", vhost.c_str());
@ -1413,8 +1402,8 @@ int SrsConfig::reload_vhost(SrsConfDirective* old_root)
// @see https://github.com/ossrs/srs/issues/459#issuecomment-140296597
SrsConfDirective* nda = new_vhost->get("dvr")? new_vhost->get("dvr")->get("dvr_apply") : NULL;
SrsConfDirective* oda = old_vhost->get("dvr")? old_vhost->get("dvr")->get("dvr_apply") : NULL;
if (!srs_directive_equals(nda, oda) && (ret = do_reload_vhost_dvr_apply(vhost)) != ERROR_SUCCESS) {
return ret;
if (!srs_directive_equals(nda, oda) && (err = do_reload_vhost_dvr_apply(vhost)) != srs_success) {
return srs_error_wrap(err, "reload dvr_apply");
}
}
@ -1422,9 +1411,8 @@ int SrsConfig::reload_vhost(SrsConfDirective* old_root)
if (!srs_directive_equals(new_vhost->get("exec"), old_vhost->get("exec"))) {
for (it = subscribes.begin(); it != subscribes.end(); ++it) {
ISrsReloadHandler* subscribe = *it;
if ((ret = subscribe->on_reload_vhost_exec(vhost)) != ERROR_SUCCESS) {
srs_error("vhost %s notify subscribes exec failed. ret=%d", vhost.c_str(), ret);
return ret;
if ((err = subscribe->on_reload_vhost_exec(vhost)) != srs_success) {
return srs_error_wrap(err, "vhost %s notify subscribes exec failed", vhost.c_str());
}
}
srs_trace("vhost %s reload exec success.", vhost.c_str());
@ -1434,9 +1422,8 @@ int SrsConfig::reload_vhost(SrsConfDirective* old_root)
if (!srs_directive_equals(new_vhost->get("publish"), old_vhost->get("publish"))) {
for (it = subscribes.begin(); it != subscribes.end(); ++it) {
ISrsReloadHandler* subscribe = *it;
if ((ret = subscribe->on_reload_vhost_publish(vhost)) != ERROR_SUCCESS) {
srs_error("vhost %s notify subscribes publish failed. ret=%d", vhost.c_str(), ret);
return ret;
if ((err = subscribe->on_reload_vhost_publish(vhost)) != srs_success) {
return srs_error_wrap(err, "vhost %s notify subscribes publish failed", vhost.c_str());
}
}
srs_trace("vhost %s reload publish success.", vhost.c_str());
@ -1446,9 +1433,8 @@ int SrsConfig::reload_vhost(SrsConfDirective* old_root)
if (!srs_directive_equals(new_vhost->get("http_static"), old_vhost->get("http_static"))) {
for (it = subscribes.begin(); it != subscribes.end(); ++it) {
ISrsReloadHandler* subscribe = *it;
if ((ret = subscribe->on_reload_vhost_http_updated()) != ERROR_SUCCESS) {
srs_error("vhost %s notify subscribes http_static failed. ret=%d", vhost.c_str(), ret);
return ret;
if ((err = subscribe->on_reload_vhost_http_updated()) != srs_success) {
return srs_error_wrap(err, "vhost %s notify subscribes http_static failed", vhost.c_str());
}
}
srs_trace("vhost %s reload http_static success.", vhost.c_str());
@ -1458,22 +1444,21 @@ int SrsConfig::reload_vhost(SrsConfDirective* old_root)
if (!srs_directive_equals(new_vhost->get("http_remux"), old_vhost->get("http_remux"))) {
for (it = subscribes.begin(); it != subscribes.end(); ++it) {
ISrsReloadHandler* subscribe = *it;
if ((ret = subscribe->on_reload_vhost_http_remux_updated(vhost)) != ERROR_SUCCESS) {
srs_error("vhost %s notify subscribes http_remux failed. ret=%d", vhost.c_str(), ret);
return ret;
if ((err = subscribe->on_reload_vhost_http_remux_updated(vhost)) != srs_success) {
return srs_error_wrap(err, "vhost %s notify subscribes http_remux failed", vhost.c_str());
}
}
srs_trace("vhost %s reload http_remux success.", vhost.c_str());
}
// transcode, many per vhost.
if ((ret = reload_transcode(new_vhost, old_vhost)) != ERROR_SUCCESS) {
return ret;
if ((err = reload_transcode(new_vhost, old_vhost)) != srs_success) {
return srs_error_wrap(err, "reload transcode");
}
// ingest, many per vhost.
if ((ret = reload_ingest(new_vhost, old_vhost)) != ERROR_SUCCESS) {
return ret;
if ((err = reload_ingest(new_vhost, old_vhost)) != srs_success) {
return srs_error_wrap(err, "reload ingest");
}
continue;
}
@ -1481,12 +1466,11 @@ int SrsConfig::reload_vhost(SrsConfDirective* old_root)
get_vhost_enabled(old_vhost), get_vhost_enabled(new_vhost));
}
return ret;
return err;
}
srs_error_t SrsConfig::reload_conf(SrsConfig* conf)
{
int ret = ERROR_SUCCESS;
srs_error_t err = srs_success;
SrsConfDirective* old_root = root;
@ -1508,43 +1492,43 @@ srs_error_t SrsConfig::reload_conf(SrsConfig* conf)
// merge config: listen
if (!srs_directive_equals(root->get("listen"), old_root->get("listen"))) {
if ((ret = do_reload_listen()) != ERROR_SUCCESS) {
return srs_error_new(ret, "listen");
if ((err = do_reload_listen()) != srs_success) {
return srs_error_wrap(err, "listen");
}
}
// merge config: pid
if (!srs_directive_equals(root->get("pid"), old_root->get("pid"))) {
if ((ret = do_reload_pid()) != ERROR_SUCCESS) {
return srs_error_new(ret, "pid");;
if ((err = do_reload_pid()) != srs_success) {
return srs_error_wrap(err, "pid");;
}
}
// merge config: srs_log_tank
if (!srs_directive_equals(root->get("srs_log_tank"), old_root->get("srs_log_tank"))) {
if ((ret = do_reload_srs_log_tank()) != ERROR_SUCCESS) {
return srs_error_new(ret, "log tank");;
if ((err = do_reload_srs_log_tank()) != srs_success) {
return srs_error_wrap(err, "log tank");;
}
}
// merge config: srs_log_level
if (!srs_directive_equals(root->get("srs_log_level"), old_root->get("srs_log_level"))) {
if ((ret = do_reload_srs_log_level()) != ERROR_SUCCESS) {
return srs_error_new(ret, "log level");;
if ((err = do_reload_srs_log_level()) != srs_success) {
return srs_error_wrap(err, "log level");;
}
}
// merge config: srs_log_file
if (!srs_directive_equals(root->get("srs_log_file"), old_root->get("srs_log_file"))) {
if ((ret = do_reload_srs_log_file()) != ERROR_SUCCESS) {
return srs_error_new(ret, "log file");;
if ((err = do_reload_srs_log_file()) != srs_success) {
return srs_error_wrap(err, "log file");;
}
}
// merge config: max_connections
if (!srs_directive_equals(root->get("max_connections"), old_root->get("max_connections"))) {
if ((ret = do_reload_max_connections()) != ERROR_SUCCESS) {
return srs_error_new(ret, "max connections");;
if ((err = do_reload_max_connections()) != srs_success) {
return srs_error_wrap(err, "max connections");;
}
}
@ -1557,8 +1541,8 @@ srs_error_t SrsConfig::reload_conf(SrsConfig* conf)
// merge config: pithy_print_ms
if (!srs_directive_equals(root->get("pithy_print_ms"), old_root->get("pithy_print_ms"))) {
if ((ret = do_reload_pithy_print_ms()) != ERROR_SUCCESS) {
return srs_error_new(ret, "pithy print ms");;
if ((err = do_reload_pithy_print_ms()) != srs_success) {
return srs_error_wrap(err, "pithy print ms");;
}
}
@ -1576,8 +1560,8 @@ srs_error_t SrsConfig::reload_conf(SrsConfig* conf)
// TODO: FIXME: support reload kafka.
// merge config: vhost
if ((ret = reload_vhost(old_root)) != ERROR_SUCCESS) {
return srs_error_new(ret, "vhost");;
if ((err = reload_vhost(old_root)) != srs_success) {
return srs_error_wrap(err, "vhost");;
}
return err;
@ -1585,7 +1569,6 @@ srs_error_t SrsConfig::reload_conf(SrsConfig* conf)
srs_error_t SrsConfig::reload_http_api(SrsConfDirective* old_root)
{
int ret = ERROR_SUCCESS;
srs_error_t err = srs_success;
// merge config.
@ -1604,8 +1587,8 @@ srs_error_t SrsConfig::reload_http_api(SrsConfDirective* old_root)
if (!get_http_api_enabled(old_http_api) && get_http_api_enabled(new_http_api)) {
for (it = subscribes.begin(); it != subscribes.end(); ++it) {
ISrsReloadHandler* subscribe = *it;
if ((ret = subscribe->on_reload_http_api_enabled()) != ERROR_SUCCESS) {
return srs_error_new(ret, "http api off=>on");
if ((err = subscribe->on_reload_http_api_enabled()) != srs_success) {
return srs_error_wrap(err, "http api off=>on");
}
}
srs_trace("reload off=>on http_api success.");
@ -1616,8 +1599,8 @@ srs_error_t SrsConfig::reload_http_api(SrsConfDirective* old_root)
if (get_http_api_enabled(old_http_api) && !get_http_api_enabled(new_http_api)) {
for (it = subscribes.begin(); it != subscribes.end(); ++it) {
ISrsReloadHandler* subscribe = *it;
if ((ret = subscribe->on_reload_http_api_disabled()) != ERROR_SUCCESS) {
return srs_error_new(ret, "http api on=>off");
if ((err = subscribe->on_reload_http_api_disabled()) != srs_success) {
return srs_error_wrap(err, "http api on=>off");
}
}
srs_trace("reload http_api on=>off success.");
@ -1630,8 +1613,8 @@ srs_error_t SrsConfig::reload_http_api(SrsConfDirective* old_root)
) {
for (it = subscribes.begin(); it != subscribes.end(); ++it) {
ISrsReloadHandler* subscribe = *it;
if ((ret = subscribe->on_reload_http_api_enabled()) != ERROR_SUCCESS) {
return srs_error_new(ret, "http api enabled");
if ((err = subscribe->on_reload_http_api_enabled()) != srs_success) {
return srs_error_wrap(err, "http api enabled");
}
}
srs_trace("reload http api enabled success.");
@ -1649,8 +1632,8 @@ srs_error_t SrsConfig::reload_http_api(SrsConfDirective* old_root)
if (!srs_directive_equals(old_http_api->get("raw_api"), new_http_api->get("raw_api"))) {
for (it = subscribes.begin(); it != subscribes.end(); ++it) {
ISrsReloadHandler* subscribe = *it;
if ((ret = subscribe->on_reload_http_api_raw_api()) != ERROR_SUCCESS) {
return srs_error_new(ret, "http api raw_api");
if ((err = subscribe->on_reload_http_api_raw_api()) != srs_success) {
return srs_error_wrap(err, "http api raw_api");
}
}
}
@ -1664,7 +1647,6 @@ srs_error_t SrsConfig::reload_http_api(SrsConfDirective* old_root)
srs_error_t SrsConfig::reload_http_stream(SrsConfDirective* old_root)
{
int ret = ERROR_SUCCESS;
srs_error_t err = srs_success;
// merge config.
@ -1683,8 +1665,8 @@ srs_error_t SrsConfig::reload_http_stream(SrsConfDirective* old_root)
if (!get_http_stream_enabled(old_http_stream) && get_http_stream_enabled(new_http_stream)) {
for (it = subscribes.begin(); it != subscribes.end(); ++it) {
ISrsReloadHandler* subscribe = *it;
if ((ret = subscribe->on_reload_http_stream_enabled()) != ERROR_SUCCESS) {
return srs_error_new(ret, "http stream off=>on");
if ((err = subscribe->on_reload_http_stream_enabled()) != srs_success) {
return srs_error_wrap(err, "http stream off=>on");
}
}
srs_trace("reload http stream off=>on success.");
@ -1695,8 +1677,8 @@ srs_error_t SrsConfig::reload_http_stream(SrsConfDirective* old_root)
if (get_http_stream_enabled(old_http_stream) && !get_http_stream_enabled(new_http_stream)) {
for (it = subscribes.begin(); it != subscribes.end(); ++it) {
ISrsReloadHandler* subscribe = *it;
if ((ret = subscribe->on_reload_http_stream_disabled()) != ERROR_SUCCESS) {
return srs_error_new(ret, "http stream on=>off");
if ((err = subscribe->on_reload_http_stream_disabled()) != srs_success) {
return srs_error_wrap(err, "http stream on=>off");
}
}
srs_trace("reload http stream on=>off success.");
@ -1709,8 +1691,8 @@ srs_error_t SrsConfig::reload_http_stream(SrsConfDirective* old_root)
) {
for (it = subscribes.begin(); it != subscribes.end(); ++it) {
ISrsReloadHandler* subscribe = *it;
if ((ret = subscribe->on_reload_http_stream_updated()) != ERROR_SUCCESS) {
return srs_error_new(ret, "http stream enabled");
if ((err = subscribe->on_reload_http_stream_updated()) != srs_success) {
return srs_error_wrap(err, "http stream enabled");
}
}
srs_trace("reload http stream enabled success.");
@ -1731,9 +1713,9 @@ srs_error_t SrsConfig::reload_http_stream(SrsConfDirective* old_root)
return err;
}
int SrsConfig::reload_transcode(SrsConfDirective* new_vhost, SrsConfDirective* old_vhost)
srs_error_t SrsConfig::reload_transcode(SrsConfDirective* new_vhost, SrsConfDirective* old_vhost)
{
int ret = ERROR_SUCCESS;
srs_error_t err = srs_success;
std::vector<SrsConfDirective*> old_transcoders;
for (int i = 0; i < (int)old_vhost->directives.size(); i++) {
@ -1804,20 +1786,19 @@ int SrsConfig::reload_transcode(SrsConfDirective* new_vhost, SrsConfDirective* o
if (changed) {
for (it = subscribes.begin(); it != subscribes.end(); ++it) {
ISrsReloadHandler* subscribe = *it;
if ((ret = subscribe->on_reload_vhost_transcode(vhost)) != ERROR_SUCCESS) {
srs_error("vhost %s notify subscribes transcode failed. ret=%d", vhost.c_str(), ret);
return ret;
if ((err = subscribe->on_reload_vhost_transcode(vhost)) != srs_success) {
return srs_error_wrap(err, "vhost %s notify subscribes transcode failed", vhost.c_str());
}
}
srs_trace("vhost %s reload transcode success.", vhost.c_str());
}
return ret;
return err;
}
int SrsConfig::reload_ingest(SrsConfDirective* new_vhost, SrsConfDirective* old_vhost)
srs_error_t SrsConfig::reload_ingest(SrsConfDirective* new_vhost, SrsConfDirective* old_vhost)
{
int ret = ERROR_SUCCESS;
srs_error_t err = srs_success;
std::vector<SrsConfDirective*> old_ingesters;
for (int i = 0; i < (int)old_vhost->directives.size(); i++) {
@ -1850,10 +1831,8 @@ int SrsConfig::reload_ingest(SrsConfDirective* new_vhost, SrsConfDirective* old_
// notice handler ingester removed.
for (it = subscribes.begin(); it != subscribes.end(); ++it) {
ISrsReloadHandler* subscribe = *it;
if ((ret = subscribe->on_reload_ingest_removed(vhost, ingest_id)) != ERROR_SUCCESS) {
srs_error("vhost %s notify subscribes ingest=%s removed failed. ret=%d",
vhost.c_str(), ingest_id.c_str(), ret);
return ret;
if ((err = subscribe->on_reload_ingest_removed(vhost, ingest_id)) != srs_success) {
return srs_error_wrap(err, "vhost %s notify subscribes ingest=%s removed failed", vhost.c_str(), ingest_id.c_str());
}
}
srs_trace("vhost %s reload ingest=%s removed success.", vhost.c_str(), ingest_id.c_str());
@ -1870,10 +1849,8 @@ int SrsConfig::reload_ingest(SrsConfDirective* new_vhost, SrsConfDirective* old_
if (!get_ingest_enabled(old_ingester) && get_ingest_enabled(new_ingester)) {
for (it = subscribes.begin(); it != subscribes.end(); ++it) {
ISrsReloadHandler* subscribe = *it;
if ((ret = subscribe->on_reload_ingest_added(vhost, ingest_id)) != ERROR_SUCCESS) {
srs_error("vhost %s notify subscribes ingest=%s added failed. ret=%d",
vhost.c_str(), ingest_id.c_str(), ret);
return ret;
if ((err = subscribe->on_reload_ingest_added(vhost, ingest_id)) != srs_success) {
return srs_error_wrap(err, "vhost %s notify subscribes ingest=%s added failed", vhost.c_str(), ingest_id.c_str());
}
}
srs_trace("vhost %s reload ingest=%s added success.", vhost.c_str(), ingest_id.c_str());
@ -1895,10 +1872,8 @@ int SrsConfig::reload_ingest(SrsConfDirective* new_vhost, SrsConfDirective* old_
// notice handler ingester removed.
for (it = subscribes.begin(); it != subscribes.end(); ++it) {
ISrsReloadHandler* subscribe = *it;
if ((ret = subscribe->on_reload_ingest_updated(vhost, ingest_id)) != ERROR_SUCCESS) {
srs_error("vhost %s notify subscribes ingest=%s updated failed. ret=%d",
vhost.c_str(), ingest_id.c_str(), ret);
return ret;
if ((err = subscribe->on_reload_ingest_updated(vhost, ingest_id)) != srs_success) {
return srs_error_wrap(err, "vhost %s notify subscribes ingest=%s updated failed", vhost.c_str(), ingest_id.c_str());
}
}
srs_trace("vhost %s reload ingest=%s updated success.", vhost.c_str(), ingest_id.c_str());
@ -1907,7 +1882,7 @@ int SrsConfig::reload_ingest(SrsConfDirective* new_vhost, SrsConfDirective* old_
srs_trace("ingest nothing changed for vhost=%s", vhost.c_str());
return ret;
return err;
}
// see: ngx_get_options
@ -2814,6 +2789,7 @@ int SrsConfig::raw_to_json(SrsJsonObject* obj)
int SrsConfig::raw_set_listen(const vector<string>& eps, bool& applied)
{
int ret = ERROR_SUCCESS;
srs_error_t err = srs_success;
applied = false;
@ -2827,7 +2803,10 @@ int SrsConfig::raw_set_listen(const vector<string>& eps, bool& applied)
// changed, apply and reload.
conf->args = eps;
if ((ret = do_reload_listen()) != ERROR_SUCCESS) {
if ((err = do_reload_listen()) != srs_success) {
// TODO: FIXME: Use error
ret = srs_error_code(err);
srs_freep(err);
return ret;
}
@ -2839,6 +2818,7 @@ int SrsConfig::raw_set_listen(const vector<string>& eps, bool& applied)
int SrsConfig::raw_set_pid(string pid, bool& applied)
{
int ret = ERROR_SUCCESS;
srs_error_t err = srs_success;
applied = false;
@ -2851,7 +2831,10 @@ int SrsConfig::raw_set_pid(string pid, bool& applied)
conf->args.clear();
conf->args.push_back(pid);
if ((ret = do_reload_pid()) != ERROR_SUCCESS) {
if ((err = do_reload_pid()) != srs_success) {
// TODO: FIXME: Use error
ret = srs_error_code(err);
srs_freep(err);
return ret;
}
@ -2907,6 +2890,7 @@ int SrsConfig::raw_set_ff_log_dir(string ff_log_dir, bool& applied)
int SrsConfig::raw_set_srs_log_tank(string srs_log_tank, bool& applied)
{
int ret = ERROR_SUCCESS;
srs_error_t err = srs_success;
applied = false;
@ -2919,7 +2903,10 @@ int SrsConfig::raw_set_srs_log_tank(string srs_log_tank, bool& applied)
conf->args.clear();
conf->args.push_back(srs_log_tank);
if ((ret = do_reload_srs_log_tank()) != ERROR_SUCCESS) {
if ((err = do_reload_srs_log_tank()) != srs_success) {
// TODO: FIXME: Use error
ret = srs_error_code(err);
srs_freep(err);
return ret;
}
@ -2931,6 +2918,7 @@ int SrsConfig::raw_set_srs_log_tank(string srs_log_tank, bool& applied)
int SrsConfig::raw_set_srs_log_level(string srs_log_level, bool& applied)
{
int ret = ERROR_SUCCESS;
srs_error_t err = srs_success;
applied = false;
@ -2943,7 +2931,10 @@ int SrsConfig::raw_set_srs_log_level(string srs_log_level, bool& applied)
conf->args.clear();
conf->args.push_back(srs_log_level);
if ((ret = do_reload_srs_log_level()) != ERROR_SUCCESS) {
if ((err = do_reload_srs_log_level()) != srs_success) {
// TODO: FIXME: Use error
ret = srs_error_code(err);
srs_freep(err);
return ret;
}
@ -2955,6 +2946,7 @@ int SrsConfig::raw_set_srs_log_level(string srs_log_level, bool& applied)
int SrsConfig::raw_set_srs_log_file(string srs_log_file, bool& applied)
{
int ret = ERROR_SUCCESS;
srs_error_t err = srs_success;
applied = false;
@ -2967,7 +2959,10 @@ int SrsConfig::raw_set_srs_log_file(string srs_log_file, bool& applied)
conf->args.clear();
conf->args.push_back(srs_log_file);
if ((ret = do_reload_srs_log_file()) != ERROR_SUCCESS) {
if ((err = do_reload_srs_log_file()) != srs_success) {
// TODO: FIXME: Use error
ret = srs_error_code(err);
srs_freep(err);
return ret;
}
@ -2979,6 +2974,7 @@ int SrsConfig::raw_set_srs_log_file(string srs_log_file, bool& applied)
int SrsConfig::raw_set_max_connections(string max_connections, bool& applied)
{
int ret = ERROR_SUCCESS;
srs_error_t err = srs_success;
applied = false;
@ -2991,7 +2987,10 @@ int SrsConfig::raw_set_max_connections(string max_connections, bool& applied)
conf->args.clear();
conf->args.push_back(max_connections);
if ((ret = do_reload_max_connections()) != ERROR_SUCCESS) {
if ((err = do_reload_max_connections()) != srs_success) {
// TODO: FIXME: Use error
ret = srs_error_code(err);
srs_freep(err);
return ret;
}
@ -3027,6 +3026,7 @@ srs_error_t SrsConfig::raw_set_utc_time(string utc_time, bool& applied)
int SrsConfig::raw_set_pithy_print_ms(string pithy_print_ms, bool& applied)
{
int ret = ERROR_SUCCESS;
srs_error_t err = srs_success;
applied = false;
@ -3039,7 +3039,10 @@ int SrsConfig::raw_set_pithy_print_ms(string pithy_print_ms, bool& applied)
conf->args.clear();
conf->args.push_back(pithy_print_ms);
if ((ret = do_reload_pithy_print_ms()) != ERROR_SUCCESS) {
if ((err = do_reload_pithy_print_ms()) != srs_success) {
// TODO: FIXME: Use error
ret = srs_error_code(err);
srs_freep(err);
return ret;
}
@ -3051,13 +3054,17 @@ int SrsConfig::raw_set_pithy_print_ms(string pithy_print_ms, bool& applied)
int SrsConfig::raw_create_vhost(string vhost, bool& applied)
{
int ret = ERROR_SUCCESS;
srs_error_t err = srs_success;
applied = false;
SrsConfDirective* conf = root->get_or_create("vhost", vhost);
conf->get_or_create("enabled")->set_arg0("on");
if ((ret = do_reload_vhost_added(vhost)) != ERROR_SUCCESS) {
if ((err = do_reload_vhost_added(vhost)) != srs_success) {
// TODO: FIXME: Use error
ret = srs_error_code(err);
srs_freep(err);
return ret;
}
@ -3103,13 +3110,17 @@ int SrsConfig::raw_delete_vhost(string vhost, bool& applied)
int SrsConfig::raw_disable_vhost(string vhost, bool& applied)
{
int ret = ERROR_SUCCESS;
srs_error_t err = srs_success;
applied = false;
SrsConfDirective* conf = root->get("vhost", vhost);
conf->get_or_create("enabled")->set_arg0("off");
if ((ret = do_reload_vhost_removed(vhost)) != ERROR_SUCCESS) {
if ((err = do_reload_vhost_removed(vhost)) != srs_success) {
// TODO: FIXME: Use error
ret = srs_error_code(err);
srs_freep(err);
return ret;
}
@ -3121,13 +3132,17 @@ int SrsConfig::raw_disable_vhost(string vhost, bool& applied)
int SrsConfig::raw_enable_vhost(string vhost, bool& applied)
{
int ret = ERROR_SUCCESS;
srs_error_t err = srs_success;
applied = false;
SrsConfDirective* conf = root->get("vhost", vhost);
conf->get_or_create("enabled")->set_arg0("on");
if ((ret = do_reload_vhost_added(vhost)) != ERROR_SUCCESS) {
if ((err = do_reload_vhost_added(vhost)) != srs_success) {
// TODO: FIXME: Use error
ret = srs_error_code(err);
srs_freep(err);
return ret;
}
@ -3139,6 +3154,7 @@ int SrsConfig::raw_enable_vhost(string vhost, bool& applied)
int SrsConfig::raw_enable_dvr(string vhost, string stream, bool& applied)
{
int ret = ERROR_SUCCESS;
srs_error_t err = srs_success;
applied = false;
@ -3153,7 +3169,10 @@ int SrsConfig::raw_enable_dvr(string vhost, string stream, bool& applied)
conf->args.push_back(stream);
}
if ((ret = do_reload_vhost_dvr_apply(vhost)) != ERROR_SUCCESS) {
if ((err = do_reload_vhost_dvr_apply(vhost)) != srs_success) {
// TODO: FIXME: Use error
ret = srs_error_code(err);
srs_freep(err);
return ret;
}
@ -3165,6 +3184,7 @@ int SrsConfig::raw_enable_dvr(string vhost, string stream, bool& applied)
int SrsConfig::raw_disable_dvr(string vhost, string stream, bool& applied)
{
int ret = ERROR_SUCCESS;
srs_error_t err = srs_success;
applied = false;
@ -3181,7 +3201,10 @@ int SrsConfig::raw_disable_dvr(string vhost, string stream, bool& applied)
conf->args.push_back("none");
}
if ((ret = do_reload_vhost_dvr_apply(vhost)) != ERROR_SUCCESS) {
if ((err = do_reload_vhost_dvr_apply(vhost)) != srs_success) {
// TODO: FIXME: Use error
ret = srs_error_code(err);
srs_freep(err);
return ret;
}
@ -3190,106 +3213,100 @@ int SrsConfig::raw_disable_dvr(string vhost, string stream, bool& applied)
return ret;
}
int SrsConfig::do_reload_listen()
srs_error_t SrsConfig::do_reload_listen()
{
int ret = ERROR_SUCCESS;
srs_error_t err = srs_success;
vector<ISrsReloadHandler*>::iterator it;
for (it = subscribes.begin(); it != subscribes.end(); ++it) {
ISrsReloadHandler* subscribe = *it;
if ((ret = subscribe->on_reload_listen()) != ERROR_SUCCESS) {
srs_error("notify subscribes reload listen failed. ret=%d", ret);
return ret;
if ((err = subscribe->on_reload_listen()) != srs_success) {
return srs_error_wrap(err, "notify subscribes reload listen failed");
}
}
srs_trace("reload listen success.");
return ret;
return err;
}
int SrsConfig::do_reload_pid()
srs_error_t SrsConfig::do_reload_pid()
{
int ret = ERROR_SUCCESS;
srs_error_t err = srs_success;
vector<ISrsReloadHandler*>::iterator it;
for (it = subscribes.begin(); it != subscribes.end(); ++it) {
ISrsReloadHandler* subscribe = *it;
if ((ret = subscribe->on_reload_pid()) != ERROR_SUCCESS) {
srs_error("notify subscribes reload pid failed. ret=%d", ret);
return ret;
if ((err = subscribe->on_reload_pid()) != srs_success) {
return srs_error_wrap(err, "notify subscribes reload pid failed");
}
}
srs_trace("reload pid success.");
return ret;
return err;
}
int SrsConfig::do_reload_srs_log_tank()
srs_error_t SrsConfig::do_reload_srs_log_tank()
{
int ret = ERROR_SUCCESS;
srs_error_t err = srs_success;
vector<ISrsReloadHandler*>::iterator it;
for (it = subscribes.begin(); it != subscribes.end(); ++it) {
ISrsReloadHandler* subscribe = *it;
if ((ret = subscribe->on_reload_log_tank()) != ERROR_SUCCESS) {
srs_error("notify subscribes reload srs_log_tank failed. ret=%d", ret);
return ret;
if ((err = subscribe->on_reload_log_tank()) != srs_success) {
return srs_error_wrap(err, "notify subscribes reload srs_log_tank failed");
}
}
srs_trace("reload srs_log_tank success.");
return ret;
return err;
}
int SrsConfig::do_reload_srs_log_level()
srs_error_t SrsConfig::do_reload_srs_log_level()
{
int ret = ERROR_SUCCESS;
srs_error_t err = srs_success;
vector<ISrsReloadHandler*>::iterator it;
for (it = subscribes.begin(); it != subscribes.end(); ++it) {
ISrsReloadHandler* subscribe = *it;
if ((ret = subscribe->on_reload_log_level()) != ERROR_SUCCESS) {
srs_error("notify subscribes reload srs_log_level failed. ret=%d", ret);
return ret;
if ((err = subscribe->on_reload_log_level()) != srs_success) {
return srs_error_wrap(err, "notify subscribes reload srs_log_level failed");
}
}
srs_trace("reload srs_log_level success.");
return ret;
return err;
}
int SrsConfig::do_reload_srs_log_file()
srs_error_t SrsConfig::do_reload_srs_log_file()
{
int ret = ERROR_SUCCESS;
srs_error_t err = srs_success;
vector<ISrsReloadHandler*>::iterator it;
for (it = subscribes.begin(); it != subscribes.end(); ++it) {
ISrsReloadHandler* subscribe = *it;
if ((ret = subscribe->on_reload_log_file()) != ERROR_SUCCESS) {
srs_error("notify subscribes reload srs_log_file failed. ret=%d", ret);
return ret;
if ((err = subscribe->on_reload_log_file()) != srs_success) {
return srs_error_wrap(err, "notify subscribes reload srs_log_file failed");
}
}
srs_trace("reload srs_log_file success.");
return ret;
return err;
}
int SrsConfig::do_reload_max_connections()
srs_error_t SrsConfig::do_reload_max_connections()
{
int ret = ERROR_SUCCESS;
srs_error_t err = srs_success;
vector<ISrsReloadHandler*>::iterator it;
for (it = subscribes.begin(); it != subscribes.end(); ++it) {
ISrsReloadHandler* subscribe = *it;
if ((ret = subscribe->on_reload_max_conns()) != ERROR_SUCCESS) {
srs_error("notify subscribes reload max_connections failed. ret=%d", ret);
return ret;
if ((err = subscribe->on_reload_max_conns()) != srs_success) {
return srs_error_wrap(err, "notify subscribes reload max_connections failed");
}
}
srs_trace("reload max_connections success.");
return ret;
return err;
}
srs_error_t SrsConfig::do_reload_utc_time()
@ -3308,78 +3325,73 @@ srs_error_t SrsConfig::do_reload_utc_time()
return err;
}
int SrsConfig::do_reload_pithy_print_ms()
srs_error_t SrsConfig::do_reload_pithy_print_ms()
{
int ret = ERROR_SUCCESS;
srs_error_t err = srs_success;
vector<ISrsReloadHandler*>::iterator it;
for (it = subscribes.begin(); it != subscribes.end(); ++it) {
ISrsReloadHandler* subscribe = *it;
if ((ret = subscribe->on_reload_pithy_print()) != ERROR_SUCCESS) {
srs_error("notify subscribes pithy_print_ms failed. ret=%d", ret);
return ret;
if ((err = subscribe->on_reload_pithy_print()) != srs_success) {
return srs_error_wrap(err, "notify subscribes pithy_print_ms failed");
}
}
srs_trace("reload pithy_print_ms success.");
return ret;
return err;
}
int SrsConfig::do_reload_vhost_added(string vhost)
srs_error_t SrsConfig::do_reload_vhost_added(string vhost)
{
int ret = ERROR_SUCCESS;
srs_error_t err = srs_success;
srs_trace("vhost %s added, reload it.", vhost.c_str());
vector<ISrsReloadHandler*>::iterator it;
for (it = subscribes.begin(); it != subscribes.end(); ++it) {
ISrsReloadHandler* subscribe = *it;
if ((ret = subscribe->on_reload_vhost_added(vhost)) != ERROR_SUCCESS) {
srs_error("notify subscribes added vhost %s failed. ret=%d", vhost.c_str(), ret);
return ret;
if ((err = subscribe->on_reload_vhost_added(vhost)) != srs_success) {
return srs_error_wrap(err, "notify subscribes added vhost %s failed", vhost.c_str());
}
}
srs_trace("reload new vhost %s success.", vhost.c_str());
return ret;
return err;
}
int SrsConfig::do_reload_vhost_removed(string vhost)
srs_error_t SrsConfig::do_reload_vhost_removed(string vhost)
{
int ret = ERROR_SUCCESS;
srs_error_t err = srs_success;
srs_trace("vhost %s removed, reload it.", vhost.c_str());
vector<ISrsReloadHandler*>::iterator it;
for (it = subscribes.begin(); it != subscribes.end(); ++it) {
ISrsReloadHandler* subscribe = *it;
if ((ret = subscribe->on_reload_vhost_removed(vhost)) != ERROR_SUCCESS) {
srs_error("notify subscribes removed "
"vhost %s failed. ret=%d", vhost.c_str(), ret);
return ret;
if ((err = subscribe->on_reload_vhost_removed(vhost)) != srs_success) {
return srs_error_wrap(err, "notify subscribes removed vhost %s failed", vhost.c_str());
}
}
srs_trace("reload removed vhost %s success.", vhost.c_str());
return ret;
return err;
}
int SrsConfig::do_reload_vhost_dvr_apply(string vhost)
srs_error_t SrsConfig::do_reload_vhost_dvr_apply(string vhost)
{
int ret = ERROR_SUCCESS;
srs_error_t err = srs_success;
vector<ISrsReloadHandler*>::iterator it;
for (it = subscribes.begin(); it != subscribes.end(); ++it) {
ISrsReloadHandler* subscribe = *it;
if ((ret = subscribe->on_reload_vhost_dvr_apply(vhost)) != ERROR_SUCCESS) {
srs_error("vhost %s notify subscribes dvr_apply failed. ret=%d", vhost.c_str(), ret);
return ret;
if ((err = subscribe->on_reload_vhost_dvr_apply(vhost)) != srs_success) {
return srs_error_wrap(err, "vhost %s notify subscribes dvr_apply failed", vhost.c_str());
}
}
srs_trace("vhost %s reload dvr_apply success.", vhost.c_str());
return ret;
return err;
}
string SrsConfig::config()