Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 278cc96

Browse files
authored
Telemetry doesn't log datagrams failed in send/receive (dotnet#40083)
1 parent 3bef7cb commit 278cc96

File tree

1 file changed

+53
-66
lines changed
  • src/libraries/System.Net.Sockets/src/System/Net/Sockets

1 file changed

+53
-66
lines changed

src/libraries/System.Net.Sockets/src/System/Net/Sockets/Socket.cs

Lines changed: 53 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -1180,8 +1180,7 @@ public int Send(IList<ArraySegment<byte>> buffers, SocketFlags socketFlags, out
11801180
// Don't log transfered byte count in case of a failure.
11811181
return 0;
11821182
}
1183-
1184-
if (SocketsTelemetry.Log.IsEnabled())
1183+
else if (SocketsTelemetry.Log.IsEnabled())
11851184
{
11861185
SocketsTelemetry.Log.BytesSent(bytesTransferred);
11871186
if (SocketType == SocketType.Dgram) SocketsTelemetry.Log.DatagramSent();
@@ -1237,8 +1236,7 @@ public int Send(byte[] buffer, int offset, int size, SocketFlags socketFlags, ou
12371236
if (NetEventSource.Log.IsEnabled()) NetEventSource.Error(this, new SocketException((int)errorCode));
12381237
return 0;
12391238
}
1240-
1241-
if (SocketsTelemetry.Log.IsEnabled())
1239+
else if (SocketsTelemetry.Log.IsEnabled())
12421240
{
12431241
SocketsTelemetry.Log.BytesSent(bytesTransferred);
12441242
if (SocketType == SocketType.Dgram) SocketsTelemetry.Log.DatagramSent();
@@ -1279,13 +1277,10 @@ public int Send(ReadOnlySpan<byte> buffer, SocketFlags socketFlags, out SocketEr
12791277
if (NetEventSource.Log.IsEnabled()) NetEventSource.Error(this, new SocketException((int)errorCode));
12801278
bytesTransferred = 0;
12811279
}
1282-
else
1280+
else if (SocketsTelemetry.Log.IsEnabled())
12831281
{
1284-
if (SocketsTelemetry.Log.IsEnabled())
1285-
{
1286-
SocketsTelemetry.Log.BytesSent(bytesTransferred);
1287-
if (SocketType == SocketType.Dgram) SocketsTelemetry.Log.DatagramSent();
1288-
}
1282+
SocketsTelemetry.Log.BytesSent(bytesTransferred);
1283+
if (SocketType == SocketType.Dgram) SocketsTelemetry.Log.DatagramSent();
12891284
}
12901285

12911286
return bytesTransferred;
@@ -1351,13 +1346,10 @@ public int SendTo(byte[] buffer, int offset, int size, SocketFlags socketFlags,
13511346

13521347
UpdateStatusAfterSocketErrorAndThrowException(errorCode);
13531348
}
1354-
else
1349+
else if (SocketsTelemetry.Log.IsEnabled())
13551350
{
1356-
if (SocketsTelemetry.Log.IsEnabled())
1357-
{
1358-
SocketsTelemetry.Log.BytesSent(bytesTransferred);
1359-
if (SocketType == SocketType.Dgram) SocketsTelemetry.Log.DatagramSent();
1360-
}
1351+
SocketsTelemetry.Log.BytesSent(bytesTransferred);
1352+
if (SocketType == SocketType.Dgram) SocketsTelemetry.Log.DatagramSent();
13611353
}
13621354

13631355
if (_rightEndPoint == null)
@@ -1437,11 +1429,6 @@ public int Receive(byte[] buffer, int offset, int size, SocketFlags socketFlags,
14371429

14381430
int bytesTransferred;
14391431
errorCode = SocketPal.Receive(_handle, buffer, offset, size, socketFlags, out bytesTransferred);
1440-
if (SocketsTelemetry.Log.IsEnabled())
1441-
{
1442-
SocketsTelemetry.Log.BytesReceived(bytesTransferred);
1443-
if (SocketType == SocketType.Dgram) SocketsTelemetry.Log.DatagramReceived();
1444-
}
14451432

14461433
UpdateReceiveSocketErrorForDisposed(ref errorCode, bytesTransferred);
14471434

@@ -1452,6 +1439,11 @@ public int Receive(byte[] buffer, int offset, int size, SocketFlags socketFlags,
14521439
if (NetEventSource.Log.IsEnabled()) NetEventSource.Error(this, new SocketException((int)errorCode));
14531440
return 0;
14541441
}
1442+
else if (SocketsTelemetry.Log.IsEnabled())
1443+
{
1444+
SocketsTelemetry.Log.BytesReceived(bytesTransferred);
1445+
if (SocketType == SocketType.Dgram) SocketsTelemetry.Log.DatagramReceived();
1446+
}
14551447

14561448
if (NetEventSource.Log.IsEnabled()) NetEventSource.DumpBuffer(this, buffer, offset, bytesTransferred);
14571449

@@ -1475,11 +1467,6 @@ public int Receive(Span<byte> buffer, SocketFlags socketFlags, out SocketError e
14751467

14761468
int bytesTransferred;
14771469
errorCode = SocketPal.Receive(_handle, buffer, socketFlags, out bytesTransferred);
1478-
if (SocketsTelemetry.Log.IsEnabled())
1479-
{
1480-
SocketsTelemetry.Log.BytesReceived(bytesTransferred);
1481-
if (SocketType == SocketType.Dgram) SocketsTelemetry.Log.DatagramReceived();
1482-
}
14831470

14841471
UpdateReceiveSocketErrorForDisposed(ref errorCode, bytesTransferred);
14851472

@@ -1489,6 +1476,11 @@ public int Receive(Span<byte> buffer, SocketFlags socketFlags, out SocketError e
14891476
if (NetEventSource.Log.IsEnabled()) NetEventSource.Error(this, new SocketException((int)errorCode));
14901477
bytesTransferred = 0;
14911478
}
1479+
else if (SocketsTelemetry.Log.IsEnabled())
1480+
{
1481+
SocketsTelemetry.Log.BytesReceived(bytesTransferred);
1482+
if (SocketType == SocketType.Dgram) SocketsTelemetry.Log.DatagramReceived();
1483+
}
14921484

14931485
return bytesTransferred;
14941486
}
@@ -1529,11 +1521,6 @@ public int Receive(IList<ArraySegment<byte>> buffers, SocketFlags socketFlags, o
15291521

15301522
int bytesTransferred;
15311523
errorCode = SocketPal.Receive(_handle, buffers, socketFlags, out bytesTransferred);
1532-
if (SocketsTelemetry.Log.IsEnabled())
1533-
{
1534-
SocketsTelemetry.Log.BytesReceived(bytesTransferred);
1535-
if (SocketType == SocketType.Dgram) SocketsTelemetry.Log.DatagramReceived();
1536-
}
15371524

15381525
UpdateReceiveSocketErrorForDisposed(ref errorCode, bytesTransferred);
15391526

@@ -1544,6 +1531,11 @@ public int Receive(IList<ArraySegment<byte>> buffers, SocketFlags socketFlags, o
15441531
if (NetEventSource.Log.IsEnabled()) NetEventSource.Error(this, new SocketException((int)errorCode));
15451532
return 0;
15461533
}
1534+
else if (SocketsTelemetry.Log.IsEnabled())
1535+
{
1536+
SocketsTelemetry.Log.BytesReceived(bytesTransferred);
1537+
if (SocketType == SocketType.Dgram) SocketsTelemetry.Log.DatagramReceived();
1538+
}
15471539

15481540
return bytesTransferred;
15491541
}
@@ -1595,19 +1587,18 @@ public int ReceiveMessageFrom(byte[] buffer, int offset, int size, ref SocketFla
15951587
Internals.SocketAddress receiveAddress;
15961588
int bytesTransferred;
15971589
SocketError errorCode = SocketPal.ReceiveMessageFrom(this, _handle, buffer, offset, size, ref socketFlags, socketAddress, out receiveAddress, out ipPacketInformation, out bytesTransferred);
1598-
if (SocketsTelemetry.Log.IsEnabled())
1599-
{
1600-
SocketsTelemetry.Log.BytesReceived(bytesTransferred);
1601-
if (SocketType == SocketType.Dgram) SocketsTelemetry.Log.DatagramReceived();
1602-
}
16031590

16041591
UpdateReceiveSocketErrorForDisposed(ref errorCode, bytesTransferred);
1605-
16061592
// Throw an appropriate SocketException if the native call fails.
16071593
if (errorCode != SocketError.Success && errorCode != SocketError.MessageSize)
16081594
{
16091595
UpdateStatusAfterSocketErrorAndThrowException(errorCode);
16101596
}
1597+
else if (SocketsTelemetry.Log.IsEnabled())
1598+
{
1599+
SocketsTelemetry.Log.BytesReceived(bytesTransferred);
1600+
if (errorCode == SocketError.Success && SocketType == SocketType.Dgram) SocketsTelemetry.Log.DatagramReceived();
1601+
}
16111602

16121603
if (!socketAddressOriginal.Equals(receiveAddress))
16131604
{
@@ -1676,14 +1667,8 @@ public int ReceiveFrom(byte[] buffer, int offset, int size, SocketFlags socketFl
16761667

16771668
int bytesTransferred;
16781669
SocketError errorCode = SocketPal.ReceiveFrom(_handle, buffer, offset, size, socketFlags, socketAddress.Buffer, ref socketAddress.InternalSize, out bytesTransferred);
1679-
if (SocketsTelemetry.Log.IsEnabled())
1680-
{
1681-
SocketsTelemetry.Log.BytesReceived(bytesTransferred);
1682-
if (SocketType == SocketType.Dgram) SocketsTelemetry.Log.DatagramReceived();
1683-
}
16841670

16851671
UpdateReceiveSocketErrorForDisposed(ref errorCode, bytesTransferred);
1686-
16871672
// If the native call fails we'll throw a SocketException.
16881673
SocketException? socketException = null;
16891674
if (errorCode != SocketError.Success)
@@ -1697,6 +1682,11 @@ public int ReceiveFrom(byte[] buffer, int offset, int size, SocketFlags socketFl
16971682
throw socketException;
16981683
}
16991684
}
1685+
else if (SocketsTelemetry.Log.IsEnabled())
1686+
{
1687+
SocketsTelemetry.Log.BytesReceived(bytesTransferred);
1688+
if (SocketType == SocketType.Dgram) SocketsTelemetry.Log.DatagramReceived();
1689+
}
17001690

17011691
if (!socketAddressOriginal.Equals(socketAddress))
17021692
{
@@ -2641,6 +2631,7 @@ public int EndSend(IAsyncResult asyncResult, out SocketError errorCode)
26412631

26422632
// Throw an appropriate SocketException if the native call failed asynchronously.
26432633
errorCode = (SocketError)castedAsyncResult.ErrorCode;
2634+
26442635
if (errorCode != SocketError.Success)
26452636
{
26462637
UpdateSendSocketErrorForDisposed(ref errorCode);
@@ -2649,8 +2640,7 @@ public int EndSend(IAsyncResult asyncResult, out SocketError errorCode)
26492640
if (NetEventSource.Log.IsEnabled()) NetEventSource.Error(this, new SocketException((int)errorCode));
26502641
return 0;
26512642
}
2652-
2653-
if (SocketsTelemetry.Log.IsEnabled())
2643+
else if (SocketsTelemetry.Log.IsEnabled())
26542644
{
26552645
SocketsTelemetry.Log.BytesSent(bytesTransferred);
26562646
if (SocketType == SocketType.Dgram) SocketsTelemetry.Log.DatagramSent();
@@ -2830,13 +2820,10 @@ public int EndSendTo(IAsyncResult asyncResult)
28302820
UpdateSendSocketErrorForDisposed(ref errorCode);
28312821
UpdateStatusAfterSocketErrorAndThrowException(errorCode);
28322822
}
2833-
else
2823+
else if (SocketsTelemetry.Log.IsEnabled())
28342824
{
2835-
if (SocketsTelemetry.Log.IsEnabled())
2836-
{
2837-
SocketsTelemetry.Log.BytesSent(bytesTransferred);
2838-
if (SocketType == SocketType.Dgram) SocketsTelemetry.Log.DatagramSent();
2839-
}
2825+
SocketsTelemetry.Log.BytesSent(bytesTransferred);
2826+
if (SocketType == SocketType.Dgram) SocketsTelemetry.Log.DatagramSent();
28402827
}
28412828

28422829
return bytesTransferred;
@@ -3062,11 +3049,6 @@ public int EndReceive(IAsyncResult asyncResult, out SocketError errorCode)
30623049

30633050
int bytesTransferred = castedAsyncResult.InternalWaitForCompletionInt32Result();
30643051
castedAsyncResult.EndCalled = true;
3065-
if (SocketsTelemetry.Log.IsEnabled())
3066-
{
3067-
SocketsTelemetry.Log.BytesReceived(bytesTransferred);
3068-
if (SocketType == SocketType.Dgram) SocketsTelemetry.Log.DatagramReceived();
3069-
}
30703052

30713053
// Throw an appropriate SocketException if the native call failed asynchronously.
30723054
errorCode = (SocketError)castedAsyncResult.ErrorCode;
@@ -3079,6 +3061,11 @@ public int EndReceive(IAsyncResult asyncResult, out SocketError errorCode)
30793061
if (NetEventSource.Log.IsEnabled()) NetEventSource.Error(this, new SocketException((int)errorCode));
30803062
return 0;
30813063
}
3064+
else if (SocketsTelemetry.Log.IsEnabled())
3065+
{
3066+
SocketsTelemetry.Log.BytesReceived(bytesTransferred);
3067+
if (SocketType == SocketType.Dgram) SocketsTelemetry.Log.DatagramReceived();
3068+
}
30823069
return bytesTransferred;
30833070
}
30843071

@@ -3223,11 +3210,6 @@ public int EndReceiveMessageFrom(IAsyncResult asyncResult, ref SocketFlags socke
32233210

32243211
int bytesTransferred = castedAsyncResult.InternalWaitForCompletionInt32Result();
32253212
castedAsyncResult.EndCalled = true;
3226-
if (SocketsTelemetry.Log.IsEnabled())
3227-
{
3228-
SocketsTelemetry.Log.BytesReceived(bytesTransferred);
3229-
if (SocketType == SocketType.Dgram) SocketsTelemetry.Log.DatagramReceived();
3230-
}
32313213

32323214
// Update socket address size.
32333215
castedAsyncResult.SocketAddress!.InternalSize = castedAsyncResult.GetSocketAddressSize();
@@ -3252,6 +3234,11 @@ public int EndReceiveMessageFrom(IAsyncResult asyncResult, ref SocketFlags socke
32523234
{
32533235
UpdateStatusAfterSocketErrorAndThrowException(errorCode);
32543236
}
3237+
else if (SocketsTelemetry.Log.IsEnabled())
3238+
{
3239+
SocketsTelemetry.Log.BytesReceived(bytesTransferred);
3240+
if (errorCode == SocketError.Success && SocketType == SocketType.Dgram) SocketsTelemetry.Log.DatagramReceived();
3241+
}
32553242

32563243
socketFlags = castedAsyncResult.SocketFlags;
32573244
ipPacketInformation = castedAsyncResult.IPPacketInformation;
@@ -3431,11 +3418,6 @@ public int EndReceiveFrom(IAsyncResult asyncResult, ref EndPoint endPoint)
34313418

34323419
int bytesTransferred = castedAsyncResult.InternalWaitForCompletionInt32Result();
34333420
castedAsyncResult.EndCalled = true;
3434-
if (SocketsTelemetry.Log.IsEnabled())
3435-
{
3436-
SocketsTelemetry.Log.BytesReceived(bytesTransferred);
3437-
if (SocketType == SocketType.Dgram) SocketsTelemetry.Log.DatagramReceived();
3438-
}
34393421

34403422
// Update socket address size.
34413423
castedAsyncResult.SocketAddress!.InternalSize = castedAsyncResult.GetSocketAddressSize();
@@ -3460,6 +3442,11 @@ public int EndReceiveFrom(IAsyncResult asyncResult, ref EndPoint endPoint)
34603442
{
34613443
UpdateStatusAfterSocketErrorAndThrowException(errorCode);
34623444
}
3445+
else if (SocketsTelemetry.Log.IsEnabled())
3446+
{
3447+
SocketsTelemetry.Log.BytesReceived(bytesTransferred);
3448+
if (SocketType == SocketType.Dgram) SocketsTelemetry.Log.DatagramReceived();
3449+
}
34633450
return bytesTransferred;
34643451
}
34653452

0 commit comments

Comments
 (0)