You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Currently a peer is created for each client connection even though the connections may be coming from the same client. As a result there are multiple TfwClient{} instances for the same peer.
One TfwClient{} instance should be created for each client. An incoming connection should be matched with a specific peer (TfwClient{}), and it should be linked with that peer. In the end, there should be a large number of client connections linked to a smaller number of peers.
Peers are identified by a specific set of attributes, such as an IP address, etc. So there's a task of maintaining a store of peers that provides for fast insert/delete/search, perhaps a hash. Frang deals with a very similar, if not the same task. There needs to be a single store of peers that Frang, the client code, and the rest of code can use.
Frang needs to be reworked to use a single store of peers.
The text was updated successfully, but these errors were encountered:
There are also several problems linked with the issue:
Security. Currently we don't check Sticky cookie value at all, i.e. malicious user can send us arbitrary cookie value and we pass the request to backend server. To fix the issue we must compare received cookie value with the stored in TfwClient. This must be done in tfw_http_sticky_found().
Sessions. (1) requires to store cookie value. However, since the same TfwClient now can maintain many TfwConnection which easily can have different HTTP sessions (send different sticky cookie values), we have to introduce new entity - TfwSession which exactly describes HTTP session. (Meantime, one there can be many HTTP sessions within the same TCP connection). TfwSession must handle at least HTTP session timestamp and sticky cookie value.
Sessions must be implemented in this task since now TfwClinet servicing many connections can not have cookie member which is actually per-session member, so TfwSession abstraction must be introduced to track HTTP sessions identified by sticky cookies.
Currently a peer is created for each client connection even though the connections may be coming from the same client. As a result there are multiple
TfwClient{}
instances for the same peer.One
TfwClient{}
instance should be created for each client. An incoming connection should be matched with a specific peer (TfwClient{}
), and it should be linked with that peer. In the end, there should be a large number of client connections linked to a smaller number of peers.Peers are identified by a specific set of attributes, such as an IP address, etc. So there's a task of maintaining a store of peers that provides for fast insert/delete/search, perhaps a hash.
Frang
deals with a very similar, if not the same task. There needs to be a single store of peers that Frang, the client code, and the rest of code can use.Frang needs to be reworked to use a single store of peers.
The text was updated successfully, but these errors were encountered: