Commit Graph

51 Commits

Author SHA1 Message Date
Alexandru Macocian 032edb81d6 Integrate Microsoft.Logging.Abstractions 2021-10-01 14:56:38 +02:00
Alexandru Macocian 867fa12a6c Support for interpolated URLs
Implemented use of TypeConverters for requests and responses
2021-09-29 00:41:36 +02:00
Alexandru Macocian 848a56859f Disable all related server tests for CI 2021-06-02 15:28:07 +02:00
Alexandru Macocian dfe85bca09 Disable problematic tests 2021-06-02 15:17:53 +02:00
Alexandru Macocian d44deb3124 Change UTs target framework to .net5.0 2021-06-02 14:33:04 +02:00
Alexandru Macocian b015132527 Configurable return 500 on exception in http handlers.
Configurable websocket hearbeat.
Nit fixes.
2021-05-12 14:08:25 +02:00
Alexandru Macocian 619992da80 Switched server resources to Slim.ServiceManager.
Changed HttpRoutingHandler to use the general Slim.ServiceManager.
Changed WebsocketRoutingHandler to a similar approach as HttpRoutingHandler.
Implemented IRunOnStartup interface for handlers.
2021-03-12 14:05:55 +01:00
Alexandru Macocian 50669ad289 Major rework of HttpRoutes.
Implemented DI based routes.
Implemented converters for HttpRequest and HttpResponse.
Fixed e2e tests.
2021-03-09 15:19:54 +01:00
Alexandru Macocian 748785014a Improved value retrieval from http request form.
Nit fixes.
Scheduler that fires separate threads for each request.
Removed https from e2e tests.
2021-03-01 20:59:16 +01:00
Alexandru Macocian b677395998 - set ReadTimeout to high value only when messages appear to be long 2020-04-12 11:16:25 +02:00
Alexandru Macocian 4f16349933 Adds an option to configure ReadTimeout for socket operations 2020-04-11 16:05:54 +02:00
Alexandru Macocian 514bf44b2e bug fixes 2020-04-11 15:56:18 +02:00
Alexandru Macocian 71cc470569 - server now reads continiously instead of polling
- server increases reading delay when client is inactive
- new procedure to check if the client is connected or not
- ftphandler sets affinity to connected client
2020-04-10 21:44:40 +02:00
Alexandru Macocian e5ccfff5da - stop redundant parsing of HttpRequests for HttpRoutingHandler
- introduced handler affinity to let handlers claim a client and prevent other handlers from receiving messages from the client
- Httproutinghandler will route based on headers without loading the entire message
2020-04-09 18:48:36 +02:00
Alexandru Macocian a1672079c2 Make HttpHandler and HttpRoutingHandler take ownership of fragmented messages, and discard messages that don't broadcast the entire headers first 2020-04-08 16:15:41 +02:00
Alexandru Macocian 4e09c18787 Added SafeNetworkStream to client 2020-04-08 15:10:22 +02:00
Alexandru Macocian e47790b97f - Fixed issues with not knowing size of message when reading from SSL stream
- Implemented a SafeNetworkStream that protects from SSL stream overreading, and stores information regarding the actual number of bytes to be read.
- E2E test covering large uploading
2020-04-08 14:47:54 +02:00
Alexandru Macocian 71950ce372 added https certificate for e2e tests 2020-04-08 14:41:25 +02:00
Alexandru Macocian 0582a82d6c - Fixed messages being handled non-sequentially during parallel processing of the clients
- Made unit tests use SSL encryption
- Added netcore3.1 to build list
2020-04-06 22:45:34 +02:00
Alexandru Macocian 0f26f7c6e0 Base implementation for FtpHandler 2020-04-05 16:25:10 +02:00
Alexandru Macocian 72060f15dd Started working on FTP modules 2020-04-05 13:58:14 +02:00
Alexandru Macocian 64f1453061 Built threadsafe collection for running asynchronous operations on clients
Fixed enqueuing and dequeuing of messages
Made http routes asynchronous to support long running operations without delays
2020-03-28 13:39:41 +01:00
Alexandru Macocian 6f50734748 Some logic to build request from form data 2020-03-24 11:05:14 +01:00
Alexandru Macocian 59b91ce92a Implemented form data handling for multipart form-data for text and files 2020-03-23 21:38:42 +01:00
Alexandru Macocian 990bba3586 Tried another fix for concurrent client handling 2020-03-22 15:23:59 +01:00
Alexandru Macocian c035d2a3e2 fixed race condition to client initialization 2020-03-21 12:41:29 +01:00
Alexandru Macocian 6a867d46d4 Introduced schedulers and blocking queues for messages to provide more options on how to handle clients 2020-03-21 02:04:08 +01:00
Alexandru Macocian 230a1e086e Add a way to get all handlers and loggers on runtime 2020-03-20 18:56:11 +01:00
Alexandru Macocian a76b81610d Added a tick override to websocket route modules 2020-03-11 22:56:44 +01:00
Alexandru Macocian fc36acc494 Added SendingTemplate to HttpResponse
Implemented WebsocketRouteBase
2020-03-11 22:36:13 +01:00
Alexandru Macocian 97e0cf9f4e Ssl authentication timeout option 2020-03-10 12:24:08 +01:00
Alexandru Macocian 247f1b27e7 Renamed namespace for easier access
Added tests for stopping the server properly
2020-03-06 11:07:47 +01:00
Alexandru Macocian 12606c4942 Added resources to server 2020-03-04 11:39:26 +01:00
amacocian 925e1ec3c2 Fixed E2E tests to run with server.runasync 2020-02-26 14:15:19 +01:00
amacocian aa63e598f2 Implemented http request templates to provide model directly to http module handlers 2020-02-24 15:53:15 +01:00
amacocian 6aab10c6f2 Added HttpRequest unit tests
Modified HttpRequest parser to skip the first '/' from URI
2020-02-21 13:45:54 +01:00
amacocian 7317121a5d - added duration to discard messages when they were sitting for too long in buffer uncompleted
- added size limit for handling http messages
2020-02-20 16:55:00 +01:00
Alexandru Macocian e7da3d7f29 Server now handles exceptions during message receiving individually per handler 2020-02-19 19:58:45 +01:00
Alexandru Macocian 261fc440a4 Changed manual buffering to memorystream in HttpResponse parsing 2020-02-19 19:47:47 +01:00
Alexandru Macocian a88f347083 Fixed critical bug in how HttpHandler would repackage fragmented messages
Fixed small bug in parsing of HttpResponse from bytes
Added E2E test for fragmented http messages
2020-02-19 19:36:11 +01:00
amacocian 280947c283 Added E2E test with query in URL 2020-02-19 14:38:49 +01:00
Alexandru Macocian 2c8f1e3493 Implemented http message parsing for split messages 2020-02-17 20:07:48 +01:00
amacocian e40352e6e8 Started work on resilient HttpHandler that repackages broken requests 2020-02-17 19:15:10 +01:00
amacocian 83a58b8db3 Fixed E2E tests 2020-02-14 12:13:18 +01:00
amacocian 75780ee636 - updated to 1.4 2020-02-14 12:10:57 +01:00
amacocian cdc994afab - expose certificate validation and encryption policies for https 2020-02-14 11:55:28 +01:00
amacocian 95af301ab7 - Changed name from HttpRoutingModule to HttpRoute
- Changed AddModule to AddRoute
- Removed usage of RoutingEnablers to instead use Func
2020-01-22 14:12:06 +01:00
amacocian 6b9308731f - Implemented HttpRoutingHandler to implement handlers with routes
- Small QOL changes in HttpMessage, HttpRequest and HttpResponse classes
2020-01-21 13:54:15 +01:00
amacocian a790df4226 Implemented HTTP stress test 2019-11-30 18:46:01 +01:00
amacocian 577c17d9ec Added an extra unit test for websockets. 2019-11-18 14:21:58 +01:00