Releases: sisk-http/core
v0.16-rc-3
- fixed an issue
HttpRequest.GetQueryValue
would throw other exceptions besidesInvalidCastException
. - fixed an issue that read streams wasn't positioned at zero before sending again.
- fixed an issue regarding
Router.AutoScan<>
v0.15.3
This update includes an critical bugfix for v.0.15.3 and v.0.16-rc-3:
- when using
ResolveForwardedOriginAddress
, the forwarded IP was not the proxy IP.
v0.16-rc-1
This is an new major update for the Sisk Framework. Please, read [the changelogs] for the Sisk 0.16 updates.
v0.15.2
v0.15.1
Core:
- Fixed a coercion issue: HttpResponse.WithContent() expects an
HttpContent
and not aByteArrayContent
. #3
Full Changelog: 0.15...0.15.1
v.0.15
Please, read the release overview for full changelogs and details for this version.
Core:
- Added the HttpContext.OverrideHeaders property.
- Added the HttpRequest.SetContextBag and GetContextBag methods.
- Added the Router.RegisterValueHandler method.
- Added the RouterModule class.
- Added the ValueResult class.
- Added the HttpWebSocket.MaxAttempts property.
- Added the HttpStreamPingPolicy class.
- Added the HttpRequest.InputStream property.
- Added an string representation to HttpRequest.ToString().
- Added the HttpServerConfiguration.KeepAlive property.
- Added Fluent Interface style methods for HttpResponse: WithContent, WithHeader, WithHeaders, WithStatus. Documented in a9c8873.
- Added the HttpServerFlags.IdleConnectionTimeout which determines the time to keep an keep-alive connection alive.
- Improved regex routes functionality, with improved performance and regex groups to queries.
- Renamed HttpRequestEventSource.KeepAlive -> WaitForFail.
- Simplified the way HttpRequest obtains the origin IP of the request.
- Rewrite the return type of HttpRequest.SendTo from HttpResponse to object.
- Rewrite the LogStream.WriteException output format.
- Rewrite the return type of RouterCallback delegate from HttpResponse to object.
- The HttpContext.HttpServer property ins't nullable anymore.
- The HttpRequest.Context property inst't nullable anymore.
- The RouteMethod.Any enum nows flags all the previous defined Route methods.
- Extended the CreateRedirectResponse method to be able to extract the route from a RouteCallback with the RouteAttribute attribute.
- Fixed an bug where the WebSocket was throwing an exception when the client didn't terminated the close handshake with the server.
- Fixed a bug where requests with non-common HTTP methods were not accepted in routes even when used in RouteMethod.Any.
- Fixed an bug where regex routers weren't matching ignore-case when MatchRoutesIgnoreCase was enabled.
- Fixed a bug where README.html was being moved to the target project directory.
- Dropped support for hot reload. Removed the ServiceReloadManager class.
Service Providers:
- Fixed inconsistencies in the Sisk.ServiceProvider package namespace. Now the default namespace is Sisk.ServiceProvider.
v.0.14
Released: July 17th, 2023
This big update includes some several bug fixes which brings more stability to services which run on Sisk.
Core:
- Docs cleanup.
- Added the
%rm
log constant, which is replaced by the request HTTP method. - Added the
HttpContext.Request
property. - Fixed some issues related to
HttpResponseStream
. - Fixed an issue where the HTTP server was writing ignored errors to the output stream.
- Fixed an issue where closed streams weren't returning an
ConnectionClosed
status. - Replaced the
ExceptionErrorCallback
delegate second parameter type fromHttpRequest
toHttpContext
. HttpRequest.Close()
should now reset the connection between the client and server even if the content
was not completely sent.- Created the
RoutePrefix
attribute, which can be applied to classes containing routes. - Created the
RouteGet
,RoutePost
,RoutePut
,RoutePatch
andRouteDelete
attributes. - Created the
HttpRequest.SendTo
method, which prevents stack overflow exceptions when
redirecting the execution context to another callback. - Created the
HtmlContent
class. - Now it's possible to set more than one route to the same action callback.
- Removed
HttpServerConfiguration.Verbose
obsolete property. - Removed
VerboseMode
obsolete enum. - Removed
HttpResponse.DefaultEncoding
obsolete property. - Removed the obsolete
CrossOriginResourceSharingHeaders
constructor. - Created the
HttpResponseStream
class, which allows the user to write contents on-fly to the HTTP response output stream. - Rewrited
HttpServerExecutionStatus
enum items. Obsolete items was removed. - Fixed an bug where the CORS headers was being set on Event Source connections even if
HttpServerFlags.SendCorsHeaders
was false. - Fixed an bug where the CORS headers was not being set on empty responses.
- Fixed an several websocket issue.
0.13.1, rev 1
Released: June 9, 2023
You can now export Sisk source code to a contained file with all the source code needed to run Sisk. See more details inside the merge
folder.
Core:
- Added the
HttpServerFlags.ForceTrailingSlash
, which determines if the HTTP server should automatically rewrite URL paths
to end with / before the query string. Does not works with Regex routes. - Added the
CrossOriginResourceSharingPolicy.AllowOrigins
property, which allows to routeAllow-Origin
header to multiple
domains. - Rewrited the
CrossOriginResourceSharingPolicy
properties descriptions. - Removed all
HttpRequest.Create*
helper methods, plus created some additional constructors forHttpResponse
. - Sisk does not requires to be builded with
/unsafe
anymore. - Code cleanup.
0.13
Released: May 20, 2023
Core:
- Listening hosts no longer carries an
Hostname
property. Instead of this, the property was moved to theListeningPort
structure. With this change, an ListeningHost can now listen to multiple hostnames, at multiple ports at multiple secure states, to the same router. Learn more about this change in the docs. - Header values were coming with invalid encoding when using UTF-8 characters. Sisk's native HTTP engine (Microsoft HTTP2) does not support header values other than ASCII, however the
HttpServerFlags.NormalizeHeadersEncodings
flag will enable codepage conversion so that you get header values in the correct encoding.
HTTP header names must came in ASCII.
- Improvements made to the WebSocket module:
- Now you can send and wait for messages synchronously by the method
WaitNext()
, which blocks the current thread and waits for the next message. - Added an timeout option for
HttpWebSocket.WaitForClose()
.
- Now you can send and wait for messages synchronously by the method
- Improvements to the way the server writes log messages.
- Improved router collision checker.
- Added an
HttpServer.Emit()
method, for HTTP server testing only. Don't use it on production environments. - Added an
LogStream.WriteException()
to dump error logs. - Fully removed all Regex uses on the HTTP server and replaced with string-methods. Performance should increase with this change.
- Fixed an bug where the cookie
SameSite
were being set with an unexpected$
. - Fixed an bug where the HTTP Event Sources and WebSockets were raising collection issues when using with too many simultaneos threads.
- Fixed an bug where the previous WebSocket connection with an identifier that already had an connection weren't being close by the new connection.
- Fixed an bug where request handlers weren't running in the same try-catch context as the routers callbacks.
- Removed
IRequestHandler.Identifier
property.
Service provider:
- Adjusted the configuration syntax to match the new listening ports and hosts concept.
- Added an new configurator:
UseHttpServer()
. - Added an new configurator:
UseCors()
. - Renamed
UseOverrides()
toUseConfiguration()
. - The server bootstrap method now runs outside an try-catch context, so you can get more detailed errors when bootstraping your application.
0.12.1
This article includes changelogs from 0.12 and 0.12.1.
- Renamed these types namespaces from
Sisk.Core.Http
toSisk.Core.Http.Streams
:- HttpWebSocket
- HttpWebSocketConnectionCollection
- WebSocketRegistrationHandler
- WebSocketUnregistrationHandler
- HttpRequestEventSource
- HttpEventSourceCollection
- EventSourceRegistrationHandler
- EventSourceUnregistrationHandler
- Created the
HttpWebSocketConnectionCollection
class, accessible fromHttpServer.WebSockets
. - Added an option to identify web sockets connections when accepting the socket connection.
- Changed the
WebSocket.OnReceive
from property to an event. - Deprecated
HttpServerExecutionStatus.EventSourceClosed
. - Some bug fixes.
Service providers
- Router factories now has an
Bootstrap
method, which is indeed to configure the services before
initializing the HTTP server.