Lines Matching refs:pmksa

28 	struct rsn_pmksa_cache_entry *pmksa;  member
36 static void pmksa_cache_set_expiration(struct rsn_pmksa_cache *pmksa);
52 void pmksa_cache_free_entry(struct rsn_pmksa_cache *pmksa, in pmksa_cache_free_entry() argument
58 pmksa->pmksa_count--; in pmksa_cache_free_entry()
60 if (pmksa->free_cb) in pmksa_cache_free_entry()
61 pmksa->free_cb(entry, pmksa->ctx); in pmksa_cache_free_entry()
65 pos = pmksa->pmkid[hash]; in pmksa_cache_free_entry()
72 pmksa->pmkid[hash] = entry->hnext; in pmksa_cache_free_entry()
80 pos = pmksa->pmksa; in pmksa_cache_free_entry()
87 pmksa->pmksa = entry->next; in pmksa_cache_free_entry()
102 void pmksa_cache_auth_flush(struct rsn_pmksa_cache *pmksa) in pmksa_cache_auth_flush() argument
104 while (pmksa->pmksa) { in pmksa_cache_auth_flush()
106 MACSTR, MAC2STR(pmksa->pmksa->spa)); in pmksa_cache_auth_flush()
107 pmksa_cache_free_entry(pmksa, pmksa->pmksa); in pmksa_cache_auth_flush()
114 struct rsn_pmksa_cache *pmksa = eloop_ctx; in pmksa_cache_expire() local
118 while (pmksa->pmksa && pmksa->pmksa->expiration <= now.sec) { in pmksa_cache_expire()
120 MACSTR, MAC2STR(pmksa->pmksa->spa)); in pmksa_cache_expire()
121 pmksa_cache_free_entry(pmksa, pmksa->pmksa); in pmksa_cache_expire()
124 pmksa_cache_set_expiration(pmksa); in pmksa_cache_expire()
128 static void pmksa_cache_set_expiration(struct rsn_pmksa_cache *pmksa) in pmksa_cache_set_expiration() argument
133 eloop_cancel_timeout(pmksa_cache_expire, pmksa, NULL); in pmksa_cache_set_expiration()
134 if (pmksa->pmksa == NULL) in pmksa_cache_set_expiration()
137 sec = pmksa->pmksa->expiration - now.sec; in pmksa_cache_set_expiration()
140 eloop_register_timeout(sec + 1, 0, pmksa_cache_expire, pmksa, NULL); in pmksa_cache_set_expiration()
225 static void pmksa_cache_link_entry(struct rsn_pmksa_cache *pmksa, in pmksa_cache_link_entry() argument
232 pos = pmksa->pmksa; in pmksa_cache_link_entry()
241 entry->next = pmksa->pmksa; in pmksa_cache_link_entry()
242 pmksa->pmksa = entry; in pmksa_cache_link_entry()
249 entry->hnext = pmksa->pmkid[hash]; in pmksa_cache_link_entry()
250 pmksa->pmkid[hash] = entry; in pmksa_cache_link_entry()
252 pmksa->pmksa_count++; in pmksa_cache_link_entry()
254 pmksa_cache_set_expiration(pmksa); in pmksa_cache_link_entry()
282 pmksa_cache_auth_add(struct rsn_pmksa_cache *pmksa, in pmksa_cache_auth_add() argument
294 if (pmksa_cache_auth_add_entry(pmksa, entry) < 0) in pmksa_cache_auth_add()
372 int pmksa_cache_auth_add_entry(struct rsn_pmksa_cache *pmksa, in pmksa_cache_auth_add_entry() argument
382 pos = pmksa_cache_auth_get(pmksa, entry->spa, NULL); in pmksa_cache_auth_add_entry()
384 pmksa_cache_free_entry(pmksa, pos); in pmksa_cache_auth_add_entry()
386 if (pmksa->pmksa_count >= pmksa_cache_max_entries && pmksa->pmksa) { in pmksa_cache_auth_add_entry()
390 MAC2STR(pmksa->pmksa->spa)); in pmksa_cache_auth_add_entry()
391 pmksa_cache_free_entry(pmksa, pmksa->pmksa); in pmksa_cache_auth_add_entry()
394 pmksa_cache_link_entry(pmksa, entry); in pmksa_cache_auth_add_entry()
401 pmksa_cache_add_okc(struct rsn_pmksa_cache *pmksa, in pmksa_cache_add_okc() argument
440 pmksa_cache_link_entry(pmksa, entry); in pmksa_cache_add_okc()
450 void pmksa_cache_auth_deinit(struct rsn_pmksa_cache *pmksa) in pmksa_cache_auth_deinit() argument
455 if (pmksa == NULL) in pmksa_cache_auth_deinit()
458 entry = pmksa->pmksa; in pmksa_cache_auth_deinit()
464 eloop_cancel_timeout(pmksa_cache_expire, pmksa, NULL); in pmksa_cache_auth_deinit()
465 pmksa->pmksa_count = 0; in pmksa_cache_auth_deinit()
466 pmksa->pmksa = NULL; in pmksa_cache_auth_deinit()
468 pmksa->pmkid[i] = NULL; in pmksa_cache_auth_deinit()
469 os_free(pmksa); in pmksa_cache_auth_deinit()
481 pmksa_cache_auth_get(struct rsn_pmksa_cache *pmksa, in pmksa_cache_auth_get() argument
487 for (entry = pmksa->pmkid[PMKID_HASH(pmkid)]; entry; in pmksa_cache_auth_get()
495 for (entry = pmksa->pmksa; entry; entry = entry->next) { in pmksa_cache_auth_get()
517 struct rsn_pmksa_cache *pmksa, const u8 *aa, const u8 *spa, in pmksa_cache_get_okc() argument
523 for (entry = pmksa->pmksa; entry; entry = entry->next) { in pmksa_cache_get_okc()
560 struct rsn_pmksa_cache *pmksa; in pmksa_cache_auth_init() local
562 pmksa = os_zalloc(sizeof(*pmksa)); in pmksa_cache_auth_init()
563 if (pmksa) { in pmksa_cache_auth_init()
564 pmksa->free_cb = free_cb; in pmksa_cache_auth_init()
565 pmksa->ctx = ctx; in pmksa_cache_auth_init()
568 return pmksa; in pmksa_cache_auth_init()
617 int pmksa_cache_auth_radius_das_disconnect(struct rsn_pmksa_cache *pmksa, in pmksa_cache_auth_radius_das_disconnect() argument
626 entry = pmksa->pmksa; in pmksa_cache_auth_radius_das_disconnect()
632 pmksa_cache_free_entry(pmksa, prev); in pmksa_cache_auth_radius_das_disconnect()
652 int pmksa_cache_auth_list(struct rsn_pmksa_cache *pmksa, char *buf, size_t len) in pmksa_cache_auth_list() argument
666 entry = pmksa->pmksa; in pmksa_cache_auth_list()
702 int pmksa_cache_auth_list_mesh(struct rsn_pmksa_cache *pmksa, const u8 *addr, in pmksa_cache_auth_list_mesh() argument
719 for (entry = pmksa->pmksa; entry; entry = entry->next) { in pmksa_cache_auth_list_mesh()