Lines Matching full:cc

96 static inline uint32_t get_ ## name(br_ssl_session_cache_lru *cc, uint32_t x) \
98 return br_dec32be(cc->store + x + (off)); \
100 static inline void set_ ## name(br_ssl_session_cache_lru *cc, \
103 br_enc32be(cc->store + x + (off), val); \
126 mask_id(br_ssl_session_cache_lru *cc, in GETSET()
133 br_hmac_key_init(&hkc, cc->hash, cc->index_key, sizeof cc->index_key); in GETSET()
148 find_node(br_ssl_session_cache_lru *cc, const unsigned char *id, in find_node() argument
153 x = cc->root; in find_node()
158 r = memcmp(id, cc->store + x + SESSION_ID_OFF, SESSION_ID_LEN); in find_node()
161 x = get_left(cc, x); in find_node()
169 x = get_right(cc, x); in find_node()
195 find_replacement_node(br_ssl_session_cache_lru *cc, uint32_t x, uint32_t *al) in find_replacement_node() argument
199 y1 = get_left(cc, x); in find_replacement_node()
205 z = get_right(cc, y1); in find_replacement_node()
214 y1 = get_right(cc, x); in find_replacement_node()
220 z = get_left(cc, y1); in find_replacement_node()
238 set_link(br_ssl_session_cache_lru *cc, uint32_t alx, uint32_t x) in set_link() argument
241 cc->root = x; in set_link()
243 br_enc32be(cc->store + alx, x); in set_link()
252 remove_node(br_ssl_session_cache_lru *cc, uint32_t x) in remove_node() argument
277 find_node(cc, cc->store + x + SESSION_ID_OFF, &alx); in remove_node()
284 y = find_replacement_node(cc, x, &aly); in remove_node()
293 z = get_left(cc, y); in remove_node()
295 z = get_right(cc, y); in remove_node()
297 set_link(cc, aly, z); in remove_node()
303 set_link(cc, alx, y); in remove_node()
311 set_left(cc, y, get_left(cc, x)); in remove_node()
312 set_right(cc, y, get_right(cc, x)); in remove_node()
317 set_link(cc, alx, ADDR_NULL); in remove_node()
326 br_ssl_session_cache_lru *cc; in lru_save() local
330 cc = (br_ssl_session_cache_lru *)ctx; in lru_save()
336 if (cc->store_len < LRU_ENTRY_LEN) { in lru_save()
344 if (!cc->init_done) { in lru_save()
346 cc->index_key, sizeof cc->index_key); in lru_save()
347 cc->hash = br_hmac_drbg_get_hash(&server_ctx->eng.rng); in lru_save()
348 cc->init_done = 1; in lru_save()
350 mask_id(cc, params->session_id, id); in lru_save()
359 if (find_node(cc, id, NULL) != ADDR_NULL) { in lru_save()
371 if (cc->store_ptr > (cc->store_len - LRU_ENTRY_LEN)) { in lru_save()
376 x = cc->tail; in lru_save()
377 cc->tail = get_prev(cc, x); in lru_save()
378 if (cc->tail == ADDR_NULL) { in lru_save()
379 cc->head = ADDR_NULL; in lru_save()
381 set_next(cc, cc->tail, ADDR_NULL); in lru_save()
387 remove_node(cc, x); in lru_save()
392 x = cc->store_ptr; in lru_save()
393 cc->store_ptr += LRU_ENTRY_LEN; in lru_save()
399 find_node(cc, id, &alx); in lru_save()
400 set_link(cc, alx, x); in lru_save()
401 set_left(cc, x, ADDR_NULL); in lru_save()
402 set_right(cc, x, ADDR_NULL); in lru_save()
408 if (cc->head == ADDR_NULL) { in lru_save()
409 cc->tail = x; in lru_save()
411 set_prev(cc, cc->head, x); in lru_save()
413 set_prev(cc, x, ADDR_NULL); in lru_save()
414 set_next(cc, x, cc->head); in lru_save()
415 cc->head = x; in lru_save()
420 memcpy(cc->store + x + SESSION_ID_OFF, id, SESSION_ID_LEN); in lru_save()
421 memcpy(cc->store + x + MASTER_SECRET_OFF, in lru_save()
423 br_enc16be(cc->store + x + VERSION_OFF, params->version); in lru_save()
424 br_enc16be(cc->store + x + CIPHER_SUITE_OFF, params->cipher_suite); in lru_save()
432 br_ssl_session_cache_lru *cc; in lru_load() local
437 cc = (br_ssl_session_cache_lru *)ctx; in lru_load()
438 if (!cc->init_done) { in lru_load()
441 mask_id(cc, params->session_id, id); in lru_load()
442 x = find_node(cc, id, NULL); in lru_load()
446 version = br_dec16be(cc->store + x + VERSION_OFF); in lru_load()
457 cc->store + x + CIPHER_SUITE_OFF); in lru_load()
459 cc->store + x + MASTER_SECRET_OFF, in lru_load()
461 if (x != cc->head) { in lru_load()
468 p = get_prev(cc, x); in lru_load()
469 n = get_next(cc, x); in lru_load()
470 set_next(cc, p, n); in lru_load()
472 cc->tail = p; in lru_load()
474 set_prev(cc, n, p); in lru_load()
476 set_prev(cc, cc->head, x); in lru_load()
477 set_next(cc, x, cc->head); in lru_load()
478 set_prev(cc, x, ADDR_NULL); in lru_load()
479 cc->head = x; in lru_load()
494 br_ssl_session_cache_lru_init(br_ssl_session_cache_lru *cc, in br_ssl_session_cache_lru_init() argument
497 cc->vtable = &lru_class; in br_ssl_session_cache_lru_init()
498 cc->store = store; in br_ssl_session_cache_lru_init()
499 cc->store_len = store_len; in br_ssl_session_cache_lru_init()
500 cc->store_ptr = 0; in br_ssl_session_cache_lru_init()
501 cc->init_done = 0; in br_ssl_session_cache_lru_init()
502 cc->head = ADDR_NULL; in br_ssl_session_cache_lru_init()
503 cc->tail = ADDR_NULL; in br_ssl_session_cache_lru_init()
504 cc->root = ADDR_NULL; in br_ssl_session_cache_lru_init()
509 br_ssl_session_cache_lru *cc, const unsigned char *id) in br_ssl_session_cache_lru_forget() argument
518 if (!cc->init_done) { in br_ssl_session_cache_lru_forget()
532 mask_id(cc, id, mid); in br_ssl_session_cache_lru_forget()
533 addr = find_node(cc, mid, NULL); in br_ssl_session_cache_lru_forget()
535 br_enc16be(cc->store + addr + VERSION_OFF, 0); in br_ssl_session_cache_lru_forget()