Hello,

We need to forward 1xx control messages from servers to clients. I see two implementation options:

1. Use Store. Squid client side expects responses via storeClientCopy, so we will be using the usual/normal code paths. Multiple 1xx responses may be handled with relative ease. The 1xx responses in Store will be treated kind of as regular response headers, except they will not be cached and such. The code will need to "skip" them until they reach the socket-writing client.

2. Bypass Store. Contact fwdStart caller (e.g., clientReplyContext) directly and give it a 1xx response to forward. Store code remains unchanged. It may be difficult to get from the fwdStart caller to the client socket and comm_write. It will be difficult to handle multiple 1xx responses or a regular response that arrives before we are done with writing 1xx response (all unusual, but can happen!).

Both approaches may have to deal with crazy offset management, clientStreams manipulations, and other client-side mess.


Do you see any other options? Which option is the best?


Thank you,

Alex.

Reply via email to