Skip to content

Commit 0b61914

Browse files
committed
refactor implementation of responding as 'Unknown service'
1 parent 452b749 commit 0b61914

File tree

1 file changed

+25
-9
lines changed

1 file changed

+25
-9
lines changed

src/Smdn.Net.MuninNode/Smdn.Net.MuninNode.Protocol/MuninProtocolHandler.cs

Lines changed: 25 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -303,11 +303,6 @@ CancellationToken cancellationToken
303303
}
304304
}
305305

306-
private static readonly string[] ResponseLinesUnknownService = [
307-
"# Unknown service",
308-
".",
309-
];
310-
311306
private ValueTask SendResponseAsync(
312307
IMuninNodeClient client,
313308
string responseLine,
@@ -400,6 +395,29 @@ await client.SendAsync(
400395
}
401396
}
402397

398+
private static readonly ReadOnlyMemory<byte> UnknownServiceResponse = "# Unknown service\n.\n"u8.ToArray();
399+
400+
private static ValueTask SendUnknownServiceResponseAsync(
401+
IMuninNodeClient client,
402+
CancellationToken cancellationToken
403+
)
404+
{
405+
if (client is null)
406+
throw new ArgumentNullException(nameof(client));
407+
408+
#if SYSTEM_THREADING_TASKS_VALUETASK_FROMCANCELED
409+
if (cancellationToken.IsCancellationRequested)
410+
return ValueTask.FromCanceled(cancellationToken);
411+
#else
412+
cancellationToken.ThrowIfCancellationRequested();
413+
#endif
414+
415+
return client.SendAsync(
416+
UnknownServiceResponse,
417+
cancellationToken
418+
);
419+
}
420+
403421
/// <summary>
404422
/// Handles the <c>quit</c> command.
405423
/// </summary>
@@ -548,9 +566,8 @@ CancellationToken cancellationToken
548566
var queryItem = profile.Encoding.GetString(arguments);
549567

550568
if (!plugins.TryGetValue(queryItem, out var plugin)) {
551-
await SendResponseAsync(
569+
await SendUnknownServiceResponseAsync(
552570
client,
553-
ResponseLinesUnknownService,
554571
cancellationToken
555572
).ConfigureAwait(false);
556573

@@ -626,9 +643,8 @@ CancellationToken cancellationToken
626643
var queryItem = profile.Encoding.GetString(arguments);
627644

628645
if (!plugins.TryGetValue(queryItem, out var plugin)) {
629-
return SendResponseAsync(
646+
return SendUnknownServiceResponseAsync(
630647
client,
631-
ResponseLinesUnknownService,
632648
cancellationToken
633649
);
634650
}

0 commit comments

Comments
 (0)