Skip to content

Commit

Permalink
workaround for #511, the fly stfd in close. 2.0.211
Browse files Browse the repository at this point in the history
  • Loading branch information
winlinvip committed Sep 1, 2016
1 parent a0890fe commit e2865c6
Show file tree
Hide file tree
Showing 5 changed files with 12 additions and 10 deletions.
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -340,6 340,7 @@ Remark:

## History

* v2.0, 2016-09-01, workaround [bug #511] the fly stfd in close. 2.0.211
* v2.0, 2016-08-30, comment the pcr.
* v2.0, 2016-08-18, fix [srs-librtmp#4](https://github.com/ossrs/srs-librtmp/issues/4) filter frame.
* v2.0, 2016-08-10, fix socket timeout for librtmp.
Expand Down Expand Up @@ -1231,6 1232,7 @@ Winlin
[bug #546]: https://github.com/ossrs/srs/issues/546
[bug #418]: https://github.com/ossrs/srs/issues/418
[bug #509]: https://github.com/ossrs/srs/issues/509
[bug #511]: https://github.com/ossrs/srs/issues/511
[bug #xxxxxxxxxx]: https://github.com/ossrs/srs/issues/xxxxxxxxxx

[exo #828]: https://github.com/google/ExoPlayer/pull/828
Expand Down
7 changes: 5 additions & 2 deletions trunk/src/app/srs_app_rtmp_conn.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -225,8 225,11 @@ int SrsRtmpConn::on_reload_vhost_removed(string vhost)
// if the vhost connected is removed, disconnect the client.
srs_trace("vhost %s removed/disabled, close client url=%s",
vhost.c_str(), req->get_stream_url().c_str());

srs_close_stfd(stfd);

// should never close the fd in another thread,
// one fd should managed by one thread, we should use interrupt instead.
// so we just ignore the vhost enabled event.
//srs_close_stfd(stfd);

return ret;
}
Expand Down
10 changes: 3 additions & 7 deletions trunk/src/app/srs_app_st.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -234,13 234,9 @@ int srs_st_init()
void srs_close_stfd(st_netfd_t& stfd)
{
if (stfd) {
int fd = st_netfd_fileno(stfd);
st_netfd_close(stfd);
stfd = NULL;

// st does not close it sometimes,
// close it manually.
close(fd);
// we must ensure the close is ok.
int err = st_netfd_close(stfd);
srs_assert(err != -1);
}
}

1 change: 1 addition & 0 deletions trunk/src/app/srs_app_st.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 75,7 @@ class SrsStSocket : public ISrsProtocolReaderWriter
extern int srs_st_init();

// close the netfd, and close the underlayer fd.
// @remark when close, user must ensure io completed.
extern void srs_close_stfd(st_netfd_t& stfd);

#endif
Expand Down
2 changes: 1 addition & 1 deletion trunk/src/core/srs_core.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 31,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
// current release version
#define VERSION_MAJOR 2
#define VERSION_MINOR 0
#define VERSION_REVISION 210
#define VERSION_REVISION 211

// generated by configure, only macros.
#include <srs_auto_headers.hpp>
Expand Down

0 comments on commit e2865c6

Please sign in to comment.