Lines Matching refs:lcidm

99     QUIC_LCIDM *lcidm = NULL;  in ossl_quic_lcidm_new()  local
104 if ((lcidm = OPENSSL_zalloc(sizeof(*lcidm))) == NULL) in ossl_quic_lcidm_new()
107 if ((lcidm->lcids = lh_QUIC_LCID_new(lcid_hash, lcid_comp)) == NULL) in ossl_quic_lcidm_new()
110 if ((lcidm->conns = lh_QUIC_LCIDM_CONN_new(lcidm_conn_hash, in ossl_quic_lcidm_new()
114 lcidm->libctx = libctx; in ossl_quic_lcidm_new()
115 lcidm->lcid_len = lcid_len; in ossl_quic_lcidm_new()
116 return lcidm; in ossl_quic_lcidm_new()
119 if (lcidm != NULL) { in ossl_quic_lcidm_new()
120 lh_QUIC_LCID_free(lcidm->lcids); in ossl_quic_lcidm_new()
121 lh_QUIC_LCIDM_CONN_free(lcidm->conns); in ossl_quic_lcidm_new()
122 OPENSSL_free(lcidm); in ossl_quic_lcidm_new()
127 static void lcidm_delete_conn(QUIC_LCIDM *lcidm, QUIC_LCIDM_CONN *conn);
134 void ossl_quic_lcidm_free(QUIC_LCIDM *lcidm) in ossl_quic_lcidm_free() argument
136 if (lcidm == NULL) in ossl_quic_lcidm_free()
156 lh_QUIC_LCIDM_CONN_set_down_load(lcidm->conns, 0); in ossl_quic_lcidm_free()
158 lh_QUIC_LCIDM_CONN_doall_arg(lcidm->conns, lcidm_delete_conn_, lcidm); in ossl_quic_lcidm_free()
160 lh_QUIC_LCID_free(lcidm->lcids); in ossl_quic_lcidm_free()
161 lh_QUIC_LCIDM_CONN_free(lcidm->conns); in ossl_quic_lcidm_free()
162 OPENSSL_free(lcidm); in ossl_quic_lcidm_free()
165 static QUIC_LCID *lcidm_get0_lcid(const QUIC_LCIDM *lcidm, const QUIC_CONN_ID *lcid) in lcidm_get0_lcid() argument
174 return lh_QUIC_LCID_retrieve(lcidm->lcids, &key); in lcidm_get0_lcid()
177 static QUIC_LCIDM_CONN *lcidm_get0_conn(const QUIC_LCIDM *lcidm, void *opaque) in lcidm_get0_conn() argument
183 return lh_QUIC_LCIDM_CONN_retrieve(lcidm->conns, &key); in lcidm_get0_conn()
186 static QUIC_LCIDM_CONN *lcidm_upsert_conn(const QUIC_LCIDM *lcidm, void *opaque) in lcidm_upsert_conn() argument
188 QUIC_LCIDM_CONN *conn = lcidm_get0_conn(lcidm, opaque); in lcidm_upsert_conn()
201 lh_QUIC_LCIDM_CONN_insert(lcidm->conns, conn); in lcidm_upsert_conn()
202 if (lh_QUIC_LCIDM_CONN_error(lcidm->conns)) in lcidm_upsert_conn()
215 static void lcidm_delete_conn_lcid(QUIC_LCIDM *lcidm, QUIC_LCID *lcid_obj) in lcidm_delete_conn_lcid() argument
217 lh_QUIC_LCID_delete(lcidm->lcids, lcid_obj); in lcidm_delete_conn_lcid()
230 static void lcidm_delete_conn(QUIC_LCIDM *lcidm, QUIC_LCIDM_CONN *conn) in lcidm_delete_conn() argument
235 lh_QUIC_LCID_doall_arg(conn->lcids, lcidm_delete_conn_lcid_, lcidm); in lcidm_delete_conn()
236 lh_QUIC_LCIDM_CONN_delete(lcidm->conns, conn); in lcidm_delete_conn()
241 static QUIC_LCID *lcidm_conn_new_lcid(QUIC_LCIDM *lcidm, QUIC_LCIDM_CONN *conn, in lcidm_conn_new_lcid() argument
259 lh_QUIC_LCID_insert(lcidm->lcids, lcid_obj); in lcidm_conn_new_lcid()
260 if (lh_QUIC_LCID_error(lcidm->lcids)) { in lcidm_conn_new_lcid()
273 size_t ossl_quic_lcidm_get_lcid_len(const QUIC_LCIDM *lcidm) in ossl_quic_lcidm_get_lcid_len() argument
275 return lcidm->lcid_len; in ossl_quic_lcidm_get_lcid_len()
278 size_t ossl_quic_lcidm_get_num_active_lcid(const QUIC_LCIDM *lcidm, in ossl_quic_lcidm_get_num_active_lcid() argument
283 conn = lcidm_get0_conn(lcidm, opaque); in ossl_quic_lcidm_get_num_active_lcid()
290 static int lcidm_generate_cid(QUIC_LCIDM *lcidm, in lcidm_generate_cid() argument
296 lcidm->next_lcid.id_len = (unsigned char)lcidm->lcid_len; in lcidm_generate_cid()
297 *cid = lcidm->next_lcid; in lcidm_generate_cid()
299 for (i = lcidm->lcid_len - 1; i >= 0; --i) in lcidm_generate_cid()
300 if (++lcidm->next_lcid.id[i] != 0) in lcidm_generate_cid()
305 return ossl_quic_gen_rand_conn_id(lcidm->libctx, lcidm->lcid_len, cid); in lcidm_generate_cid()
309 static int lcidm_generate(QUIC_LCIDM *lcidm, in lcidm_generate() argument
320 if ((conn = lcidm_upsert_conn(lcidm, opaque)) == NULL) in lcidm_generate()
336 if (!lcidm_generate_cid(lcidm, lcid_out)) in lcidm_generate()
341 } while (lh_QUIC_LCID_retrieve(lcidm->lcids, &key) != NULL); in lcidm_generate()
343 if ((lcid_obj = lcidm_conn_new_lcid(lcidm, conn, lcid_out)) == NULL) in lcidm_generate()
356 int ossl_quic_lcidm_enrol_odcid(QUIC_LCIDM *lcidm, in ossl_quic_lcidm_enrol_odcid() argument
367 if ((conn = lcidm_upsert_conn(lcidm, opaque)) == NULL) in ossl_quic_lcidm_enrol_odcid()
374 if (lh_QUIC_LCID_retrieve(lcidm->lcids, &key) != NULL) in ossl_quic_lcidm_enrol_odcid()
377 if ((lcid_obj = lcidm_conn_new_lcid(lcidm, conn, initial_odcid)) == NULL) in ossl_quic_lcidm_enrol_odcid()
388 int ossl_quic_lcidm_generate_initial(QUIC_LCIDM *lcidm, in ossl_quic_lcidm_generate_initial() argument
392 return lcidm_generate(lcidm, opaque, LCID_TYPE_INITIAL, in ossl_quic_lcidm_generate_initial()
396 int ossl_quic_lcidm_generate(QUIC_LCIDM *lcidm, in ossl_quic_lcidm_generate() argument
403 return lcidm_generate(lcidm, opaque, LCID_TYPE_NCID, in ossl_quic_lcidm_generate()
408 int ossl_quic_lcidm_retire_odcid(QUIC_LCIDM *lcidm, void *opaque) in ossl_quic_lcidm_retire_odcid() argument
412 if ((conn = lcidm_upsert_conn(lcidm, opaque)) == NULL) in ossl_quic_lcidm_retire_odcid()
418 lcidm_delete_conn_lcid(lcidm, conn->odcid_lcid_obj); in ossl_quic_lcidm_retire_odcid()
443 int ossl_quic_lcidm_retire(QUIC_LCIDM *lcidm, in ossl_quic_lcidm_retire() argument
460 if ((conn = lh_QUIC_LCIDM_CONN_retrieve(lcidm->conns, &key)) == NULL) in ossl_quic_lcidm_retire()
481 lcidm_delete_conn_lcid(lcidm, args.earliest_seq_num_lcid_obj); in ossl_quic_lcidm_retire()
485 int ossl_quic_lcidm_cull(QUIC_LCIDM *lcidm, void *opaque) in ossl_quic_lcidm_cull() argument
491 if ((conn = lh_QUIC_LCIDM_CONN_retrieve(lcidm->conns, &key)) == NULL) in ossl_quic_lcidm_cull()
494 lcidm_delete_conn(lcidm, conn); in ossl_quic_lcidm_cull()
498 int ossl_quic_lcidm_lookup(QUIC_LCIDM *lcidm, in ossl_quic_lcidm_lookup() argument
508 if ((lcid_obj = lcidm_get0_lcid(lcidm, lcid)) == NULL) in ossl_quic_lcidm_lookup()
520 int ossl_quic_lcidm_debug_remove(QUIC_LCIDM *lcidm, in ossl_quic_lcidm_debug_remove() argument
526 if ((lcid_obj = lh_QUIC_LCID_retrieve(lcidm->lcids, &key)) == NULL) in ossl_quic_lcidm_debug_remove()
529 lcidm_delete_conn_lcid(lcidm, lcid_obj); in ossl_quic_lcidm_debug_remove()
533 int ossl_quic_lcidm_debug_add(QUIC_LCIDM *lcidm, void *opaque, in ossl_quic_lcidm_debug_add() argument
543 if ((conn = lcidm_upsert_conn(lcidm, opaque)) == NULL) in ossl_quic_lcidm_debug_add()
547 if (lh_QUIC_LCID_retrieve(lcidm->lcids, &key) != NULL) in ossl_quic_lcidm_debug_add()
550 if ((lcid_obj = lcidm_conn_new_lcid(lcidm, conn, lcid)) == NULL) in ossl_quic_lcidm_debug_add()