diff options
author | vnugent <public@vaughnnugent.com> | 2023-01-08 14:44:01 -0500 |
---|---|---|
committer | vnugent <public@vaughnnugent.com> | 2023-01-08 14:44:01 -0500 |
commit | be6dc557a3b819248b014992eb96c1cb21f8112b (patch) | |
tree | 5361530552856ba8154bfcfbfac8377549117c9e /Net.Http/src/Exceptions/TerminateConnectionException.cs | |
parent | 072a1294646542a73007784d08a35ffcad557b1b (diff) |
Initial commit
Diffstat (limited to 'Net.Http/src/Exceptions/TerminateConnectionException.cs')
-rw-r--r-- | Net.Http/src/Exceptions/TerminateConnectionException.cs | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/Net.Http/src/Exceptions/TerminateConnectionException.cs b/Net.Http/src/Exceptions/TerminateConnectionException.cs new file mode 100644 index 0000000..b854b6e --- /dev/null +++ b/Net.Http/src/Exceptions/TerminateConnectionException.cs @@ -0,0 +1,57 @@ +/* +* Copyright (c) 2022 Vaughn Nugent +* +* Library: VNLib +* Package: VNLib.Net.Http +* File: TerminateConnectionException.cs +* +* TerminateConnectionException.cs is part of VNLib.Net.Http which is part of the larger +* VNLib collection of libraries and utilities. +* +* VNLib.Net.Http is free software: you can redistribute it and/or modify +* it under the terms of the GNU Affero General Public License as +* published by the Free Software Foundation, either version 3 of the +* License, or (at your option) any later version. +* +* VNLib.Net.Http is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU Affero General Public License for more details. +* +* You should have received a copy of the GNU Affero General Public License +* along with this program. If not, see https://www.gnu.org/licenses/. +*/ + +using System; +using System.Net; + +namespace VNLib.Net.Http +{ + /// <summary> + /// User code may throw this exception to signal the <see cref="HttpServer"/> to drop + /// the transport connection and return an optional status code + /// </summary> + public class TerminateConnectionException : Exception + { + internal HttpStatusCode Code { get; } + + /// <summary> + /// Creates a new instance that terminates the connection without sending a response to the connection + /// </summary> + public TerminateConnectionException() : base(){} + /// <summary> + /// Creates a new instance of the connection exception with an error code to respond to the connection with + /// </summary> + /// <param name="responseCode">The status code to send to the user</param> + public TerminateConnectionException(HttpStatusCode responseCode) + { + this.Code = responseCode; + } + + public TerminateConnectionException(string message) : base(message) + {} + + public TerminateConnectionException(string message, Exception innerException) : base(message, innerException) + {} + } +}
\ No newline at end of file |