refactor bandwidth test, refactor the interface of bandwidth server object.
正在显示
4 个修改的文件
包含
45 行增加
和
37 行删除
| @@ -90,10 +90,10 @@ public: | @@ -90,10 +90,10 @@ public: | ||
| 90 | */ | 90 | */ |
| 91 | int size; | 91 | int size; |
| 92 | char* bytes; | 92 | char* bytes; |
| 93 | - | 93 | +public: |
| 94 | SrsCodecBuffer(); | 94 | SrsCodecBuffer(); |
| 95 | void append(void* data, int len); | 95 | void append(void* data, int len); |
| 96 | - | 96 | +public: |
| 97 | /** | 97 | /** |
| 98 | * free the bytes, | 98 | * free the bytes, |
| 99 | * user can invoke it to free the bytes, | 99 | * user can invoke it to free the bytes, |
| @@ -39,29 +39,31 @@ using namespace std; | @@ -39,29 +39,31 @@ using namespace std; | ||
| 39 | 39 | ||
| 40 | SrsBandwidth::SrsBandwidth() | 40 | SrsBandwidth::SrsBandwidth() |
| 41 | { | 41 | { |
| 42 | + _req = NULL; | ||
| 43 | + _rtmp = NULL; | ||
| 42 | } | 44 | } |
| 43 | 45 | ||
| 44 | SrsBandwidth::~SrsBandwidth() | 46 | SrsBandwidth::~SrsBandwidth() |
| 45 | { | 47 | { |
| 46 | } | 48 | } |
| 47 | 49 | ||
| 48 | -int SrsBandwidth::bandwidth_test(SrsRequest* _req, st_netfd_t stfd, SrsRtmpServer* _rtmp) | 50 | +int SrsBandwidth::bandwidth_check(SrsRtmpServer* rtmp, SrsRequest* req, string local_ip) |
| 49 | { | 51 | { |
| 50 | int ret = ERROR_SUCCESS; | 52 | int ret = ERROR_SUCCESS; |
| 51 | 53 | ||
| 52 | - rtmp = _rtmp; | ||
| 53 | - req = _req; | 54 | + _rtmp = rtmp; |
| 55 | + _req = req; | ||
| 54 | 56 | ||
| 55 | - if (!_srs_config->get_bw_check_enabled(req->vhost)) { | 57 | + if (!_srs_config->get_bw_check_enabled(_req->vhost)) { |
| 56 | return ret; | 58 | return ret; |
| 57 | } | 59 | } |
| 58 | 60 | ||
| 59 | // validate the bandwidth check key | 61 | // validate the bandwidth check key |
| 60 | - std::string key = "key=" + _srs_config->get_bw_check_key(req->vhost); | ||
| 61 | - if (req->tcUrl.find(key) == std::string::npos) { | 62 | + std::string key = "key=" + _srs_config->get_bw_check_key(_req->vhost); |
| 63 | + if (_req->tcUrl.find(key) == std::string::npos) { | ||
| 62 | ret = ERROR_SYSTEM_BANDWIDTH_KEY; | 64 | ret = ERROR_SYSTEM_BANDWIDTH_KEY; |
| 63 | srs_error("check the vhost=%s %s failed, tcUrl=%s, ret=%d", | 65 | srs_error("check the vhost=%s %s failed, tcUrl=%s, ret=%d", |
| 64 | - req->vhost.c_str(), key.c_str(), req->tcUrl.c_str(), ret); | 66 | + _req->vhost.c_str(), key.c_str(), _req->tcUrl.c_str(), ret); |
| 65 | return ret; | 67 | return ret; |
| 66 | } | 68 | } |
| 67 | 69 | ||
| @@ -70,7 +72,7 @@ int SrsBandwidth::bandwidth_test(SrsRequest* _req, st_netfd_t stfd, SrsRtmpServe | @@ -70,7 +72,7 @@ int SrsBandwidth::bandwidth_test(SrsRequest* _req, st_netfd_t stfd, SrsRtmpServe | ||
| 70 | // if client request check in the window(specifeid by interval), | 72 | // if client request check in the window(specifeid by interval), |
| 71 | // directly reject the request. | 73 | // directly reject the request. |
| 72 | static int64_t last_check_time = 0; | 74 | static int64_t last_check_time = 0; |
| 73 | - int interval_ms = _srs_config->get_bw_check_interval_ms(req->vhost); | 75 | + int interval_ms = _srs_config->get_bw_check_interval_ms(_req->vhost); |
| 74 | 76 | ||
| 75 | int64_t time_now = srs_get_system_time_ms(); | 77 | int64_t time_now = srs_get_system_time_ms(); |
| 76 | // reject the connection in the interval window. | 78 | // reject the connection in the interval window. |
| @@ -80,15 +82,14 @@ int SrsBandwidth::bandwidth_test(SrsRequest* _req, st_netfd_t stfd, SrsRtmpServe | @@ -80,15 +82,14 @@ int SrsBandwidth::bandwidth_test(SrsRequest* _req, st_netfd_t stfd, SrsRtmpServe | ||
| 80 | "last_check=%"PRId64", now=%"PRId64", interval=%d", | 82 | "last_check=%"PRId64", now=%"PRId64", interval=%d", |
| 81 | last_check_time, time_now, interval_ms); | 83 | last_check_time, time_now, interval_ms); |
| 82 | 84 | ||
| 83 | - rtmp->response_connect_reject(req, "bandcheck rejected"); | 85 | + _rtmp->response_connect_reject(_req, "bandcheck rejected"); |
| 84 | return ret; | 86 | return ret; |
| 85 | } | 87 | } |
| 86 | 88 | ||
| 87 | // accept and do bandwidth check. | 89 | // accept and do bandwidth check. |
| 88 | last_check_time = time_now; | 90 | last_check_time = time_now; |
| 89 | 91 | ||
| 90 | - std::string local_ip = srs_get_local_ip(st_netfd_fileno(stfd)); | ||
| 91 | - if ((ret = rtmp->response_connect_app(req, local_ip.c_str())) != ERROR_SUCCESS) { | 92 | + if ((ret = _rtmp->response_connect_app(_req, local_ip.c_str())) != ERROR_SUCCESS) { |
| 92 | srs_error("response connect app failed. ret=%d", ret); | 93 | srs_error("response connect app failed. ret=%d", ret); |
| 93 | return ret; | 94 | return ret; |
| 94 | } | 95 | } |
| @@ -110,7 +111,7 @@ int SrsBandwidth::do_bandwidth_check() | @@ -110,7 +111,7 @@ int SrsBandwidth::do_bandwidth_check() | ||
| 110 | int publish_actual_duration_ms = 0; | 111 | int publish_actual_duration_ms = 0; |
| 111 | int publish_bytes = 0; | 112 | int publish_bytes = 0; |
| 112 | 113 | ||
| 113 | - int limit_kbps = _srs_config->get_bw_check_limit_kbps(req->vhost); | 114 | + int limit_kbps = _srs_config->get_bw_check_limit_kbps(_req->vhost); |
| 114 | 115 | ||
| 115 | int64_t start_time = srs_get_system_time_ms(); | 116 | int64_t start_time = srs_get_system_time_ms(); |
| 116 | 117 | ||
| @@ -135,7 +136,7 @@ int SrsBandwidth::do_bandwidth_check() | @@ -135,7 +136,7 @@ int SrsBandwidth::do_bandwidth_check() | ||
| 135 | srs_trace("bandwidth check finished. start=%"PRId64"ms, end=%"PRId64"ms, " | 136 | srs_trace("bandwidth check finished. start=%"PRId64"ms, end=%"PRId64"ms, " |
| 136 | "duartion=%dms, play=%dkbps, publish=%dkbps, tcUrl=%s, ret=%#x", | 137 | "duartion=%dms, play=%dkbps, publish=%dkbps, tcUrl=%s, ret=%#x", |
| 137 | start_time, end_time, (int)(end_time - start_time), play_kbps, publish_kbps, | 138 | start_time, end_time, (int)(end_time - start_time), play_kbps, publish_kbps, |
| 138 | - req->tcUrl.c_str(), ret); | 139 | + _req->tcUrl.c_str(), ret); |
| 139 | 140 | ||
| 140 | // send finished msg | 141 | // send finished msg |
| 141 | SrsBandwidthPacket* pkt = SrsBandwidthPacket::create_finish(); | 142 | SrsBandwidthPacket* pkt = SrsBandwidthPacket::create_finish(); |
| @@ -149,7 +150,7 @@ int SrsBandwidth::do_bandwidth_check() | @@ -149,7 +150,7 @@ int SrsBandwidth::do_bandwidth_check() | ||
| 149 | pkt->data->set("publish_bytes", SrsAmf0Any::number(publish_bytes)); | 150 | pkt->data->set("publish_bytes", SrsAmf0Any::number(publish_bytes)); |
| 150 | pkt->data->set("publish_time", SrsAmf0Any::number(publish_actual_duration_ms)); | 151 | pkt->data->set("publish_time", SrsAmf0Any::number(publish_actual_duration_ms)); |
| 151 | 152 | ||
| 152 | - if ((ret = rtmp->send_and_free_packet(pkt, 0)) != ERROR_SUCCESS) { | 153 | + if ((ret = _rtmp->send_and_free_packet(pkt, 0)) != ERROR_SUCCESS) { |
| 153 | srs_error("send bandwidth check finish message failed. ret=%d", ret); | 154 | srs_error("send bandwidth check finish message failed. ret=%d", ret); |
| 154 | return ret; | 155 | return ret; |
| 155 | } | 156 | } |
| @@ -158,7 +159,7 @@ int SrsBandwidth::do_bandwidth_check() | @@ -158,7 +159,7 @@ int SrsBandwidth::do_bandwidth_check() | ||
| 158 | while (true) { | 159 | while (true) { |
| 159 | SrsMessage* msg = NULL; | 160 | SrsMessage* msg = NULL; |
| 160 | SrsBandwidthPacket* pkt = NULL; | 161 | SrsBandwidthPacket* pkt = NULL; |
| 161 | - if ((ret = rtmp->expect_message<SrsBandwidthPacket>(&msg, &pkt)) != ERROR_SUCCESS) { | 162 | + if ((ret = _rtmp->expect_message<SrsBandwidthPacket>(&msg, &pkt)) != ERROR_SUCCESS) { |
| 162 | // info level to ignore and return success. | 163 | // info level to ignore and return success. |
| 163 | srs_info("expect final message failed. ret=%d", ret); | 164 | srs_info("expect final message failed. ret=%d", ret); |
| 164 | return ERROR_SUCCESS; | 165 | return ERROR_SUCCESS; |
| @@ -191,7 +192,7 @@ int SrsBandwidth::check_play( | @@ -191,7 +192,7 @@ int SrsBandwidth::check_play( | ||
| 191 | pkt->data->set("duration_ms", SrsAmf0Any::number(duration_ms)); | 192 | pkt->data->set("duration_ms", SrsAmf0Any::number(duration_ms)); |
| 192 | pkt->data->set("interval_ms", SrsAmf0Any::number(interval_ms)); | 193 | pkt->data->set("interval_ms", SrsAmf0Any::number(interval_ms)); |
| 193 | 194 | ||
| 194 | - if ((ret = rtmp->send_and_free_packet(pkt, 0)) != ERROR_SUCCESS) { | 195 | + if ((ret = _rtmp->send_and_free_packet(pkt, 0)) != ERROR_SUCCESS) { |
| 195 | srs_error("send bandwidth check start play message failed. ret=%d", ret); | 196 | srs_error("send bandwidth check start play message failed. ret=%d", ret); |
| 196 | return ret; | 197 | return ret; |
| 197 | } | 198 | } |
| @@ -202,7 +203,7 @@ int SrsBandwidth::check_play( | @@ -202,7 +203,7 @@ int SrsBandwidth::check_play( | ||
| 202 | // recv client's starting play response | 203 | // recv client's starting play response |
| 203 | SrsMessage* msg = NULL; | 204 | SrsMessage* msg = NULL; |
| 204 | SrsBandwidthPacket* pkt = NULL; | 205 | SrsBandwidthPacket* pkt = NULL; |
| 205 | - if ((ret = rtmp->expect_message<SrsBandwidthPacket>(&msg, &pkt)) != ERROR_SUCCESS) { | 206 | + if ((ret = _rtmp->expect_message<SrsBandwidthPacket>(&msg, &pkt)) != ERROR_SUCCESS) { |
| 206 | srs_error("expect bandwidth message failed. ret=%d", ret); | 207 | srs_error("expect bandwidth message failed. ret=%d", ret); |
| 207 | return ret; | 208 | return ret; |
| 208 | } | 209 | } |
| @@ -224,7 +225,7 @@ int SrsBandwidth::check_play( | @@ -224,7 +225,7 @@ int SrsBandwidth::check_play( | ||
| 224 | 225 | ||
| 225 | int interval = 0; | 226 | int interval = 0; |
| 226 | int data_count = 1; | 227 | int data_count = 1; |
| 227 | - while ( (srs_get_system_time_ms() - current_time) < duration_ms ) { | 228 | + while ((srs_get_system_time_ms() - current_time) < duration_ms) { |
| 228 | st_usleep(interval); | 229 | st_usleep(interval); |
| 229 | 230 | ||
| 230 | // TODO: FIXME: use shared ptr message. | 231 | // TODO: FIXME: use shared ptr message. |
| @@ -234,15 +235,15 @@ int SrsBandwidth::check_play( | @@ -234,15 +235,15 @@ int SrsBandwidth::check_play( | ||
| 234 | for (int i = 0; i < data_count; ++i) { | 235 | for (int i = 0; i < data_count; ++i) { |
| 235 | std::stringstream seq; | 236 | std::stringstream seq; |
| 236 | seq << i; | 237 | seq << i; |
| 237 | - std::string play_data = "SrS band check data from server's playing......"; | 238 | + std::string play_data = "SRS band check data from server's playing......"; |
| 238 | pkt->data->set(seq.str(), SrsAmf0Any::str(play_data.c_str())); | 239 | pkt->data->set(seq.str(), SrsAmf0Any::str(play_data.c_str())); |
| 239 | } | 240 | } |
| 240 | data_count += 2; | 241 | data_count += 2; |
| 241 | 242 | ||
| 242 | // get length from the rtmp protocol stack. | 243 | // get length from the rtmp protocol stack. |
| 243 | - play_bytes = rtmp->get_send_bytes(); | 244 | + play_bytes = _rtmp->get_send_bytes(); |
| 244 | 245 | ||
| 245 | - if ((ret = rtmp->send_and_free_packet(pkt, 0)) != ERROR_SUCCESS) { | 246 | + if ((ret = _rtmp->send_and_free_packet(pkt, 0)) != ERROR_SUCCESS) { |
| 246 | srs_error("send bandwidth check play messages failed. ret=%d", ret); | 247 | srs_error("send bandwidth check play messages failed. ret=%d", ret); |
| 247 | return ret; | 248 | return ret; |
| 248 | } | 249 | } |
| @@ -272,7 +273,7 @@ int SrsBandwidth::check_play( | @@ -272,7 +273,7 @@ int SrsBandwidth::check_play( | ||
| 272 | pkt->data->set("duration_delta", SrsAmf0Any::number(actual_duration_ms)); | 273 | pkt->data->set("duration_delta", SrsAmf0Any::number(actual_duration_ms)); |
| 273 | pkt->data->set("bytes_delta", SrsAmf0Any::number(play_bytes)); | 274 | pkt->data->set("bytes_delta", SrsAmf0Any::number(play_bytes)); |
| 274 | 275 | ||
| 275 | - if ((ret = rtmp->send_and_free_packet(pkt, 0)) != ERROR_SUCCESS) { | 276 | + if ((ret = _rtmp->send_and_free_packet(pkt, 0)) != ERROR_SUCCESS) { |
| 276 | srs_error("send bandwidth check stop play message failed. ret=%d", ret); | 277 | srs_error("send bandwidth check stop play message failed. ret=%d", ret); |
| 277 | return ret; | 278 | return ret; |
| 278 | } | 279 | } |
| @@ -283,7 +284,7 @@ int SrsBandwidth::check_play( | @@ -283,7 +284,7 @@ int SrsBandwidth::check_play( | ||
| 283 | // recv client's stop play response. | 284 | // recv client's stop play response. |
| 284 | SrsMessage* msg = NULL; | 285 | SrsMessage* msg = NULL; |
| 285 | SrsBandwidthPacket* pkt = NULL; | 286 | SrsBandwidthPacket* pkt = NULL; |
| 286 | - if ((ret = rtmp->expect_message<SrsBandwidthPacket>(&msg, &pkt)) != ERROR_SUCCESS) { | 287 | + if ((ret = _rtmp->expect_message<SrsBandwidthPacket>(&msg, &pkt)) != ERROR_SUCCESS) { |
| 287 | srs_error("expect bandwidth message failed. ret=%d", ret); | 288 | srs_error("expect bandwidth message failed. ret=%d", ret); |
| 288 | return ret; | 289 | return ret; |
| 289 | } | 290 | } |
| @@ -313,7 +314,7 @@ int SrsBandwidth::check_publish( | @@ -313,7 +314,7 @@ int SrsBandwidth::check_publish( | ||
| 313 | pkt->data->set("duration_ms", SrsAmf0Any::number(duration_ms)); | 314 | pkt->data->set("duration_ms", SrsAmf0Any::number(duration_ms)); |
| 314 | pkt->data->set("interval_ms", SrsAmf0Any::number(interval_ms)); | 315 | pkt->data->set("interval_ms", SrsAmf0Any::number(interval_ms)); |
| 315 | 316 | ||
| 316 | - if ((ret = rtmp->send_and_free_packet(pkt, 0)) != ERROR_SUCCESS) { | 317 | + if ((ret = _rtmp->send_and_free_packet(pkt, 0)) != ERROR_SUCCESS) { |
| 317 | srs_error("send bandwidth check start publish message failed. ret=%d", ret); | 318 | srs_error("send bandwidth check start publish message failed. ret=%d", ret); |
| 318 | return ret; | 319 | return ret; |
| 319 | } | 320 | } |
| @@ -324,7 +325,7 @@ int SrsBandwidth::check_publish( | @@ -324,7 +325,7 @@ int SrsBandwidth::check_publish( | ||
| 324 | // read client's notification of starting publish | 325 | // read client's notification of starting publish |
| 325 | SrsMessage* msg = NULL; | 326 | SrsMessage* msg = NULL; |
| 326 | SrsBandwidthPacket* pkt = NULL; | 327 | SrsBandwidthPacket* pkt = NULL; |
| 327 | - if ((ret = rtmp->expect_message<SrsBandwidthPacket>(&msg, &pkt)) != ERROR_SUCCESS) { | 328 | + if ((ret = _rtmp->expect_message<SrsBandwidthPacket>(&msg, &pkt)) != ERROR_SUCCESS) { |
| 328 | srs_error("expect bandwidth message failed. ret=%d", ret); | 329 | srs_error("expect bandwidth message failed. ret=%d", ret); |
| 329 | return ret; | 330 | return ret; |
| 330 | } | 331 | } |
| @@ -344,13 +345,13 @@ int SrsBandwidth::check_publish( | @@ -344,13 +345,13 @@ int SrsBandwidth::check_publish( | ||
| 344 | st_usleep(0); | 345 | st_usleep(0); |
| 345 | 346 | ||
| 346 | SrsMessage* msg = NULL; | 347 | SrsMessage* msg = NULL; |
| 347 | - if ((ret = rtmp->recv_message(&msg)) != ERROR_SUCCESS) { | 348 | + if ((ret = _rtmp->recv_message(&msg)) != ERROR_SUCCESS) { |
| 348 | srs_error("recv message failed. ret=%d", ret); | 349 | srs_error("recv message failed. ret=%d", ret); |
| 349 | return ret; | 350 | return ret; |
| 350 | } | 351 | } |
| 351 | SrsAutoFree(SrsMessage, msg); | 352 | SrsAutoFree(SrsMessage, msg); |
| 352 | 353 | ||
| 353 | - publish_bytes = rtmp->get_recv_bytes(); | 354 | + publish_bytes = _rtmp->get_recv_bytes(); |
| 354 | 355 | ||
| 355 | int kbps = 0; | 356 | int kbps = 0; |
| 356 | while (true) { | 357 | while (true) { |
| @@ -375,7 +376,7 @@ int SrsBandwidth::check_publish( | @@ -375,7 +376,7 @@ int SrsBandwidth::check_publish( | ||
| 375 | pkt->data->set("duration_delta", SrsAmf0Any::number(actual_duration_ms)); | 376 | pkt->data->set("duration_delta", SrsAmf0Any::number(actual_duration_ms)); |
| 376 | pkt->data->set("bytes_delta", SrsAmf0Any::number(publish_bytes)); | 377 | pkt->data->set("bytes_delta", SrsAmf0Any::number(publish_bytes)); |
| 377 | 378 | ||
| 378 | - if ((ret = rtmp->send_and_free_packet(pkt, 0)) != ERROR_SUCCESS) { | 379 | + if ((ret = _rtmp->send_and_free_packet(pkt, 0)) != ERROR_SUCCESS) { |
| 379 | srs_error("send bandwidth check stop publish message failed. ret=%d", ret); | 380 | srs_error("send bandwidth check stop publish message failed. ret=%d", ret); |
| 380 | return ret; | 381 | return ret; |
| 381 | } | 382 | } |
| @@ -392,7 +393,7 @@ int SrsBandwidth::check_publish( | @@ -392,7 +393,7 @@ int SrsBandwidth::check_publish( | ||
| 392 | // recv client's stop publish response. | 393 | // recv client's stop publish response. |
| 393 | SrsMessage* msg = NULL; | 394 | SrsMessage* msg = NULL; |
| 394 | SrsBandwidthPacket* pkt = NULL; | 395 | SrsBandwidthPacket* pkt = NULL; |
| 395 | - if ((ret = rtmp->expect_message<SrsBandwidthPacket>(&msg, &pkt)) != ERROR_SUCCESS) { | 396 | + if ((ret = _rtmp->expect_message<SrsBandwidthPacket>(&msg, &pkt)) != ERROR_SUCCESS) { |
| 396 | srs_error("expect bandwidth message failed. ret=%d", ret); | 397 | srs_error("expect bandwidth message failed. ret=%d", ret); |
| 397 | return ret; | 398 | return ret; |
| 398 | } | 399 | } |
| @@ -29,6 +29,8 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | @@ -29,6 +29,8 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | ||
| 29 | */ | 29 | */ |
| 30 | #include <srs_core.hpp> | 30 | #include <srs_core.hpp> |
| 31 | 31 | ||
| 32 | +#include <string> | ||
| 33 | + | ||
| 32 | #include <srs_app_st.hpp> | 34 | #include <srs_app_st.hpp> |
| 33 | 35 | ||
| 34 | class SrsRequest; | 36 | class SrsRequest; |
| @@ -73,16 +75,19 @@ class SrsRtmpServer; | @@ -73,16 +75,19 @@ class SrsRtmpServer; | ||
| 73 | class SrsBandwidth | 75 | class SrsBandwidth |
| 74 | { | 76 | { |
| 75 | private: | 77 | private: |
| 76 | - SrsRequest* req; | ||
| 77 | - SrsRtmpServer* rtmp; | 78 | + SrsRequest* _req; |
| 79 | + SrsRtmpServer* _rtmp; | ||
| 78 | public: | 80 | public: |
| 79 | SrsBandwidth(); | 81 | SrsBandwidth(); |
| 80 | virtual ~SrsBandwidth(); | 82 | virtual ~SrsBandwidth(); |
| 81 | public: | 83 | public: |
| 82 | /** | 84 | /** |
| 83 | - * do the bandwidth test. | 85 | + * do the bandwidth check. |
| 86 | + * @param rtmp, server RTMP protocol object, send/recv RTMP packet to/from client. | ||
| 87 | + * @param req, client request object, specifies the request info from client. | ||
| 88 | + * @param local_ip, the ip of server which client connected at | ||
| 84 | */ | 89 | */ |
| 85 | - virtual int bandwidth_test(SrsRequest* _req, st_netfd_t stfd, SrsRtmpServer* _rtmp); | 90 | + virtual int bandwidth_check(SrsRtmpServer* rtmp, SrsRequest* req, std::string local_ip); |
| 86 | private: | 91 | private: |
| 87 | /** | 92 | /** |
| 88 | * used to process band width check from client. | 93 | * used to process band width check from client. |
| @@ -211,12 +211,14 @@ int SrsRtmpConn::service_cycle() | @@ -211,12 +211,14 @@ int SrsRtmpConn::service_cycle() | ||
| 211 | } | 211 | } |
| 212 | srs_verbose("set peer bandwidth success"); | 212 | srs_verbose("set peer bandwidth success"); |
| 213 | 213 | ||
| 214 | + // get the ip which client connected. | ||
| 215 | + std::string local_ip = srs_get_local_ip(st_netfd_fileno(stfd)); | ||
| 216 | + | ||
| 214 | // do bandwidth test if connect to the vhost which is for bandwidth check. | 217 | // do bandwidth test if connect to the vhost which is for bandwidth check. |
| 215 | if (_srs_config->get_bw_check_enabled(req->vhost)) { | 218 | if (_srs_config->get_bw_check_enabled(req->vhost)) { |
| 216 | - return bandwidth->bandwidth_test(req, stfd, rtmp); | 219 | + return bandwidth->bandwidth_check(rtmp, req, local_ip); |
| 217 | } | 220 | } |
| 218 | 221 | ||
| 219 | - std::string local_ip = srs_get_local_ip(st_netfd_fileno(stfd)); | ||
| 220 | if ((ret = rtmp->response_connect_app(req, local_ip.c_str())) != ERROR_SUCCESS) { | 222 | if ((ret = rtmp->response_connect_app(req, local_ip.c_str())) != ERROR_SUCCESS) { |
| 221 | srs_error("response connect app failed. ret=%d", ret); | 223 | srs_error("response connect app failed. ret=%d", ret); |
| 222 | return ret; | 224 | return ret; |
-
请 注册 或 登录 后发表评论