Skip to content

Commit

Permalink
Fixed restrictions on pre-bind only options
Browse files Browse the repository at this point in the history
  • Loading branch information
Mikołaj Małecki committed Jun 9, 2020
1 parent 1674dbf commit 46a0699
Showing 1 changed file with 20 additions and 14 deletions.
34 changes: 20 additions & 14 deletions srtcore/core.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -603,33 +603,38 @@ void CUDT::setOpt(SRT_SOCKOPT optName, const void* optval, int optlen)
break;

case SRTO_TSBPDMODE:
if (m_bConnected)
throw CUDTException(MJ_NOTSUP, MN_ISCONNECTED, 0);
if (m_bOpened)
throw CUDTException(MJ_NOTSUP, MN_ISBOUND, 0);

m_bOPT_TsbPd = cast_optval<bool>(optval, optlen);
break;

case SRTO_LATENCY:
if (m_bConnected)
throw CUDTException(MJ_NOTSUP, MN_ISCONNECTED, 0);
if (m_bOpened)
throw CUDTException(MJ_NOTSUP, MN_ISBOUND, 0);

m_iOPT_TsbPdDelay = cast_optval<int>(optval, optlen);
m_iOPT_PeerTsbPdDelay = cast_optval<int>(optval);
break;

case SRTO_RCVLATENCY:
if (m_bConnected)
throw CUDTException(MJ_NOTSUP, MN_ISCONNECTED, 0);
if (m_bOpened)
throw CUDTException(MJ_NOTSUP, MN_ISBOUND, 0);

m_iOPT_TsbPdDelay = cast_optval<int>(optval, optlen);
break;

case SRTO_PEERLATENCY:
if (m_bConnected)
throw CUDTException(MJ_NOTSUP, MN_ISCONNECTED, 0);
if (m_bOpened)
throw CUDTException(MJ_NOTSUP, MN_ISBOUND, 0);

m_iOPT_PeerTsbPdDelay = cast_optval<int>(optval, optlen);
break;

case SRTO_TLPKTDROP:
if (m_bConnected)
throw CUDTException(MJ_NOTSUP, MN_ISCONNECTED, 0);
if (m_bOpened)
throw CUDTException(MJ_NOTSUP, MN_ISBOUND, 0);

m_bOPT_TLPktDrop = cast_optval<bool>(optval, optlen);
break;

Expand Down Expand Up @@ -725,8 +730,9 @@ void CUDT::setOpt(SRT_SOCKOPT optName, const void* optval, int optlen)
break;

case SRTO_NAKREPORT:
if (m_bConnected)
throw CUDTException(MJ_NOTSUP, MN_ISCONNECTED, 0);
if (m_bOpened)
throw CUDTException(MJ_NOTSUP, MN_ISBOUND, 0);

m_bRcvNakReport = cast_optval<bool>(optval, optlen);
break;

Expand Down Expand Up @@ -829,8 +835,8 @@ void CUDT::setOpt(SRT_SOCKOPT optName, const void* optval, int optlen)
break;

case SRTO_TRANSTYPE:
if (m_bConnected)
throw CUDTException(MJ_NOTSUP, MN_ISCONNECTED, 0);
if (m_bOpened)
throw CUDTException(MJ_NOTSUP, MN_ISBOUND, 0);

// XXX Note that here the configuration for SRTT_LIVE
// is the same as DEFAULT VALUES for these fields set
Expand Down

0 comments on commit 46a0699

Please sign in to comment.