Skip to content

Commit b0fea0b

Browse files
committed
Not all calls to fr_tls_call_push require the session cache
1 parent 328568d commit b0fea0b

File tree

5 files changed

+13
-8
lines changed

5 files changed

+13
-8
lines changed

src/lib/tls/base-h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -172,7 +172,7 @@ void fr_tls_dict_free(void);
172172
* tls/virtual_server.c
173173
*/
174174
unlang_action_t fr_tls_call_push(request_t *child, unlang_function_t resume,
175-
fr_tls_conf_t *conf, fr_tls_session_t *tls_session);
175+
fr_tls_conf_t *conf, fr_tls_session_t *tls_session, bool cache_required);
176176

177177
#ifdef __cplusplus
178178
}

src/lib/tls/cache.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -446,7 +446,7 @@ static unlang_action_t tls_cache_load_push(request_t *request, fr_tls_session_t
446446
* Allocate a child, and set it up to call
447447
* the TLS virtual server.
448448
*/
449-
ua = fr_tls_call_push(child, tls_cache_load_result, conf, tls_session);
449+
ua = fr_tls_call_push(child, tls_cache_load_result, conf, tls_session, true);
450450
if (ua < 0) {
451451
talloc_free(child);
452452
tls_cache_load_state_reset(request, tls_cache);
@@ -586,7 +586,7 @@ unlang_action_t tls_cache_store_push(request_t *request, fr_tls_conf_t *conf, fr
586586
* Allocate a child, and set it up to call
587587
* the TLS virtual server.
588588
*/
589-
ua = fr_tls_call_push(child, tls_cache_store_result, conf, tls_session);
589+
ua = fr_tls_call_push(child, tls_cache_store_result, conf, tls_session, true);
590590
if (ua < 0) goto error;
591591

592592
return ua;
@@ -655,7 +655,7 @@ unlang_action_t tls_cache_clear_push(request_t *request, fr_tls_conf_t *conf, fr
655655
* Allocate a child, and set it up to call
656656
* the TLS virtual server.
657657
*/
658-
ua = fr_tls_call_push(child, tls_cache_clear_result, conf, tls_session);
658+
ua = fr_tls_call_push(child, tls_cache_clear_result, conf, tls_session, true);
659659
if (ua < 0) {
660660
talloc_free(child);
661661
tls_cache_clear_state_reset(request, tls_cache);

src/lib/tls/session.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1170,7 +1170,7 @@ unlang_action_t tls_establish_session_push(request_t *request, fr_tls_conf_t *co
11701170
* Allocate a child, and set it up to call
11711171
* the TLS virtual server.
11721172
*/
1173-
ua = fr_tls_call_push(child, tls_establish_session_result, conf, tls_session);
1173+
ua = fr_tls_call_push(child, tls_establish_session_result, conf, tls_session, false);
11741174
if (ua < 0) {
11751175
talloc_free(child);
11761176
return UNLANG_ACTION_FAIL;

src/lib/tls/verify.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -467,7 +467,7 @@ static unlang_action_t tls_verify_client_cert_push(request_t *request, fr_tls_se
467467
* Allocate a child, and set it up to call
468468
* the TLS virtual server.
469469
*/
470-
ua = fr_tls_call_push(child, tls_verify_client_cert_result, conf, tls_session);
470+
ua = fr_tls_call_push(child, tls_verify_client_cert_result, conf, tls_session, false);
471471
if (ua < 0) {
472472
PERROR("Failed calling TLS virtual server");
473473
talloc_free(child);

src/lib/tls/virtual_server.c

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,14 +43,19 @@
4343
* be a pointer to the provided tls_session.
4444
* @param[in] conf the tls configuration.
4545
* @param[in] tls_session The current tls_session.
46+
* @param[in] cache_required Does this action require the tls cache
4647
* @return
4748
* - 0 on success.
4849
* - -1 on failure.
4950
*/
5051
unlang_action_t fr_tls_call_push(request_t *child, unlang_function_t resume,
51-
fr_tls_conf_t *conf, fr_tls_session_t *tls_session)
52+
fr_tls_conf_t *conf, fr_tls_session_t *tls_session,
53+
#ifdef NDEBUG
54+
UNUSED
55+
#endif
56+
bool cache_required)
5257
{
53-
fr_assert(tls_session->cache);
58+
fr_assert(tls_session->cache || !cache_required);
5459

5560
/*
5661
* Sets up a dispatch frame in the parent

0 commit comments

Comments
 (0)