mirror of
				https://gitea.invidious.io/iv-org/litespeed-quic.git
				synced 2024-08-15 00:53:43 +00:00 
			
		
		
		
	Code cleanup. Improve comments in lsquic.h
This commit is contained in:
		
							parent
							
								
									aa82021170
								
							
						
					
					
						commit
						b86524a470
					
				
					 8 changed files with 113 additions and 141 deletions
				
			
		
							
								
								
									
										185
									
								
								include/lsquic.h
									
										
									
									
									
								
							
							
						
						
									
										185
									
								
								include/lsquic.h
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -34,9 +34,7 @@ extern "C" {
 | 
			
		|||
/** Server mode */
 | 
			
		||||
#define LSENG_SERVER (1 << 0)
 | 
			
		||||
 | 
			
		||||
/** Treat stream 3 as headers stream and, in general, behave like the
 | 
			
		||||
 *  regular QUIC.
 | 
			
		||||
 */
 | 
			
		||||
/** Use HTTP behavior */
 | 
			
		||||
#define LSENG_HTTP  (1 << 1)
 | 
			
		||||
 | 
			
		||||
#define LSENG_HTTP_SERVER (LSENG_SERVER|LSENG_HTTP)
 | 
			
		||||
| 
						 | 
				
			
			@ -47,53 +45,6 @@ extern "C" {
 | 
			
		|||
 */
 | 
			
		||||
enum lsquic_version
 | 
			
		||||
{
 | 
			
		||||
 | 
			
		||||
    /** Q035.  This is the first version to be supported by LSQUIC. */
 | 
			
		||||
    /* Support for this version has been removed.  The comment remains to
 | 
			
		||||
     * document the changes.
 | 
			
		||||
     */
 | 
			
		||||
 | 
			
		||||
    /*
 | 
			
		||||
     * Q037.  This version is like Q035, except the way packet hashes are
 | 
			
		||||
     * generated is different for clients and servers.  In addition, new
 | 
			
		||||
     * option NSTP (no STOP_WAITING frames) is rumored to be supported at
 | 
			
		||||
     * some point in the future.
 | 
			
		||||
     */
 | 
			
		||||
    /* Support for this version has been removed.  The comment remains to
 | 
			
		||||
     * document the changes.
 | 
			
		||||
     */
 | 
			
		||||
 | 
			
		||||
    /*
 | 
			
		||||
     * Q038.  Based on Q037, supports PADDING frames in the middle of packet
 | 
			
		||||
     * and NSTP (no STOP_WAITING frames) option.
 | 
			
		||||
     */
 | 
			
		||||
    /* Support for this version has been removed.  The comment remains to
 | 
			
		||||
     * document the changes.
 | 
			
		||||
     */
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Q039.  Switch to big endian.  Do not ack acks.  Send connection level
 | 
			
		||||
     * WINDOW_UPDATE frame every 20 sent packets which do not contain
 | 
			
		||||
     * retransmittable frames.
 | 
			
		||||
     */
 | 
			
		||||
    /* Support for this version has been removed.  The comment remains to
 | 
			
		||||
     * document the changes.
 | 
			
		||||
     */
 | 
			
		||||
 | 
			
		||||
    /*
 | 
			
		||||
     * Q041.  RST_STREAM, ACK and STREAM frames match IETF format.
 | 
			
		||||
     */
 | 
			
		||||
    /* Support for this version has been removed.  The comment remains to
 | 
			
		||||
     * document the changes.
 | 
			
		||||
     */
 | 
			
		||||
 | 
			
		||||
    /*
 | 
			
		||||
     * Q042.  Receiving overlapping stream data is allowed.
 | 
			
		||||
     */
 | 
			
		||||
    /* Support for this version has been removed.  The comment remains to
 | 
			
		||||
     * document the changes.
 | 
			
		||||
     */
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Q043.  Support for processing PRIORITY frames.  Since this library
 | 
			
		||||
     * has supported PRIORITY frames from the beginning, this version is
 | 
			
		||||
| 
						 | 
				
			
			@ -101,14 +52,6 @@ enum lsquic_version
 | 
			
		|||
     */
 | 
			
		||||
    LSQVER_043,
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Q044.  IETF-like packet headers are used.  Frames are the same as
 | 
			
		||||
     * in Q043.  Server never includes CIDs in short packets.
 | 
			
		||||
     */
 | 
			
		||||
    /* Support for this version has been removed.  The comment remains to
 | 
			
		||||
     * document the changes.
 | 
			
		||||
     */
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Q046.  Use IETF Draft-17 compatible packet headers.
 | 
			
		||||
     */
 | 
			
		||||
| 
						 | 
				
			
			@ -153,7 +96,7 @@ enum lsquic_version
 | 
			
		|||
};
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * We currently support versions 43, 46, 50, and Draft-24
 | 
			
		||||
 * We currently support versions 43, 46, 50, Draft-24, and Draft-25
 | 
			
		||||
 * @see lsquic_version
 | 
			
		||||
 */
 | 
			
		||||
#define LSQUIC_SUPPORTED_VERSIONS ((1 << N_LSQVER) - 1)
 | 
			
		||||
| 
						 | 
				
			
			@ -199,7 +142,7 @@ enum lsquic_hsk_status
 | 
			
		|||
 | 
			
		||||
/**
 | 
			
		||||
 * @struct lsquic_stream_if
 | 
			
		||||
 * @brief The definition of callback functions call by lsquic_stream to
 | 
			
		||||
 * @brief The definitions of callback functions called by lsquic_stream to
 | 
			
		||||
 * process events.
 | 
			
		||||
 *
 | 
			
		||||
 */
 | 
			
		||||
| 
						 | 
				
			
			@ -984,14 +927,29 @@ struct lsquic_keylog_if
 | 
			
		|||
    void      (*kli_close) (void *handle);
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/* TODO: describe this important data structure */
 | 
			
		||||
typedef struct lsquic_engine_api
 | 
			
		||||
/**
 | 
			
		||||
 * This struct contains a list of all callbacks that are used by the engine
 | 
			
		||||
 * to communicate with the user code.  Most of these are optional, while
 | 
			
		||||
 * the following are mandatory:
 | 
			
		||||
 *
 | 
			
		||||
 *  @ref ea_stream_if       The stream interface.
 | 
			
		||||
 *  @ref ea_packets_out     Function to send packets.
 | 
			
		||||
 *  @ref ea_lookup_cert     Function to look up certificates by SNI (used
 | 
			
		||||
 *                            in server mode).
 | 
			
		||||
 *
 | 
			
		||||
 * A pointer to this structure is passed to engine constructor
 | 
			
		||||
 * @ref lsquic_engine_new().
 | 
			
		||||
 */
 | 
			
		||||
struct lsquic_engine_api
 | 
			
		||||
{
 | 
			
		||||
    const struct lsquic_engine_settings *ea_settings;   /* Optional */
 | 
			
		||||
    /** Stream interface is required to manage connections and streams. */
 | 
			
		||||
    const struct lsquic_stream_if       *ea_stream_if;
 | 
			
		||||
    void                                *ea_stream_if_ctx;
 | 
			
		||||
    /** Function to send packets out is required. */
 | 
			
		||||
    lsquic_packets_out_f                 ea_packets_out;
 | 
			
		||||
    void                                *ea_packets_out_ctx;
 | 
			
		||||
    /** Function to look up certificates by SNI is used in server mode. */
 | 
			
		||||
    lsquic_lookup_cert_f                 ea_lookup_cert;
 | 
			
		||||
    void                                *ea_cert_lu_ctx;
 | 
			
		||||
    struct ssl_ctx_st *                (*ea_get_ssl_ctx)(void *peer_ctx);
 | 
			
		||||
| 
						 | 
				
			
			@ -1048,17 +1006,24 @@ typedef struct lsquic_engine_api
 | 
			
		|||
     */
 | 
			
		||||
    const struct lsquic_keylog_if       *ea_keylog_if;
 | 
			
		||||
    void                                *ea_keylog_ctx;
 | 
			
		||||
} lsquic_engine_api_t;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Create new engine.
 | 
			
		||||
 *
 | 
			
		||||
 * @param   lsquic_engine_flags     A bitmask of @ref LSENG_SERVER and
 | 
			
		||||
 *                                  @ref LSENG_HTTP
 | 
			
		||||
 *
 | 
			
		||||
 * @param   api                     Required parameter that specifies
 | 
			
		||||
 *                                    various callbacks.
 | 
			
		||||
 *
 | 
			
		||||
 * The engine can be instantiated either in server mode (when LSENG_SERVER
 | 
			
		||||
 * is set) or client mode.  If you need both server and client in your
 | 
			
		||||
 * program, create two engines (or as many as you'd like).
 | 
			
		||||
 */
 | 
			
		||||
lsquic_engine_t *
 | 
			
		||||
lsquic_engine_new (unsigned lsquic_engine_flags,
 | 
			
		||||
                   const struct lsquic_engine_api *);
 | 
			
		||||
                   const struct lsquic_engine_api *api);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Create a client connection to peer identified by `peer_ctx'.
 | 
			
		||||
| 
						 | 
				
			
			@ -1090,8 +1055,8 @@ lsquic_engine_connect (lsquic_engine_t *, enum lsquic_version,
 | 
			
		|||
 *              This may happen with version negotiation and public reset
 | 
			
		||||
 *              packets as well as some packets that may be ignored.
 | 
			
		||||
 *
 | 
			
		||||
 * @retval -1   Some error occurred.  Possible reasons are invalid packet
 | 
			
		||||
 *              size or failure to allocate memory.
 | 
			
		||||
 * @retval -1   An error occurred.  Possible reasons are failure to allocate
 | 
			
		||||
 *              memory and invalid @param sa_local in client mode.
 | 
			
		||||
 */
 | 
			
		||||
int
 | 
			
		||||
lsquic_engine_packet_in (lsquic_engine_t *,
 | 
			
		||||
| 
						 | 
				
			
			@ -1124,6 +1089,10 @@ lsquic_engine_has_unsent_packets (lsquic_engine_t *engine);
 | 
			
		|||
void
 | 
			
		||||
lsquic_engine_send_unsent_packets (lsquic_engine_t *engine);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Destroy engine and all connections and streams in it and free all
 | 
			
		||||
 * memory associated with this engine.
 | 
			
		||||
 */
 | 
			
		||||
void
 | 
			
		||||
lsquic_engine_destroy (lsquic_engine_t *);
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -1131,6 +1100,18 @@ lsquic_engine_destroy (lsquic_engine_t *);
 | 
			
		|||
unsigned
 | 
			
		||||
lsquic_conn_n_avail_streams (const lsquic_conn_t *);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Create a new request stream.  This causes @ref on_new_stream() callback
 | 
			
		||||
 * to be called.  If creating more requests is not permitted at the moment
 | 
			
		||||
 * (due to number of concurrent streams limit), stream creation is registered
 | 
			
		||||
 * as "pending" and the stream is created later when number of streams dips
 | 
			
		||||
 * under the limit again.  Any number of pending streams can be created.
 | 
			
		||||
 * Use @ref lsquic_conn_n_pending_streams() and
 | 
			
		||||
 * @ref lsquic_conn_cancel_pending_streams() to manage pending streams.
 | 
			
		||||
 *
 | 
			
		||||
 * If connection is going away, @ref on_new_stream() is called with the
 | 
			
		||||
 * stream parameter set to NULL.
 | 
			
		||||
 */
 | 
			
		||||
void
 | 
			
		||||
lsquic_conn_make_stream (lsquic_conn_t *);
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -1163,14 +1144,41 @@ lsquic_conn_going_away (lsquic_conn_t *);
 | 
			
		|||
void
 | 
			
		||||
lsquic_conn_close (lsquic_conn_t *);
 | 
			
		||||
 | 
			
		||||
int lsquic_stream_wantread(lsquic_stream_t *s, int is_want);
 | 
			
		||||
ssize_t lsquic_stream_read(lsquic_stream_t *s, void *buf, size_t len);
 | 
			
		||||
ssize_t lsquic_stream_readv(lsquic_stream_t *s, const struct iovec *,
 | 
			
		||||
                                                            int iovcnt);
 | 
			
		||||
/**
 | 
			
		||||
 * Set whether you want to read from stream.  If @param is_want is true,
 | 
			
		||||
 * @ref on_read() will be called when there is readable data in the
 | 
			
		||||
 * stream.  If @param is false, @ref on_read() will not be called.
 | 
			
		||||
 *
 | 
			
		||||
 * Returns previous value of this flag.
 | 
			
		||||
 */
 | 
			
		||||
int
 | 
			
		||||
lsquic_stream_wantread (lsquic_stream_t *s, int is_want);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Read up to @param len bytes from stream into @param buf.  Returns number
 | 
			
		||||
 * of bytes read or -1 on error, in which case errno is set.  Possible
 | 
			
		||||
 * errno values:
 | 
			
		||||
 *
 | 
			
		||||
 *  EBADF           The stream is closed.
 | 
			
		||||
 *  ECONNRESET      The stream has been reset.
 | 
			
		||||
 *  EWOULDBLOCK     There is no data to be read.
 | 
			
		||||
 *
 | 
			
		||||
 * Return value of zero indicates EOF.
 | 
			
		||||
 */
 | 
			
		||||
ssize_t
 | 
			
		||||
lsquic_stream_read (lsquic_stream_t *s, void *buf, size_t len);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Similar to @ref lsquic_stream_read(), but reads data into @param vec.
 | 
			
		||||
 */
 | 
			
		||||
ssize_t
 | 
			
		||||
lsquic_stream_readv (lsquic_stream_t *s, const struct iovec *vec, int iovcnt);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * This function allows user-supplied callback to read the stream contents.
 | 
			
		||||
 * It is meant to be used for zero-copy stream processing.
 | 
			
		||||
 *
 | 
			
		||||
 * Return value and errors are same as in @ref lsquic_stream_read().
 | 
			
		||||
 */
 | 
			
		||||
ssize_t
 | 
			
		||||
lsquic_stream_readf (lsquic_stream_t *s,
 | 
			
		||||
| 
						 | 
				
			
			@ -1187,15 +1195,31 @@ lsquic_stream_readf (lsquic_stream_t *s,
 | 
			
		|||
    size_t (*readf)(void *ctx, const unsigned char *buf, size_t len, int fin),
 | 
			
		||||
    void *ctx);
 | 
			
		||||
 | 
			
		||||
int lsquic_stream_wantwrite(lsquic_stream_t *s, int is_want);
 | 
			
		||||
/**
 | 
			
		||||
 * Set whether you want to write to stream.  If @param is_want is true,
 | 
			
		||||
 * @ref on_write() will be called when it is possible to write data to
 | 
			
		||||
 * the stream.  If @param is false, @ref on_write() will not be called.
 | 
			
		||||
 *
 | 
			
		||||
 * Returns previous value of this flag.
 | 
			
		||||
 */
 | 
			
		||||
int
 | 
			
		||||
lsquic_stream_wantwrite (lsquic_stream_t *s, int is_want);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Write `len' bytes to the stream.  Returns number of bytes written, which
 | 
			
		||||
 * may be smaller that `len'.
 | 
			
		||||
 *
 | 
			
		||||
 * A negative return value indicates a serious error (the library is likely
 | 
			
		||||
 * to have aborted the connection because of it).
 | 
			
		||||
 */
 | 
			
		||||
ssize_t lsquic_stream_write(lsquic_stream_t *s, const void *buf, size_t len);
 | 
			
		||||
ssize_t
 | 
			
		||||
lsquic_stream_write (lsquic_stream_t *s, const void *buf, size_t len);
 | 
			
		||||
 | 
			
		||||
ssize_t lsquic_stream_writev(lsquic_stream_t *s, const struct iovec *vec, int count);
 | 
			
		||||
/**
 | 
			
		||||
 * Like @ref lsquic_stream_write(), but read data from @param vec.
 | 
			
		||||
 */
 | 
			
		||||
ssize_t
 | 
			
		||||
lsquic_stream_writev (lsquic_stream_t *s, const struct iovec *vec, int count);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Used as argument to @ref lsquic_stream_writef()
 | 
			
		||||
| 
						 | 
				
			
			@ -1258,8 +1282,13 @@ struct lsquic_http_headers
 | 
			
		|||
    lsquic_http_header_t   *headers;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
int lsquic_stream_send_headers(lsquic_stream_t *s,
 | 
			
		||||
                               const lsquic_http_headers_t *h, int eos);
 | 
			
		||||
/**
 | 
			
		||||
 * Send headers in @param headers.  This function must be called before
 | 
			
		||||
 * writing to the stream.  The value of @param eos is ignored in IETF QUIC.
 | 
			
		||||
 */
 | 
			
		||||
int
 | 
			
		||||
lsquic_stream_send_headers (lsquic_stream_t *s,
 | 
			
		||||
                               const lsquic_http_headers_t *headers, int eos);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Get header set associated with the stream.  The header set is created by
 | 
			
		||||
| 
						 | 
				
			
			@ -1384,9 +1413,6 @@ int lsquic_stream_set_priority (lsquic_stream_t *s, unsigned priority);
 | 
			
		|||
 */
 | 
			
		||||
lsquic_conn_t * lsquic_stream_conn(const lsquic_stream_t *s);
 | 
			
		||||
 | 
			
		||||
lsquic_stream_t *
 | 
			
		||||
lsquic_conn_get_stream_by_id (lsquic_conn_t *c, lsquic_stream_id_t stream_id);
 | 
			
		||||
 | 
			
		||||
/** Get connection ID */
 | 
			
		||||
const lsquic_cid_t *
 | 
			
		||||
lsquic_conn_id (const lsquic_conn_t *c);
 | 
			
		||||
| 
						 | 
				
			
			@ -1558,9 +1584,6 @@ lsquic_alpn2ver (const char *alpn, size_t len);
 | 
			
		|||
void
 | 
			
		||||
lsquic_engine_cooldown (lsquic_engine_t *);
 | 
			
		||||
 | 
			
		||||
struct ssl_st *
 | 
			
		||||
lsquic_hsk_getssl(lsquic_conn_t *conn);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Get user-supplied context associated with the connection.
 | 
			
		||||
 */
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -187,14 +187,6 @@ lsquic_conn_is_push_enabled (lsquic_conn_t *lconn)
 | 
			
		|||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
struct lsquic_stream *
 | 
			
		||||
lsquic_conn_get_stream_by_id (struct lsquic_conn *lconn,
 | 
			
		||||
                              lsquic_stream_id_t stream_id)
 | 
			
		||||
{
 | 
			
		||||
    return lconn->cn_if->ci_get_stream_by_id(lconn, stream_id);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
struct lsquic_engine *
 | 
			
		||||
lsquic_conn_get_engine (struct lsquic_conn *lconn)
 | 
			
		||||
{
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -156,9 +156,6 @@ struct conn_iface
 | 
			
		|||
    int
 | 
			
		||||
    (*ci_is_push_enabled) (struct lsquic_conn *);
 | 
			
		||||
 | 
			
		||||
    struct lsquic_stream *
 | 
			
		||||
    (*ci_get_stream_by_id) (struct lsquic_conn *, lsquic_stream_id_t stream_id);
 | 
			
		||||
 | 
			
		||||
    struct lsquic_engine *
 | 
			
		||||
    (*ci_get_engine) (struct lsquic_conn *);
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2849,10 +2849,3 @@ const struct lsquic_stream_if lsquic_mini_cry_sm_if =
 | 
			
		|||
};
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
struct ssl_st *
 | 
			
		||||
lsquic_hsk_getssl (lsquic_conn_t *conn)
 | 
			
		||||
{
 | 
			
		||||
    if (!conn || !(conn->cn_flags & LSCONN_IETF))
 | 
			
		||||
        return NULL;
 | 
			
		||||
    return ((struct enc_sess_iquic *)conn->cn_enc_session)->esi_ssl;
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -140,9 +140,14 @@ force_close_conn (lsquic_engine_t *engine, lsquic_conn_t *conn);
 | 
			
		|||
 | 
			
		||||
/* A connection can be referenced from one of six places:
 | 
			
		||||
 *
 | 
			
		||||
 *   1. A hash.  The engine maintains two hash tables -- one for full, and
 | 
			
		||||
 *      one for mini connections.  A connection starts its life in one of
 | 
			
		||||
 *      those.
 | 
			
		||||
 *   1. A hash is used to find connections in order to dispatch an incoming
 | 
			
		||||
 *      packet.  Connections can be hashed by CIDs or by address.  In the
 | 
			
		||||
 *      former case, each connection has one or more mappings in the hash
 | 
			
		||||
 *      table.  IETF QUIC connections have up to eight (in our implementation)
 | 
			
		||||
 *      source CIDs and each of those would have a mapping.  In client mode,
 | 
			
		||||
 *      depending on QUIC versions and options selected, it is may be
 | 
			
		||||
 *      necessary to hash connections by address, in which case incoming
 | 
			
		||||
 *      packets are delivered to connections based on the address.
 | 
			
		||||
 *
 | 
			
		||||
 *   2. Outgoing queue.
 | 
			
		||||
 *
 | 
			
		||||
| 
						 | 
				
			
			@ -216,13 +221,6 @@ struct lsquic_engine
 | 
			
		|||
    struct lsquic_hash                *conns_hash;
 | 
			
		||||
    struct min_heap                    conns_tickable;
 | 
			
		||||
    struct min_heap                    conns_out;
 | 
			
		||||
    /* Use a union because only one iterator is being used at any one time */
 | 
			
		||||
    union {
 | 
			
		||||
        struct {
 | 
			
		||||
            struct cert_susp_head *head;
 | 
			
		||||
        }           resumed;
 | 
			
		||||
        struct lsquic_conn *one_conn;
 | 
			
		||||
    }                                  iter_state;
 | 
			
		||||
    struct eng_hist                    history;
 | 
			
		||||
    unsigned                           batch_size;
 | 
			
		||||
    struct pr_queue                   *pr_queue;
 | 
			
		||||
| 
						 | 
				
			
			@ -2611,8 +2609,7 @@ lsquic_engine_packet_in (lsquic_engine_t *engine,
 | 
			
		|||
 | 
			
		||||
    if (engine->flags & ENG_SERVER)
 | 
			
		||||
        parse_packet_in_begin = lsquic_parse_packet_in_server_begin;
 | 
			
		||||
    else
 | 
			
		||||
    if (engine->flags & ENG_CONNS_BY_ADDR)
 | 
			
		||||
    else if (engine->flags & ENG_CONNS_BY_ADDR)
 | 
			
		||||
    {
 | 
			
		||||
        struct lsquic_hash_elem *el;
 | 
			
		||||
        const struct lsquic_conn *conn;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1407,15 +1407,6 @@ find_stream_by_id (struct full_conn *conn, lsquic_stream_id_t stream_id)
 | 
			
		|||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
static struct lsquic_stream *
 | 
			
		||||
full_conn_ci_get_stream_by_id (struct lsquic_conn *lconn,
 | 
			
		||||
                               lsquic_stream_id_t stream_id)
 | 
			
		||||
{
 | 
			
		||||
    struct full_conn *conn = (struct full_conn *) lconn;
 | 
			
		||||
    return find_stream_by_id(conn, stream_id);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
static struct lsquic_engine *
 | 
			
		||||
full_conn_ci_get_engine (struct lsquic_conn *lconn)
 | 
			
		||||
{
 | 
			
		||||
| 
						 | 
				
			
			@ -4406,7 +4397,6 @@ static const struct conn_iface full_conn_iface = {
 | 
			
		|||
    .ci_get_ctx              =  full_conn_ci_get_ctx,
 | 
			
		||||
    .ci_get_engine           =  full_conn_ci_get_engine,
 | 
			
		||||
    .ci_get_path             =  full_conn_ci_get_path,
 | 
			
		||||
    .ci_get_stream_by_id     =  full_conn_ci_get_stream_by_id,
 | 
			
		||||
#if LSQUIC_CONN_STATS
 | 
			
		||||
    .ci_get_stats            =  full_conn_ci_get_stats,
 | 
			
		||||
#endif
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -4026,15 +4026,6 @@ find_stream_by_id (struct id24_full_conn *conn, lsquic_stream_id_t stream_id)
 | 
			
		|||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
static struct lsquic_stream *
 | 
			
		||||
ieft_full_conn_ci_get_stream_by_id (struct lsquic_conn *lconn,
 | 
			
		||||
                               lsquic_stream_id_t stream_id)
 | 
			
		||||
{
 | 
			
		||||
    struct id24_full_conn *conn = (struct id24_full_conn *) lconn;
 | 
			
		||||
    return find_stream_by_id(conn, stream_id);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
static void
 | 
			
		||||
maybe_schedule_ss_for_stream (struct id24_full_conn *conn,
 | 
			
		||||
                lsquic_stream_id_t stream_id, enum http_error_code error_code)
 | 
			
		||||
| 
						 | 
				
			
			@ -6610,7 +6601,6 @@ id24_full_conn_ci_drop_crypto_streams (struct lsquic_conn *lconn)
 | 
			
		|||
    .ci_get_engine           =  id24_full_conn_ci_get_engine, \
 | 
			
		||||
    .ci_get_log_cid          =  id24_full_conn_ci_get_log_cid, \
 | 
			
		||||
    .ci_get_path             =  id24_full_conn_ci_get_path, \
 | 
			
		||||
    .ci_get_stream_by_id     =  ieft_full_conn_ci_get_stream_by_id, \
 | 
			
		||||
    .ci_going_away           =  id24_full_conn_ci_going_away, \
 | 
			
		||||
    .ci_hsk_done             =  id24_full_conn_ci_hsk_done, \
 | 
			
		||||
    .ci_internal_error       =  id24_full_conn_ci_internal_error, \
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -4274,15 +4274,6 @@ find_stream_by_id (struct ietf_full_conn *conn, lsquic_stream_id_t stream_id)
 | 
			
		|||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
static struct lsquic_stream *
 | 
			
		||||
ieft_full_conn_ci_get_stream_by_id (struct lsquic_conn *lconn,
 | 
			
		||||
                               lsquic_stream_id_t stream_id)
 | 
			
		||||
{
 | 
			
		||||
    struct ietf_full_conn *conn = (struct ietf_full_conn *) lconn;
 | 
			
		||||
    return find_stream_by_id(conn, stream_id);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
static void
 | 
			
		||||
maybe_schedule_ss_for_stream (struct ietf_full_conn *conn,
 | 
			
		||||
                lsquic_stream_id_t stream_id, enum http_error_code error_code)
 | 
			
		||||
| 
						 | 
				
			
			@ -6968,7 +6959,6 @@ ietf_full_conn_ci_drop_crypto_streams (struct lsquic_conn *lconn)
 | 
			
		|||
    .ci_get_engine           =  ietf_full_conn_ci_get_engine, \
 | 
			
		||||
    .ci_get_log_cid          =  ietf_full_conn_ci_get_log_cid, \
 | 
			
		||||
    .ci_get_path             =  ietf_full_conn_ci_get_path, \
 | 
			
		||||
    .ci_get_stream_by_id     =  ieft_full_conn_ci_get_stream_by_id, \
 | 
			
		||||
    .ci_going_away           =  ietf_full_conn_ci_going_away, \
 | 
			
		||||
    .ci_hsk_done             =  ietf_full_conn_ci_hsk_done, \
 | 
			
		||||
    .ci_internal_error       =  ietf_full_conn_ci_internal_error, \
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue