Commit 63af4bf6 authored by Doug MacEachern's avatar Doug MacEachern
Browse files

add cleanup of SSLStateMachine to tls filter


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@89597 13f79535-47bb-0310-9956-ffa450edef68
parent 311d1eab
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -117,6 +117,12 @@ static const char *tls_cert_file(cmd_parms *cmd, void *dummy, const char *arg)
    return NULL;
}

static apr_status_t tls_filter_cleanup(void *data)
{
    SSLStateMachine_destroy((SSLStateMachine *)data);
    return APR_SUCCESS;
}

static int tls_filter_inserter(conn_rec *c)
{
    TLSServerConfig *pConfig =
@@ -136,6 +142,9 @@ static int tls_filter_inserter(conn_rec *c)
    pCtx->pbbInput=apr_brigade_create(c->pool);
    pCtx->pbbPendingInput=apr_brigade_create(c->pool);

    apr_pool_cleanup_register(c->pool, (void*)pCtx->pStateMachine,
                              tls_filter_cleanup, apr_pool_cleanup_null);

    return OK;
}

+6 −0
Original line number Diff line number Diff line
@@ -162,6 +162,12 @@ SSLStateMachine *SSLStateMachine_new(const char *szCertificateFile,
    return pMachine;
    }

void SSLStateMachine_destroy(SSLStateMachine *pMachine)
{
    SSL_free(pMachine->pSSL);
    free(pMachine);
}

void SSLStateMachine_read_inject(SSLStateMachine *pMachine,
				 const unsigned char *aucBuf,int nBuf)
    {
+1 −0
Original line number Diff line number Diff line
@@ -3,6 +3,7 @@ typedef struct SSLStateMachine SSLStateMachine;
void SSLStateMachine_init(void);
SSLStateMachine *SSLStateMachine_new(const char *szCertificateFile,
				     const char *szKeyFile);
void SSLStateMachine_destroy(SSLStateMachine *pMachine);
void SSLStateMachine_read_inject(SSLStateMachine *pMachine,
				 const unsigned char *aucBuf,int nBuf);
int SSLStateMachine_read_extract(SSLStateMachine *pMachine,