some use of interpolated strings

This commit is contained in:
UbitUmarov
2022-10-05 01:53:24 +01:00
parent 6422b3f04f
commit e4a158327a
6 changed files with 91 additions and 160 deletions

View File

@@ -46,7 +46,7 @@ namespace OpenSim.Framework
if (index >= 0)
bitArray[index] = true;
else
m_log.WarnFormat("[Asset Permissions]: Invalid AssetType {0}", s);
m_log.Warn($"[Asset Permissions]: Invalid AssetType {s}");
}
}
@@ -58,7 +58,7 @@ namespace OpenSim.Framework
int index = Array.IndexOf(m_AssetTypeNames, assetTypeName.ToLower());
if (index >= 0 && m_DisallowExport[index])
{
m_log.DebugFormat("[Asset Permissions]: Export denied: configuration does not allow export of AssetType {0}", assetTypeName);
m_log.Debug($"[Asset Permissions]: Export denied: configuration does not allow export of AssetType {assetTypeName}");
return false;
}
@@ -72,7 +72,7 @@ namespace OpenSim.Framework
int index = Array.IndexOf(m_AssetTypeNames, assetTypeName.ToLower());
if (index >= 0 && m_DisallowImport[index])
{
m_log.DebugFormat("[Asset Permissions]: Import denied: configuration does not allow import of AssetType {0}", assetTypeName);
m_log.Debug($"[Asset Permissions]: Import denied: configuration does not allow import of AssetType {assetTypeName}");
return false;
}

View File

@@ -27,11 +27,11 @@
using System;
using System.Reflection;
using System.Collections;
using System.Collections.Generic;
using OpenMetaverse;
using OpenMetaverse.StructuredData;
using log4net;
using System.Text;
namespace OpenSim.Framework
{
@@ -487,27 +487,29 @@ namespace OpenSim.Framework
// DEBUG ON
public override String ToString()
{
String s = "";
s += String.Format("Serial: {0}\n",m_serial);
StringBuilder sb = new();
sb.AppendLine($"Serial: {m_serial}");
for (uint i = 0; i < AvatarAppearance.TEXTURE_COUNT; i++)
if (m_texture.FaceTextures[i] != null)
s += String.Format("Texture: {0} --> {1}\n",i,m_texture.FaceTextures[i].TextureID);
sb.AppendLine($"Texture: {i} --> {m_texture.FaceTextures[i].TextureID}");
foreach (AvatarWearable awear in m_wearables)
{
for (int i = 0; i < awear.Count; i++)
s += String.Format("Wearable: item={0}, asset={1}\n",awear[i].ItemID,awear[i].AssetID);
sb.AppendLine($"Wearable: item={awear[i].ItemID}, asset={awear[i].AssetID}");
}
s += "Visual Params: ";
// for (uint j = 0; j < AvatarAppearance.VISUALPARAM_COUNT; j++)
sb.Append("Visual Params: ");
//for (uint j = 0; j < AvatarAppearance.VISUALPARAM_COUNT; j++)
for (uint j = 0; j < m_visualparams.Length; j++)
s += String.Format("{0},",m_visualparams[j]);
s += "\n";
{
sb.Append(m_visualparams[j]);
sb.Append(',');
}
sb.Append('\n');
return s;
return sb.ToString();
}
// DEBUG OFF
@@ -609,10 +611,7 @@ namespace OpenSim.Framework
if (!existingAttachment.AssetID.IsZero() && existingAttachment.AttachPoint == (attachpoint & 0x7F))
{
m_log.DebugFormat(
"[AVATAR APPEARANCE]: Ignoring attempt to attach an already attached item {0} at point {1}",
item, attachpoint);
m_log.Debug($"[AVATAR APPEARANCE]: Ignoring attach of an already attached item {item} at point {attachpoint}");
return false;
}
else

View File

@@ -84,8 +84,7 @@ namespace OpenSim.Framework
}
foreach (string str in removes)
{
m_log.InfoFormat("[{0}] client: {1} is no longer blocked.",
_options.ReportingName, str);
m_log.Info($"[{_options.ReportingName}] client: {str} is no longer blocked.");
}
_blockLockSlim.EnterReadLock();
if (_tempBlocked.Count > 0)
@@ -160,7 +159,7 @@ namespace OpenSim.Framework
Util.EnvironmentTickCount() +
(int) _options.ForgetTimeSpan.TotalMilliseconds);
_forgetTimer.Enabled = true;
m_log.WarnFormat("[{0}]: client: {1} is blocked for {2} milliseconds based on concurrency, X-ForwardedForAllowed status is {3}, endpoint:{4}", _options.ReportingName, clientstring, _options.ForgetTimeSpan.TotalMilliseconds, _options.AllowXForwardedFor, endpoint);
m_log.Warn($"[{_options.ReportingName}]: client: {clientstring} is blocked for {_options.ForgetTimeSpan.TotalMilliseconds}ms based on concurrency, X-ForwardedForAllowed status is {_options.AllowXForwardedFor}, endpoint:{_options.AllowXForwardedFor}");
}
else
@@ -241,8 +240,7 @@ namespace OpenSim.Framework
_tempBlocked[clientstring] = Util.EnvironmentTickCount() + (int)_options.ForgetTimeSpan.TotalMilliseconds;
_blockLockSlim.ExitWriteLock();
m_log.WarnFormat("[{0}]: client: {1} is blocked for {2} milliseconds, X-ForwardedForAllowed status is {3}, endpoint:{4}", _options.ReportingName, clientstring, _options.ForgetTimeSpan.TotalMilliseconds, _options.AllowXForwardedFor, endpoint);
m_log.Warn($"[{_options.ReportingName}]: client: {clientstring} is blocked for {_options.ForgetTimeSpan.TotalMilliseconds}ms, X-ForwardedForAllowed status is {_options.AllowXForwardedFor}, endpoint:{endpoint}");
return false;
}
//else

