Commit Graph

207 Commits

Author SHA1 Message Date
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
Alexandru Macocian 6f50734748 Some logic to build request from form data 2020-03-24 11:05:14 +01:00
Alexandru Macocian be1642fba1 2.2.3 2020-03-23 23:12:51 +01:00
Alexandru Macocian e660ebff0e Fixed null reference on HttpRequest during POST 2020-03-23 23:11:21 +01:00
Alexandru Macocian 33e5b96af6 Upgraded to 2.2.2 2020-03-23 22:43:33 +01:00
Alexandru Macocian e5544bce2e fixed a bug caused by http message fragmentation 2020-03-23 22:43:02 +01:00
Alexandru Macocian a6c056a715 PartialHttpRequest builds HttpRequest with form 2020-03-23 22:31:55 +01:00
Alexandru Macocian 730530a47a Added new multipart parsing to partialhttprequest as well 2020-03-23 22:26:23 +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 7ac2fa4012 Removed concurrent server ssl authentication 2020-03-22 15:47:22 +01:00
Alexandru Macocian 20f29f58ae Updated to 2.1.7 2020-03-22 15:24:32 +01:00
Alexandru Macocian 990bba3586 Tried another fix for concurrent client handling 2020-03-22 15:23:59 +01:00
Alexandru Macocian f596329a01 Fixed another issue due to race conditions to client objects 2020-03-22 14:50:49 +01:00
Alexandru Macocian 1add3e19f2 Fixed some concurrency issues due to parallel scheduling of clients 2020-03-22 11:46:21 +01:00
Alexandru Macocian f288ba7524 Changed websocket initialization response to not include content-length header, according to the RFC 7230 Section 3.3.2 2020-03-22 11:13:26 +01:00
Alexandru Macocian da121bfe4b Upgraded to 2.1.3 2020-03-21 12:42:41 +01:00
Alexandru Macocian 2750dafaab space 2020-03-21 12:42:11 +01:00
Alexandru Macocian c035d2a3e2 fixed race condition to client initialization 2020-03-21 12:41:29 +01:00
Alexandru Macocian 2b1bbec49d Implemented sequential scheduler 2020-03-21 12:26:43 +01:00
Alexandru Macocian 93b81060d3 SetScheduler method 2020-03-21 12:10:47 +01:00
Alexandru Macocian b1b32dfdbb Package version 2.1.0 2020-03-21 02:06:34 +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 6d858eac3f Stop processing clients if they're marked to be removed 2020-03-16 12:27:05 +01:00
Alexandru Macocian 4d0442dc2c Cleaned client remove logic for websocket routing handler 2020-03-11 23:30:29 +01:00
Alexandru Macocian 6b2e43a0cf Fixed a bug when multiple clients are getting removed from the websocket routing handler 2020-03-11 23:29:04 +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 d659d22d5a Clean previous existing connections 2020-03-10 13:38:27 +01:00
Alexandru Macocian 4f6f9f8f4c Separate tcp client accept procedure from main loop 2020-03-10 13:31:55 +01:00
Alexandru Macocian 97e0cf9f4e Ssl authentication timeout option 2020-03-10 12:24:08 +01:00
Alexandru Macocian 3951166912 Refactored main server loop and added cancellation to ssl negotiation due to random hangs 2020-03-10 11:31:42 +01:00
Alexandru Macocian 4b86e8197f Updated to 1.8 2020-03-06 11:08:51 +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 310555324a Updated to 1.7.1 2020-03-04 13:10:57 +01:00