winlin

fix #79, fix the reload remove edge assert bug. 0.9.189.

@@ -207,6 +207,7 @@ Supported operating systems and hardware: @@ -207,6 +207,7 @@ Supported operating systems and hardware:
207 * 2013-10-17, Created.<br/> 207 * 2013-10-17, Created.<br/>
208 208
209 ## History 209 ## History
  210 +* v1.0, 2014-08-03, fix [#79](https://github.com/winlinvip/simple-rtmp-server/issues/79), fix the reload remove edge assert bug. 0.9.189.
210 * v1.0, 2014-08-03, fix [#57](https://github.com/winlinvip/simple-rtmp-server/issues/57), use lock(acquire/release publish) to avoid duplicated publishing. 0.9.188. 211 * v1.0, 2014-08-03, fix [#57](https://github.com/winlinvip/simple-rtmp-server/issues/57), use lock(acquire/release publish) to avoid duplicated publishing. 0.9.188.
211 * v1.0, 2014-08-03, fix [#85](https://github.com/winlinvip/simple-rtmp-server/issues/85), fix the segment-dvr sequence header missing. 0.9.187. 212 * v1.0, 2014-08-03, fix [#85](https://github.com/winlinvip/simple-rtmp-server/issues/85), fix the segment-dvr sequence header missing. 0.9.187.
212 * v1.0, 2014-08-03, fix [#145](https://github.com/winlinvip/simple-rtmp-server/issues/145), refine ffmpeg log, check abitrate for libaacplus. 0.9.186. 213 * v1.0, 2014-08-03, fix [#145](https://github.com/winlinvip/simple-rtmp-server/issues/145), refine ffmpeg log, check abitrate for libaacplus. 0.9.186.
@@ -279,7 +279,15 @@ int SrsEdgeIngester::connect_server() @@ -279,7 +279,15 @@ int SrsEdgeIngester::connect_server()
279 close_underlayer_socket(); 279 close_underlayer_socket();
280 280
281 SrsConfDirective* conf = _srs_config->get_vhost_edge_origin(_req->vhost); 281 SrsConfDirective* conf = _srs_config->get_vhost_edge_origin(_req->vhost);
282 - srs_assert(conf); 282 +
  283 + // @see https://github.com/winlinvip/simple-rtmp-server/issues/79
  284 + // when origin is error, for instance, server is shutdown,
  285 + // then user remove the vhost then reload, the conf is empty.
  286 + if (!conf) {
  287 + ret = ERROR_EDGE_VHOST_REMOVED;
  288 + srs_warn("vhost %s removed. ret=%d", _req->vhost.c_str(), ret);
  289 + return ret;
  290 + }
283 291
284 // select the origin. 292 // select the origin.
285 std::string server = conf->args.at(origin_index % conf->args.size()); 293 std::string server = conf->args.at(origin_index % conf->args.size());
@@ -31,7 +31,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. @@ -31,7 +31,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
31 // current release version 31 // current release version
32 #define VERSION_MAJOR "0" 32 #define VERSION_MAJOR "0"
33 #define VERSION_MINOR "9" 33 #define VERSION_MINOR "9"
34 -#define VERSION_REVISION "188" 34 +#define VERSION_REVISION "189"
35 #define RTMP_SIG_SRS_VERSION VERSION_MAJOR"."VERSION_MINOR"."VERSION_REVISION 35 #define RTMP_SIG_SRS_VERSION VERSION_MAJOR"."VERSION_MINOR"."VERSION_REVISION
36 // server info. 36 // server info.
37 #define RTMP_SIG_SRS_KEY "SRS" 37 #define RTMP_SIG_SRS_KEY "SRS"
@@ -180,6 +180,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. @@ -180,6 +180,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
180 #define ERROR_KERNEL_FLV_HEADER 3036 180 #define ERROR_KERNEL_FLV_HEADER 3036
181 #define ERROR_KERNEL_FLV_STREAM_CLOSED 3037 181 #define ERROR_KERNEL_FLV_STREAM_CLOSED 3037
182 #define ERROR_KERNEL_STREAM_INIT 3038 182 #define ERROR_KERNEL_STREAM_INIT 3038
  183 +#define ERROR_EDGE_VHOST_REMOVED 3039
183 184
184 /** 185 /**
185 * whether the error code is an system control error. 186 * whether the error code is an system control error.