logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

SSL_set_incoming_stream_policy, SSL_INCOMING_STREAM_POLICY_AUTO, SSL_INCOMING_STREAM_POLICY_ACCEPT,

Description

SSL_set_incoming_stream_policy() policy changes the incoming stream policy for a QUIC connection.
       Depending on the policy configured, OpenSSL QUIC may automatically reject incoming streams initiated by
       the peer. This is intended to ensure that legacy applications using single-stream operation with a
       default stream on a QUIC connection SSL object are not passed remotely-initiated streams by a peer which
       those applications are not prepared to handle.

       app_error_code is an application error code which will be used in any QUIC STOP_SENDING or RESET_STREAM
       frames generated to implement the policy. The default application error code is 0.

       The valid values for policy are:

       SSL_INCOMING_STREAM_POLICY_AUTO
           This is the default setting. Incoming streams are accepted according to the following rules:

           •   If   the  default  stream  mode  (configured  using  SSL_set_default_stream_mode(3))  is  set  to
               SSL_DEFAULT_STREAM_MODE_AUTO_BIDI (the default) or SSL_DEFAULT_STREAM_MODE_AUTO_UNI, the incoming
               stream is rejected.

           •   Otherwise (where the default stream mode is  SSL_DEFAULT_STREAM_MODE_NONE),  the  application  is
               assumed to be stream aware, and the incoming stream is accepted.

       SSL_INCOMING_STREAM_POLICY_ACCEPT
           Always accept incoming streams, allowing them to be dequeued using SSL_accept_stream(3).

       SSL_INCOMING_STREAM_POLICY_REJECT
           Always reject incoming streams.

       Where an incoming stream is rejected, it is rejected immediately and it is not possible to gain access to
       the  stream  using  SSL_accept_stream(3). The stream is rejected using QUIC STOP_SENDING and RESET_STREAM
       frames as appropriate.

History

SSL_set_incoming_stream_policy() was added in OpenSSL 3.2.

Name

       SSL_set_incoming_stream_policy, SSL_INCOMING_STREAM_POLICY_AUTO, SSL_INCOMING_STREAM_POLICY_ACCEPT,
       SSL_INCOMING_STREAM_POLICY_REJECT - manage the QUIC incoming stream policy

Return Values

       Returns 1 on success and 0 on failure.

       This function fails if called on a QUIC stream SSL object, or on a non-QUIC SSL object.

See Also

SSL_set_default_stream_mode(3), SSL_accept_stream(3)

Synopsis

        #include <openssl/ssl.h>

        #define SSL_INCOMING_STREAM_POLICY_AUTO
        #define SSL_INCOMING_STREAM_POLICY_ACCEPT
        #define SSL_INCOMING_STREAM_POLICY_REJECT

        int SSL_set_incoming_stream_policy(SSL *conn, int policy,
                                                  uint64_t app_error_code);

See Also