View File

@@ -26,6 +26,7 @@
*/
using OpenMetaverse;
using System.Runtime.CompilerServices;
namespace OpenSim.Framework
{
@@ -39,24 +40,20 @@ namespace OpenSim.Framework
/// </summary>
/// <param name="capsKey"></param>
/// <returns></returns>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static string GetCapsSeedPath(string capsObjectPath)
{
return "CAPS/" + capsObjectPath + "0000/";
return $"CAPS/{capsObjectPath}0000/";
}
/// <summary>
/// Get a random CAPS object path component that will be used as the identifying part of all future CAPS requests
/// </summary>
/// <returns></returns>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static string GetRandomCapsObjectPath()
{
UUID caps = UUID.Random();
string capsPath = caps.ToString();
// I'm commenting this, rather than delete, to keep as historical record.
// The caps seed is now a full UUID string that gets added four more digits
// for producing certain CAPs URLs in OpenSim
//capsPath = capsPath.Remove(capsPath.Length - 4, 4);
return capsPath;
return UUID.Random().ToString();
}
}
}

View File

@@ -55,8 +55,6 @@ using OpenMetaverse;
using OpenMetaverse.StructuredData;
using Amib.Threading;
using System.Collections.Concurrent;
using System.Collections.Specialized;
using System.Web;
namespace OpenSim.Framework
{
@@ -164,15 +162,15 @@ namespace OpenSim.Framework
LogOverloads = true;
TimeStampClockPeriod = 1.0D / (double)Stopwatch.Frequency;
TimeStampClockPeriodMS = 1e3 * TimeStampClockPeriod;
m_log.InfoFormat("[UTIL] TimeStamp clock with period of {0}ms", Math.Round(TimeStampClockPeriodMS, 6, MidpointRounding.AwayFromZero));
m_log.Info($"[UTIL] TimeStamp clock with period of {Math.Round(TimeStampClockPeriodMS, 6, MidpointRounding.AwayFromZero)}ms");
}
private static uint nextXferID = 5000;
private static readonly Random randomClass = new ThreadSafeRandom();
// Get a list of invalid file characters (OS dependent)
private static readonly string regexInvalidFileChars = "[" + new String(Path.GetInvalidFileNameChars()) + "]";
private static readonly string regexInvalidPathChars = "[" + new String(Path.GetInvalidPathChars()) + "]";
private static readonly string regexInvalidFileChars = $"[{new String(Path.GetInvalidFileNameChars())}]";
private static readonly string regexInvalidPathChars = $"[{new String(Path.GetInvalidPathChars())}]";
private static readonly object XferLock = new();
/// <summary>
@@ -197,10 +195,7 @@ namespace OpenSim.Framework
public static readonly string UUIDZeroString = UUID.Zero.ToString();
public static bool IsPlatformMono
{
get { return Type.GetType("Mono.Runtime") != null; }
}
public const bool IsPlatformMono = false;
/// <summary>
/// Gets the name of the directory where the current running executable
@@ -370,7 +365,7 @@ namespace OpenSim.Framework
if (tr >= 1.0)
{
s = (0.5f / MathF.Sqrt(tr));
s = 0.5f / MathF.Sqrt(tr);
return new Quaternion(
(left.Z - up.Y) * s,
(up.X - fwd.Z) * s,
@@ -532,9 +527,9 @@ namespace OpenSim.Framework
Uri uri = new(uristr);
serviceURI = uri.AbsoluteUri;
if (uri.Port == 80)
serviceURI = serviceURI.Trim(new char[] { '/', ' ' }) + ":80/";
serviceURI = $"{serviceURI.Trim(new char[] { '/', ' ' })}:80/";
else if (uri.Port == 443)
serviceURI = serviceURI.Trim(new char[] { '/', ' ' }) + ":443/";
serviceURI = $"{serviceURI.Trim(new char[] { '/', ' ' })}:443/";
serviceHost = uri.Host;
IPEndPoint ep = Util.getEndPoint(serviceHost, uri.Port);
@@ -578,10 +573,10 @@ namespace OpenSim.Framework
{
indx = inputName.IndexOf('/');
if (indx < 0)
serverURI = "http://" + inputName + "/";
serverURI = $"http://{inputName}/";
else
{
serverURI = "http://" + inputName[..(indx + 1)];
serverURI = $"http://{inputName[..(indx + 1)]}";
if (indx + 2 < inputName.Length)
regionName = inputName[(indx + 1)..];
}
@@ -617,7 +612,7 @@ namespace OpenSim.Framework
regionName = parts[2];
}
serverURI = "http://" + host + ":" + port.ToString() + "/";
serverURI = $"http://{host}:{port}/";
}
}
else
@@ -661,9 +656,9 @@ namespace OpenSim.Framework
regionName = regionName.Trim(new char[] { '"', ' ' });
serverURI = uri.AbsoluteUri;
if (uri.Port == 80)
serverURI = serverURI.Trim(new char[] { '/', ' ' }) + ":80/";
serverURI = $"{serverURI.Trim(new char[] { '/', ' ' })}:80/";
else if (uri.Port == 443)
serverURI = serverURI.Trim(new char[] { '/', ' ' }) + ":443/";
serverURI = $"{serverURI.Trim(new char[] { '/', ' ' })}:443/";
return true;
}
@@ -1108,12 +1103,11 @@ namespace OpenSim.Framework
else
nativeLibraryPath = Path.Combine(Path.Combine(path, "lib32"), libraryName);
m_log.DebugFormat("[UTIL]: Loading native Windows library at {0}", nativeLibraryPath);
m_log.Debug($"[UTIL]: Loading native Windows library at {nativeLibraryPath}");
if (Util.LoadLibrary(nativeLibraryPath) == IntPtr.Zero)
{
m_log.ErrorFormat(
"[UTIL]: Couldn't find native Windows library at {0}", nativeLibraryPath);
m_log.Error($"[UTIL]: Couldn't find native Windows library at {nativeLibraryPath}");
return false;
}
return true;
@@ -1121,29 +1115,11 @@ namespace OpenSim.Framework
public static bool IsEnvironmentSupported(ref string reason)
{
// Must have .NET 2.0 (Generics / libsl)
if (Environment.Version.Major < 2)
if (Environment.Version.Major < 6)
{
reason = ".NET 1.0/1.1 lacks components that is used by OpenSim";
reason = "Dotnet 6.0 is required";
return false;
}
// Windows 95/98/ME are unsupported
if (Environment.OSVersion.Platform == PlatformID.Win32Windows &&
Environment.OSVersion.Platform != PlatformID.Win32NT)
{
reason = "Windows 95/98/ME will not run OpenSim";
return false;
}
// Windows 2000 / Pre-SP2 XP
if (Environment.OSVersion.Version.Major == 5 &&
Environment.OSVersion.Version.Minor == 0)
{
reason = "Please update to Windows XP Service Pack 2 or Server2003";
return false;
}
return true;
}
@@ -1437,7 +1413,7 @@ namespace OpenSim.Framework
for (int j = 0; j < 16; j++)
{
if ((i + j) < bytes.Length)
output.Append(String.Format("{0:X2} ", bytes[i + j]));
output.Append($"{bytes[i + j]:X2} ");
else
output.Append(" ");
}
@@ -1888,7 +1864,7 @@ namespace OpenSim.Framework
else if (typeof(T) == typeof(float))
val = cnf.GetFloat(varname, (float)val);
else
m_log.ErrorFormat("[UTIL]: Unhandled type {0}", typeof(T));
m_log.Error($"[UTIL]: Unhandled type {typeof(T)}");
}
return (T)val;
@@ -1998,7 +1974,7 @@ namespace OpenSim.Framework
IConfig cnf = config.Configs["Startup"];
if (cnf == null)
{
m_log.WarnFormat("[UTILS]: Startup section doesn't exist");
m_log.Warn("[UTILS]: Startup section doesn't exist");
return false;
}
@@ -2019,7 +1995,7 @@ namespace OpenSim.Framework
}
catch (Exception e)
{
m_log.WarnFormat("[UTILS]: Exception copying configuration file {0} to {1}: {2}", configFile, exampleConfigFile, e.Message);
m_log.Warn($"[UTILS]: Exception copying configuration file {configFile} to {exampleConfigFile}: {e.Message}");
return false;
}
}
@@ -2067,12 +2043,11 @@ namespace OpenSim.Framework
{
try
{
StreamReader sr = new("/etc/issue.net");
using StreamReader sr = new("/etc/issue.net");
string issue = sr.ReadToEnd();
sr.Close();
return issue;
}
catch (Exception)
catch
{
return "";
}
@@ -2081,69 +2056,41 @@ namespace OpenSim.Framework
public static void SerializeToFile(string filename, Object obj)
{
IFormatter formatter = new BinaryFormatter();
Stream stream = null;
try
{
stream = new FileStream(
filename, FileMode.Create,
FileAccess.Write, FileShare.None);
using Stream stream = new FileStream(filename, FileMode.Create,FileAccess.Write, FileShare.None);
formatter.Serialize(stream, obj);
}
catch (Exception e)
{
m_log.Error(e.ToString());
}
finally
{
if (stream != null)
{
stream.Close();
}
}
}
public static Object DeserializeFromFile(string filename)
{
IFormatter formatter = new BinaryFormatter();
Stream stream = null;
Object ret = null;
try
{
stream = new FileStream(
filename, FileMode.Open,
FileAccess.Read, FileShare.None);
ret = formatter.Deserialize(stream);
using Stream stream = new FileStream(filename, FileMode.Open,FileAccess.Read, FileShare.None);
IFormatter formatter = new BinaryFormatter();
return formatter.Deserialize(stream);
}
catch (Exception e)
{
m_log.Error(e.ToString());
}
finally
{
if (stream != null)
{
stream.Close();
}
}
return ret;
return null;
}
public static string Compress(string text)
{
using MemoryStream memory = new();
using GZipStream compressor = new(memory, CompressionMode.Compress, true);
byte[] buffer = Util.UTF8.GetBytes(text);
MemoryStream memory = new();
using (GZipStream compressor = new(memory, CompressionMode.Compress, true))
{
compressor.Write(buffer, 0, buffer.Length);
}
compressor.Write(buffer, 0, buffer.Length);
memory.Position = 0;
byte[] compressed = new byte[memory.Length];
memory.Read(compressed, 0, compressed.Length);
@@ -2156,18 +2103,16 @@ namespace OpenSim.Framework
public static string Decompress(string compressedText)
{
byte[] compressedBuffer = Convert.FromBase64String(compressedText);
using MemoryStream memory = new();
int msgLength = BitConverter.ToInt32(compressedBuffer, 0);
using MemoryStream memory = new();
memory.Write(compressedBuffer, 4, compressedBuffer.Length - 4);
byte[] buffer = new byte[msgLength];
memory.Position = 0;
using (GZipStream decompressor = new(memory, CompressionMode.Decompress))
{
decompressor.Read(buffer, 0, buffer.Length);
}
using GZipStream decompressor = new(memory, CompressionMode.Decompress);
decompressor.Read(buffer, 0, buffer.Length);
return Util.UTF8.GetString(buffer);
}
@@ -2188,6 +2133,7 @@ namespace OpenSim.Framework
const int readSize = 256;
byte[] buffer = new byte[readSize];
MemoryStream ms = new();
int count = inputStream.Read(buffer, 0, readSize);
@@ -2311,23 +2257,23 @@ namespace OpenSim.Framework
/// </returns>
public static string GetOperatingSystemInformation()
{
string os = String.Empty;
return String.Empty;
//string os;
//if (Environment.OSVersion.Platform != PlatformID.Unix)
//{
// os = Environment.OSVersion.ToString();
//}
//else
//{
// os = ReadEtcIssue();
//}
// if (Environment.OSVersion.Platform != PlatformID.Unix)
// {
// os = Environment.OSVersion.ToString();
// }
// else
// {
// os = ReadEtcIssue();
// }
//
// if (os.Length > 45)
// {
// os = os.Substring(0, 45);
// }
//if (os.Length > 45)
//{
// os = os.Substring(0, 45);
//}
return os;
//return os;
}
public static string GetRuntimeInformation()
@@ -2354,7 +2300,6 @@ namespace OpenSim.Framework
{
int passPosition;
int passEndPosition;
string displayConnectionString;
// hide the password in the connection string
passPosition = connectionString.IndexOf("password", StringComparison.OrdinalIgnoreCase);
@@ -2365,11 +2310,7 @@ namespace OpenSim.Framework
passPosition += 1;
passEndPosition = connectionString.IndexOf(";", passPosition);
displayConnectionString = connectionString[..passPosition];
displayConnectionString += "***";
displayConnectionString += connectionString[passEndPosition..];
return displayConnectionString;
return $"{connectionString[..passPosition]}***{connectionString[passEndPosition..]}";
}
public static string Base64ToString(string str)
@@ -2427,11 +2368,7 @@ namespace OpenSim.Framework
public static Guid GetHashGuid(string data, string salt)
{
byte[] hash = ComputeMD5Hash(data + salt, Encoding.Default);
//string s = BitConverter.ToString(hash);
Guid guid = new(hash);
return guid;
}
@@ -2503,13 +2440,13 @@ namespace OpenSim.Framework
else
{
// uh?
m_log.Debug(("[UTILS]: Got OSD of unexpected type " + buffer.Type.ToString()));
m_log.Debug($"[UTILS]: Got OSD of unexpected type {buffer.Type.ToString()}");
return null;
}
}
catch (Exception ex)
{
m_log.Debug("[UTILS]: exception on GetOSDMap " + ex.Message);
m_log.Debug($"[UTILS]: exception on GetOSDMap {ex.Message}");
return null;
}
}
@@ -2848,7 +2785,7 @@ namespace OpenSim.Framework
foreach (string key in ht.Keys)
{
sb.AppendFormat("{0}:{1}", key, ht[key]);
sb.Append($"{key}:{ht[key]}");
if (++i < ht.Count)
sb.AppendFormat(", ");
@@ -3056,7 +2993,7 @@ namespace OpenSim.Framework
ThreadInfo t = entry.Value;
if (t.DoTimeout && t.Running && !t.Aborted && (t.Elapsed() >= THREAD_TIMEOUT))
{
m_log.WarnFormat("Timeout in threadfunc {0} ({1}) {2}", t.ThreadFuncNum, t.Thread.Name, t.GetStackTrace());
m_log.Warn($"Timeout in threadfunc {t.ThreadFuncNum} ({t.Thread.Name}) {t.GetStackTrace()}");
t.Abort();
activeThreads.TryRemove(entry.Key, out _);
@@ -3140,14 +3077,14 @@ namespace OpenSim.Framework
}
catch (Exception e)
{
m_log.Error(string.Format("[UTIL]: Util STP threadfunc {0} terminated with error ", threadFuncNum), e);
m_log.Error($"[UTIL]: Util STP threadfunc {threadFuncNum} terminated with error {e.Message}");
}
finally
{
Interlocked.Decrement(ref numRunningThreadFuncs);
activeThreads.TryRemove(threadFuncNum, out ThreadInfo dummy);
if (loggingEnabled && threadInfo.LogThread)
m_log.DebugFormat("Exit threadfunc {0} ({1})", threadFuncNum, FormatDuration(threadInfo.Elapsed()));
m_log.Debug($"Exit threadfunc {threadFuncNum} ({FormatDuration(threadInfo.Elapsed())}");
callback = null;
o = null;
threadInfo = null;
@@ -3543,7 +3480,7 @@ namespace OpenSim.Framework
foreach (StackFrame stackFrame in stackFrames)
{
MethodBase mb = stackFrame.GetMethod();
printer("{0}.{1}:{2}", mb.DeclaringType, mb.Name, stackFrame.GetFileLineNumber()); // write method name
printer($"{mb.DeclaringType}.{mb.Name}:{stackFrame.GetFileLineNumber()}"); // write method name
}
}
@@ -3566,7 +3503,7 @@ namespace OpenSim.Framework
}
catch (Exception e)
{
m_log.WarnFormat("[UTIL]: Exception parsing XFF header {0}: {1}", xff, e.Message);
m_log.Warn($"[UTIL]: Exception parsing XFF header {xff}: {e.Message}");
}
}
@@ -3585,7 +3522,7 @@ namespace OpenSim.Framework
}
catch (Exception e)
{
m_log.WarnFormat("[UTIL]: exception in GetCallerIP: {0}", e.Message);
m_log.Warn($"[UTIL]: exception in GetCallerIP: {e.Message}");
}
}
return string.Empty;
@@ -4132,7 +4069,7 @@ namespace OpenSim.Framework
realFirstName = parts[0].Trim();
realLastName = parts[1].Trim();
lastname = lastname.Trim();
serverURI = new Uri("http://" + lastname.Replace("@", "")).ToString();
serverURI = new Uri($"http://{lastname.Replace("@", "")}").ToString();
return true;
}
@@ -4278,9 +4215,9 @@ namespace OpenSim.Framework
}
catch (UriFormatException)
{
return firstName.Trim() + " " + lastName.Trim();
return $"{firstName.Trim()} {lastName.Trim()}";
}
return firstName.Trim() + "." + lastName.Trim() + " " + "@" + uri.Authority;
return $"{firstName.Trim()}.{lastName.Trim()}@{uri.Authority}";
}
#endregion
@@ -4342,7 +4279,7 @@ namespace OpenSim.Framework
}
}
m_log.ErrorFormat("{0} Failed XML ({1} bytes) = {2}", message, length, xml);
m_log.Error($"{message} Failed XML ({length} bytes) = {xml}");
}
/// <summary>

View File

@@ -53,7 +53,7 @@ namespace OpenSim
public static string GetVersionString(string versionNumber, Flavour flavour)
{
string versionString = "OpenSim " + versionNumber + " Yeti " + flavour;
string versionString = $"OpenSim {versionNumber} Yeti {flavour}";
return versionString.PadRight(VERSIONINFO_VERSION_LENGTH);
}