|
Apache HTTPD
|
#include <assert.h>#include <apr_lib.h>#include <apr_strings.h>#include <httpd.h>#include <http_connection.h>#include <http_core.h>#include <http_request.h>#include <http_log.h>#include <ap_socache.h>#include <rustls.h>#include "tls_proto.h"#include "tls_conf.h"#include "tls_core.h"#include "tls_filter.h"#include "tls_util.h"Go to the source code of this file.
Macros | |
| #define | TLS_WRITE_VECTORED 1 |
| #define | TLS_FILE_CHUNK_SIZE 4 * TLS_PREF_PLAIN_CHUNK_SIZE |
Variables | |
| static int *const | aplog_module_index = &( tls_module.module_index) |
| #define TLS_FILE_CHUNK_SIZE 4 * TLS_PREF_PLAIN_CHUNK_SIZE |
| #define TLS_WRITE_VECTORED 1 |
Definition at line 569 of file tls_filter.c.
|
static |
Definition at line 181 of file tls_filter.c.
|
static |
The connection filter converting TLS encrypted network data into plain, unencrpyted traffic data to be processed by filters above it in the filter chain.
Unfortunately, Apache's filter infrastructure places a heavy implementation complexity on its input filters for the various use cases its HTTP/1.x parser (mainly) finds convenient:
<bb> the bucket brigade to place the data into. <mode> one of
Definition at line 380 of file tls_filter.c.
|
static |
The connection filter converting plain, unencrypted traffic data into TLS encrypted bytes and send the down the Apache filter chain out to the network.
<bb> the data to send, including "meta data" such as FLUSH indicators to force filters to write any data set aside (an apache term for 'buffering'). The buckets in <bb> need to be completely consumed, e.g. <bb> will be empty on a successful return. but unless FLUSHed, filters may hold buckets back internally, for various reasons. However they always need to be processed in the order they arrive.
Definition at line 872 of file tls_filter.c.
|
static |
While <fctx->cc->rustls_connection> indicates that a handshake is ongoing, write TLS data from and read network TLS data to the server session.
Definition at line 274 of file tls_filter.c.
|
static |
Definition at line 198 of file tls_filter.c.
|
static |
Definition at line 248 of file tls_filter.c.
|
static |
Definition at line 687 of file tls_filter.c.
|
static |
Definition at line 720 of file tls_filter.c.
|
static |
Definition at line 738 of file tls_filter.c.
|
static |
Definition at line 672 of file tls_filter.c.
|
static |
Definition at line 654 of file tls_filter.c.
|
static |
Definition at line 614 of file tls_filter.c.
|
static |
Read TLS encrypted data from <fctx->cc->rustls_connection> and pass it down Apache's filter chain to the network.
For now, we always FLUSH the data, since that is what we need during handshakes.
Definition at line 576 of file tls_filter.c.
|
static |
Definition at line 163 of file tls_filter.c.
|
static |
Definition at line 314 of file tls_filter.c.
|
static |
Provide TLS encrypted data to the rustls server_session in <fctx->cc->rustls_connection>.
If <fctx->fin_tls_bb> holds data, take it from there. Otherwise perform a read via the network filters below us into that brigade.
<fctx->fin_block> determines if we do a blocking read inititally or not. If the first read did to not produce enough data, any secondary read is done non-blocking.
Had any data been added to <fctx->cc->rustls_connection>, call its "processing" function to handle the added data before leaving.
Definition at line 63 of file tls_filter.c.
| void tls_filter_conn_init | ( | conn_rec * | c | ) |
Initialize the connection for use, perform the TLS handshake.
Any failure will lead to the connection becoming aborted.
Definition at line 989 of file tls_filter.c.
Initialize the pre_connection state. Install all filters.
< Module has handled this stage.
< Module declines to handle
< Module has handled this stage.
Definition at line 927 of file tls_filter.c.
| void tls_filter_register | ( | apr_pool_t * | pool | ) |
Register the in-/output filters for converting TLS to application data and vice versa.
Definition at line 1011 of file tls_filter.c.
|
static |
Definition at line 40 of file tls_filter.c.
|
static |
Definition at line 522 of file tls_filter.c.
|
static |
Definition at line 547 of file tls_filter.c.
Definition at line 37 of file tls_filter.c.