Skip to content

Releases: sisk-http/core

v0.16-rc-3

07 Dec 20:15
Compare
Choose a tag to compare
  • fixed an issue HttpRequest.GetQueryValue would throw other exceptions besides InvalidCastException.
  • fixed an issue that read streams wasn't positioned at zero before sending again.
  • fixed an issue regarding Router.AutoScan<>

v0.15.3

25 Nov 22:16
Compare
Choose a tag to compare

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

13 Nov 17:42
Compare
Choose a tag to compare

This is an new major update for the Sisk Framework. Please, read [the changelogs] for the Sisk 0.16 updates.

v0.15.2

30 Oct 13:38
6348332
Compare
Choose a tag to compare

Released: Oct 10, 2023

6348332:

  • Fixed an issue where HttpResponse.Close() weren't refusing connections, instead was closing then.
  • Fixed HttpStatusInformation missing docs components.

v0.15.1

30 Sep 06:46
039739c
Compare
Choose a tag to compare

Core:

  • Fixed a coercion issue: HttpResponse.WithContent() expects an HttpContent and not a ByteArrayContent. #3

Full Changelog: 0.15...0.15.1

v.0.15

25 Aug 02:29
Compare
Choose a tag to compare

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

17 Jul 15:04
Compare
Choose a tag to compare

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 from HttpRequest to HttpContext.
  • 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 and RouteDelete 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

10 Jun 04:09
Compare
Choose a tag to compare

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 route Allow-Origin header to multiple
    domains.
  • Rewrited the CrossOriginResourceSharingPolicy properties descriptions.
  • Removed all HttpRequest.Create* helper methods, plus created some additional constructors for HttpResponse.
  • Sisk does not requires to be builded with /unsafe anymore.
  • Code cleanup.

0.13

20 May 07:09
Compare
Choose a tag to compare

Released: May 20, 2023

Core:

  • Listening hosts no longer carries an Hostname property. Instead of this, the property was moved to the ListeningPort 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().
  • 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() to UseConfiguration().
  • 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

02 May 23:55
Compare
Choose a tag to compare

This article includes changelogs from 0.12 and 0.12.1.

  • Renamed these types namespaces from Sisk.Core.Http to Sisk.Core.Http.Streams:
    • HttpWebSocket
    • HttpWebSocketConnectionCollection
    • WebSocketRegistrationHandler
    • WebSocketUnregistrationHandler
    • HttpRequestEventSource
    • HttpEventSourceCollection
    • EventSourceRegistrationHandler
    • EventSourceUnregistrationHandler
  • Created the HttpWebSocketConnectionCollection class, accessible from HttpServer.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.