| 388 | #endif |
| 389 | |
| 390 | void srt::CUDT::construct() |
| 391 | { |
| 392 | m_pSndBuffer = NULL; |
| 393 | m_pRcvBuffer = NULL; |
| 394 | m_pSndLossList = NULL; |
| 395 | m_pRcvLossList = NULL; |
| 396 | m_iReorderTolerance = 0; |
| 397 | // How many times so far the packet considered lost has been received |
| 398 | // before TTL expires. |
| 399 | m_iConsecEarlyDelivery = 0; |
| 400 | m_iConsecOrderedDelivery = 0; |
| 401 | |
| 402 | m_pSndQueue = NULL; |
| 403 | m_pRcvQueue = NULL; |
| 404 | m_pSNode = NULL; |
| 405 | m_pRNode = NULL; |
| 406 | |
| 407 | // Will be reset to 0 for HSv5, this value is important for HSv4. |
| 408 | m_iSndHsRetryCnt = SRT_MAX_HSRETRY + 1; |
| 409 | |
| 410 | m_PeerID = 0; |
| 411 | m_bOpened = false; |
| 412 | m_bListening = false; |
| 413 | m_bConnecting = false; |
| 414 | m_bConnected = false; |
| 415 | m_bClosing = false; |
| 416 | m_bShutdown = false; |
| 417 | m_bBreaking = false; |
| 418 | m_bBroken = false; |
| 419 | m_bBreakAsUnstable = false; |
| 420 | // TODO: m_iBrokenCounter should be still set to some default. |
| 421 | m_bPeerHealth = true; |
| 422 | m_RejectReason = SRT_REJ_UNKNOWN; |
| 423 | m_tsLastReqTime.store(steady_clock::time_point()); |
| 424 | m_SrtHsSide = HSD_DRAW; |
| 425 | m_uPeerSrtVersion = 0; // Not defined until connected. |
| 426 | m_iTsbPdDelay_ms = 0; |
| 427 | m_iPeerTsbPdDelay_ms = 0; |
| 428 | m_bPeerTsbPd = false; |
| 429 | m_bTsbPd = false; |
| 430 | m_bTsbPdNeedsWakeup = false; |
| 431 | m_bGroupTsbPd = false; |
| 432 | m_bPeerTLPktDrop = false; |
| 433 | m_bBufferWasFull = false; |
| 434 | |
| 435 | // Will be updated on first send |
| 436 | #ifdef ENABLE_MAXREXMITBW |
| 437 | m_zSndAveragePacketSize = 0; |
| 438 | m_zSndMaxPacketSize = 0; |
| 439 | #endif |
| 440 | |
| 441 | // Initialize mutex and condition variables. |
| 442 | initSynch(); |
| 443 | |
| 444 | // TODO: Uncomment when the callback is implemented. |
| 445 | // m_cbPacketArrival.set(this, &CUDT::defaultPacketArrival); |
| 446 | } |
| 447 | |