Commit Graph

241 Commits

Author SHA1 Message Date
amacocian dbc648992e Merge pull request #1 from AlexMacocian/alexmacocian/cicd-pipelines
Introduce CI & CD pipelines
2021-06-02 15:36:27 +02:00
Alexandru Macocian 1a70065d49 Disable CD pipeline for PRs 2021-06-02 15:33:48 +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 bb9ea4773f Enable verbosity in unit tests 2021-06-02 14:58:40 +02:00
Alexandru Macocian 2ca324be10 Fix name 2021-06-02 14:34:14 +02:00
Alexandru Macocian d44deb3124 Change UTs target framework to .net5.0 2021-06-02 14:33:04 +02:00
Alexandru Macocian 3da1a38e06 Introduce CI & CD pipelines 2021-06-02 14:28:46 +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 2b198b5f63 Include license in nuget package. 2021-03-26 12:03:45 +01:00
Alexandru Macocian 3b21db8abd Expose IPAddress of the server. 2021-03-20 11:47:50 +01:00
Alexandru Macocian 3fbfe4ee2e Implement pong response to ping in websocketroutinghandler. 2021-03-15 16:00:27 +01: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 39fda909a0 Fixed a bug during registration of server resources. 2021-03-10 15:45:36 +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 8ad0b27029 Reconnect policy for tcp client. 2021-03-02 17:14:35 +01:00
Alexandru Macocian 106f244500 Target .net5.0 2021-03-01 21:01:21 +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 0b24bb7723 Extra logging for websocket handler
Fixes for websocket handler
Fix parsing of http response based on http specification document
2020-11-02 18:52:26 +01:00
Alexandru Macocian cb5da000e7 Factory method for logging message contents. 2020-10-05 13:56:27 +02:00
Alexandru Macocian 4c0545bda9 Added the option to log message contents 2020-10-05 13:17:03 +02:00
Alexandru Macocian d7c9c10cf3 Url functions for constructing and destructing urls
Builder methods for http headers for easier building of requests/responses
Incremented build version
2020-05-25 18:57:11 +02:00
Alexandru Macocian 54daebfb01 Fixed missing telemetry on normal httprouting response
Upgraded to 2.7.10
2020-04-17 16:35:56 +02:00
Alexandru Macocian fd37eba716 - Added http telemetry
- Skipping to be removed clients from processing
- Incremented to 2.7.9
2020-04-17 11:19:23 +02:00
Alexandru Macocian 93414e1361 lower threshold for small messages 2020-04-12 14:46:46 +02: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 4af727c959 - made gathering of the messages asynchronous 2020-04-12 10:04:10 +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 8939d32145 - reverted to poll-based synchronous reading of client messages
- use of stream that protects networkstream from timeout exception and keeps the data intact
2020-04-11 11:37:39 +02:00
Alexandru Macocian a3584b7c60 Fixed http handlers to respect the 100-continue protocol 2020-04-10 23:02:47 +02:00
Alexandru Macocian 7c717320b8 Updated to 2.7.3 2020-04-10 22:43:33 +02:00
Alexandru Macocian 79e448e765 - Log ip with message size
- Stop polling to avoid protocol violations
2020-04-10 22:37:24 +02:00
Alexandru Macocian 3229216044 - Increase buffer size to allow for received messages to reduce handler loops
- Log received message size in debug
2020-04-10 22:17:05 +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 947fd08d9d set http request maximum size to max value 2020-04-05 19:32:20 +02:00
Alexandru Macocian 75d5f261a3 2.4 2020-04-05 16:25:36 +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 941accb523 Introduced LastActivity as the last time any communication was done with the client.
Hid the setter of LastActivity and LastReceivedMessage so that only the server can set those values
2020-03-29 18:13:23 +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 18b9f50635 2.2.5 2020-03-27 19:19:38 +01:00
Alexandru Macocian 1eb95368ea Introduced typed resources for client 2020-03-27 19:19:12 +01:00
Alexandru Macocian 8025164ac7 2.2.4 2020-03-24 11:06:03 +01:00