private Task OnSetPeerBandwidth(SetPeerBandwidthMessage msg, CancellationToken cancel_token)
{
switch (msg.LimitType) {
case PeerBandwidthLimitType.Hard:
sendWindowSize = msg.PeerBandwidth;
sendWindowLimitType = msg.LimitType;
break;
case PeerBandwidthLimitType.Soft:
sendWindowSize = Math.Min(sendWindowSize, msg.PeerBandwidth);
sendWindowLimitType = msg.LimitType;
break;
case PeerBandwidthLimitType.Dynamic:
if (sendWindowLimitType==PeerBandwidthLimitType.Hard) {
sendWindowSize = msg.PeerBandwidth;
sendWindowLimitType = msg.LimitType;
}
break;
}
return Task.Delay(0);
}