From 05da9d8c7c7acdc7a7e6f47b1afc9425bd1121a4 Mon Sep 17 00:00:00 2001 From: Paulo Morgado <470455+paulomorgado@users.noreply.github.com> Date: Mon, 1 Jun 2026 11:23:58 +0100 Subject: [PATCH] Refactor STUN code for clarity and consistency (#1653) Replaced manual string comparisons with StringComparison.OrdinalIgnoreCase and placed constants first in comparisons. Refactored switch statements to use switch expressions with spans. Updated header concatenation to use string interpolation. Used string.IsNullOrWhiteSpace for null/whitespace checks. Changed method overrides to use override instead of new where appropriate. --- src/SIPSorcery/net/STUN/STUNAppState.cs | 2 +- .../net/STUN/STUNAttributes/STUNAddressAttribute.cs | 2 +- src/SIPSorcery/net/STUN/STUNAttributes/STUNAttribute.cs | 4 ++-- .../net/STUN/STUNAttributes/STUNChangeRequestAttribute.cs | 2 +- .../net/STUN/STUNAttributes/STUNConnectionIdAttribute.cs | 2 +- .../net/STUN/STUNAttributes/STUNErrorCodeAttribute.cs | 2 +- .../net/STUN/STUNAttributes/STUNXORAddressAttribute.cs | 2 +- src/SIPSorcery/net/STUN/STUNMessage.cs | 6 +++--- 8 files changed, 11 insertions(+), 11 deletions(-) diff --git a/src/SIPSorcery/net/STUN/STUNAppState.cs b/src/SIPSorcery/net/STUN/STUNAppState.cs index 715ec84bf2..7b20c1714e 100644 --- a/src/SIPSorcery/net/STUN/STUNAppState.cs +++ b/src/SIPSorcery/net/STUN/STUNAppState.cs @@ -40,7 +40,7 @@ public static string PrintBuffer(byte[] buffer) if (byteStr.Length == 1) { - bufferStr += "0" + byteStr; + bufferStr += $"0{byteStr}"; } else { diff --git a/src/SIPSorcery/net/STUN/STUNAttributes/STUNAddressAttribute.cs b/src/SIPSorcery/net/STUN/STUNAttributes/STUNAddressAttribute.cs index 620b267dff..0fb559f686 100644 --- a/src/SIPSorcery/net/STUN/STUNAttributes/STUNAddressAttribute.cs +++ b/src/SIPSorcery/net/STUN/STUNAttributes/STUNAddressAttribute.cs @@ -95,7 +95,7 @@ public override int ToByteBuffer(byte[] buffer, int startIndex) public override string ToString() { - string attrDescrStr = "STUN Attribute: " + base.AttributeType + ", address=" + Address.ToString() + ", port=" + Port + "."; + string attrDescrStr = $"STUN Attribute: {base.AttributeType}, address={Address.ToString()}, port={Port}."; return attrDescrStr; } diff --git a/src/SIPSorcery/net/STUN/STUNAttributes/STUNAttribute.cs b/src/SIPSorcery/net/STUN/STUNAttributes/STUNAttribute.cs index 8df861b5ba..74dd29ccaa 100644 --- a/src/SIPSorcery/net/STUN/STUNAttributes/STUNAttribute.cs +++ b/src/SIPSorcery/net/STUN/STUNAttributes/STUNAttribute.cs @@ -220,7 +220,7 @@ public static List ParseMessageAttributes(byte[] buffer, int star attributes.Add(attribute); - // Attributes start on 32 bit word boundaries so where an attribute length is not a multiple of 4 it gets padded. + // Attributes start on 32 bit word boundaries so where an attribute length is not a multiple of 4 it gets padded. int padding = (stunAttributeLength % 4 != 0) ? 4 - (stunAttributeLength % 4) : 0; startAttIndex = startAttIndex + 4 + stunAttributeLength + padding; @@ -258,7 +258,7 @@ public virtual int ToByteBuffer(byte[] buffer, int startIndex) public new virtual string ToString() { - string attrDescrString = "STUN Attribute: " + AttributeType.ToString() + ", length=" + PaddedLength + "."; + string attrDescrString = $"STUN Attribute: {AttributeType.ToString()}, length={PaddedLength}."; return attrDescrString; } diff --git a/src/SIPSorcery/net/STUN/STUNAttributes/STUNChangeRequestAttribute.cs b/src/SIPSorcery/net/STUN/STUNAttributes/STUNChangeRequestAttribute.cs index 94608dfad0..b41738deb0 100644 --- a/src/SIPSorcery/net/STUN/STUNAttributes/STUNChangeRequestAttribute.cs +++ b/src/SIPSorcery/net/STUN/STUNAttributes/STUNChangeRequestAttribute.cs @@ -53,7 +53,7 @@ public STUNChangeRequestAttribute(byte[] attributeValue) public override string ToString() { - string attrDescrStr = "STUN Attribute: " + STUNAttributeTypesEnum.ChangeRequest.ToString() + ", key byte=" + m_changeRequestByte.ToString("X") + ", change address=" + ChangeAddress + ", change port=" + ChangePort + "."; + string attrDescrStr = $"STUN Attribute: {STUNAttributeTypesEnum.ChangeRequest.ToString()}, key byte={m_changeRequestByte.ToString("X")}, change address={ChangeAddress}, change port={ChangePort}."; return attrDescrStr; } diff --git a/src/SIPSorcery/net/STUN/STUNAttributes/STUNConnectionIdAttribute.cs b/src/SIPSorcery/net/STUN/STUNAttributes/STUNConnectionIdAttribute.cs index 78244fd7e0..bce3d091cc 100644 --- a/src/SIPSorcery/net/STUN/STUNAttributes/STUNConnectionIdAttribute.cs +++ b/src/SIPSorcery/net/STUN/STUNAttributes/STUNConnectionIdAttribute.cs @@ -44,7 +44,7 @@ public STUNConnectionIdAttribute(uint connectionId) public override string ToString() { - string attrDescrStr = "STUN CONNECTION_ID Attribute: value=" + ConnectionId + "."; + string attrDescrStr = $"STUN CONNECTION_ID Attribute: value={ConnectionId}."; return attrDescrStr; } diff --git a/src/SIPSorcery/net/STUN/STUNAttributes/STUNErrorCodeAttribute.cs b/src/SIPSorcery/net/STUN/STUNAttributes/STUNErrorCodeAttribute.cs index 097486d2d7..709af72a10 100644 --- a/src/SIPSorcery/net/STUN/STUNAttributes/STUNErrorCodeAttribute.cs +++ b/src/SIPSorcery/net/STUN/STUNAttributes/STUNErrorCodeAttribute.cs @@ -60,7 +60,7 @@ private static byte[] BuildValue(int errorCode, string reasonPhrase) public override string ToString() { - string attrDescrStr = "STUN ERROR_CODE_ADDRESS Attribute: error code=" + ErrorCode + ", reason phrase=" + ReasonPhrase + "."; + string attrDescrStr = $"STUN ERROR_CODE_ADDRESS Attribute: error code={ErrorCode}, reason phrase={ReasonPhrase}."; return attrDescrStr; } diff --git a/src/SIPSorcery/net/STUN/STUNAttributes/STUNXORAddressAttribute.cs b/src/SIPSorcery/net/STUN/STUNAttributes/STUNXORAddressAttribute.cs index e76a7b1e94..544256c421 100644 --- a/src/SIPSorcery/net/STUN/STUNAttributes/STUNXORAddressAttribute.cs +++ b/src/SIPSorcery/net/STUN/STUNAttributes/STUNXORAddressAttribute.cs @@ -133,7 +133,7 @@ public override int ToByteBuffer(byte[] buffer, int startIndex) public override string ToString() { - string attrDescrStr = "STUN XOR_MAPPED_ADDRESS Attribute: " + base.AttributeType + ", address=" + Address.ToString() + ", port=" + Port + "."; + string attrDescrStr = $"STUN XOR_MAPPED_ADDRESS Attribute: {base.AttributeType}, address={Address.ToString()}, port={Port}."; return attrDescrStr; } diff --git a/src/SIPSorcery/net/STUN/STUNMessage.cs b/src/SIPSorcery/net/STUN/STUNMessage.cs index 2bdcdd5410..ebde015494 100644 --- a/src/SIPSorcery/net/STUN/STUNMessage.cs +++ b/src/SIPSorcery/net/STUN/STUNMessage.cs @@ -198,13 +198,13 @@ public byte[] ToByteBuffer(byte[] messageIntegrityKey, bool addFingerprint) return buffer; } - public new string ToString() + public override string ToString() { - string messageDescr = "STUN Message: " + Header.MessageType.ToString() + ", length=" + Header.MessageLength; + string messageDescr = $"STUN Message: {Header.MessageType.ToString()}, length={Header.MessageLength}"; foreach (STUNAttribute attribute in Attributes) { - messageDescr += "\n " + attribute.ToString(); + messageDescr += $"\n {attribute.ToString()}"; } return messageDescr;