Perform one step of the protocol handshake to accept a new client.
This function must be called on a client returned by avio_accept() before
using it as a read/write context.
It is separate from avio_accept() because it may block.
A step of the handshake is defined by places where the application may
decide to change the proceedings.
For example, on a protocol with a request header and a reply header, each
one can constitute a step because the application may use the parameters
from the request to change parameters in the reply; or each individual
chunk of the request can constitute a step.
If the handshake is already finished, avio_handshake() does nothing and
returns 0 immediately.
@param c the client context to perform the handshake on
@return 0 on a complete and successful handshake
> 0 if the handshake progressed, but is not complete
< 0 for an AVERROR code
Perform one step of the protocol handshake to accept a new client. This function must be called on a client returned by avio_accept() before using it as a read/write context. It is separate from avio_accept() because it may block. A step of the handshake is defined by places where the application may decide to change the proceedings. For example, on a protocol with a request header and a reply header, each one can constitute a step because the application may use the parameters from the request to change parameters in the reply; or each individual chunk of the request can constitute a step. If the handshake is already finished, avio_handshake() does nothing and returns 0 immediately.
@param c the client context to perform the handshake on @return 0 on a complete and successful handshake > 0 if the handshake progressed, but is not complete < 0 for an AVERROR code