Lines Matching refs:tncs

123 	struct tncs_data *tncs;  in tncs_get_conn()  local
128 tncs = tncs_global_data->connections; in tncs_get_conn()
129 while (tncs) { in tncs_get_conn()
130 if (tncs->connectionID == connectionID) in tncs_get_conn()
131 return tncs; in tncs_get_conn()
132 tncs = tncs->next; in tncs_get_conn()
183 struct tncs_data *tncs; in TNC_TNCS_SendMessage() local
196 tncs = tncs_get_conn(connectionID); in TNC_TNCS_SendMessage()
197 if (tncs == NULL) in TNC_TNCS_SendMessage()
204 os_free(tncs->imv_data[imvID].imv_send); in TNC_TNCS_SendMessage()
205 tncs->imv_data[imvID].imv_send_len = 0; in TNC_TNCS_SendMessage()
206 tncs->imv_data[imvID].imv_send = os_zalloc(b64len + 100); in TNC_TNCS_SendMessage()
207 if (tncs->imv_data[imvID].imv_send == NULL) { in TNC_TNCS_SendMessage()
212 tncs->imv_data[imvID].imv_send_len = in TNC_TNCS_SendMessage()
213 os_snprintf((char *) tncs->imv_data[imvID].imv_send, in TNC_TNCS_SendMessage()
242 struct tncs_data *tncs; in TNC_TNCS_ProvideRecommendation() local
252 tncs = tncs_get_conn(connectionID); in TNC_TNCS_ProvideRecommendation()
253 if (tncs == NULL) in TNC_TNCS_ProvideRecommendation()
256 tncs->imv_data[imvID].recommendation = recommendation; in TNC_TNCS_ProvideRecommendation()
257 tncs->imv_data[imvID].recommendation_set = 1; in TNC_TNCS_ProvideRecommendation()
513 static void tncs_send_to_imvs(struct tncs_data *tncs, unsigned int type, in tncs_send_to_imvs() argument
521 for (imv = tncs->imv; imv; imv = imv->next) { in tncs_send_to_imvs()
528 res = imv->ReceiveMessage(imv->imvID, tncs->connectionID, in tncs_send_to_imvs()
537 static void tncs_batch_ending(struct tncs_data *tncs) in tncs_batch_ending() argument
542 for (imv = tncs->imv; imv; imv = imv->next) { in tncs_batch_ending()
548 res = imv->BatchEnding(imv->imvID, tncs->connectionID); in tncs_batch_ending()
555 static void tncs_solicit_recommendation(struct tncs_data *tncs) in tncs_solicit_recommendation() argument
560 for (imv = tncs->imv; imv; imv = imv->next) { in tncs_solicit_recommendation()
561 if (tncs->imv_data[imv->imvID].recommendation_set) in tncs_solicit_recommendation()
567 tncs->connectionID); in tncs_solicit_recommendation()
574 void tncs_init_connection(struct tncs_data *tncs) in tncs_init_connection() argument
579 for (imv = tncs->imv; imv; imv = imv->next) { in tncs_init_connection()
581 imv, tncs->connectionID, TNC_CONNECTION_STATE_CREATE); in tncs_init_connection()
583 imv, tncs->connectionID, in tncs_init_connection()
588 os_free(tncs->imv_data[i].imv_send); in tncs_init_connection()
589 tncs->imv_data[i].imv_send = NULL; in tncs_init_connection()
590 tncs->imv_data[i].imv_send_len = 0; in tncs_init_connection()
595 size_t tncs_total_send_len(struct tncs_data *tncs) in tncs_total_send_len() argument
601 len += tncs->imv_data[i].imv_send_len; in tncs_total_send_len()
602 if (tncs->tncs_message) in tncs_total_send_len()
603 len += os_strlen(tncs->tncs_message); in tncs_total_send_len()
608 u8 * tncs_copy_send_buf(struct tncs_data *tncs, u8 *pos) in tncs_copy_send_buf() argument
613 if (tncs->imv_data[i].imv_send == NULL) in tncs_copy_send_buf()
616 os_memcpy(pos, tncs->imv_data[i].imv_send, in tncs_copy_send_buf()
617 tncs->imv_data[i].imv_send_len); in tncs_copy_send_buf()
618 pos += tncs->imv_data[i].imv_send_len; in tncs_copy_send_buf()
619 os_free(tncs->imv_data[i].imv_send); in tncs_copy_send_buf()
620 tncs->imv_data[i].imv_send = NULL; in tncs_copy_send_buf()
621 tncs->imv_data[i].imv_send_len = 0; in tncs_copy_send_buf()
624 if (tncs->tncs_message) { in tncs_copy_send_buf()
625 size_t len = os_strlen(tncs->tncs_message); in tncs_copy_send_buf()
626 os_memcpy(pos, tncs->tncs_message, len); in tncs_copy_send_buf()
628 os_free(tncs->tncs_message); in tncs_copy_send_buf()
629 tncs->tncs_message = NULL; in tncs_copy_send_buf()
636 char * tncs_if_tnccs_start(struct tncs_data *tncs) in tncs_if_tnccs_start() argument
641 tncs->last_batchid++; in tncs_if_tnccs_start()
642 os_snprintf(buf, 1000, IF_TNCCS_START, tncs->last_batchid); in tncs_if_tnccs_start()
694 static enum tncs_process_res tncs_derive_recommendation(struct tncs_data *tncs) in tncs_derive_recommendation() argument
703 if (tncs->done) in tncs_derive_recommendation()
706 tncs_solicit_recommendation(tncs); in tncs_derive_recommendation()
710 for (imv = tncs->imv; imv; imv = imv->next) { in tncs_derive_recommendation()
712 irec = tncs->imv_data[imv->imvID].recommendation; in tncs_derive_recommendation()
724 tncs->recommendation = rec; in tncs_derive_recommendation()
725 tncs->done = 1; in tncs_derive_recommendation()
748 os_free(tncs->tncs_message); in tncs_derive_recommendation()
749 tncs->tncs_message = os_zalloc(200); in tncs_derive_recommendation()
750 if (tncs->tncs_message) { in tncs_derive_recommendation()
751 os_snprintf(tncs->tncs_message, 199, in tncs_derive_recommendation()
760 for (imv = tncs->imv; imv; imv = imv->next) { in tncs_derive_recommendation()
761 tncs_imv_notify_connection_change(imv, tncs->connectionID, in tncs_derive_recommendation()
780 enum tncs_process_res tncs_process_if_tnccs(struct tncs_data *tncs, in tncs_process_if_tnccs() argument
816 if (batch_id != tncs->last_batchid + 1) { in tncs_process_if_tnccs()
819 batch_id, tncs->last_batchid + 1); in tncs_process_if_tnccs()
823 tncs->last_batchid = batch_id; in tncs_process_if_tnccs()
870 tncs_send_to_imvs(tncs, type, decoded, decoded_len); in tncs_process_if_tnccs()
952 tncs_batch_ending(tncs); in tncs_process_if_tnccs()
954 if (tncs_total_send_len(tncs) == 0) in tncs_process_if_tnccs()
955 return tncs_derive_recommendation(tncs); in tncs_process_if_tnccs()
1067 struct tncs_data *tncs; in tncs_init() local
1072 tncs = os_zalloc(sizeof(*tncs)); in tncs_init()
1073 if (tncs == NULL) in tncs_init()
1075 tncs->imv = tncs_global_data->imv; in tncs_init()
1076 tncs->connectionID = tncs_global_data->next_conn_id++; in tncs_init()
1077 tncs->next = tncs_global_data->connections; in tncs_init()
1078 tncs_global_data->connections = tncs; in tncs_init()
1080 return tncs; in tncs_init()
1084 void tncs_deinit(struct tncs_data *tncs) in tncs_deinit() argument
1089 if (tncs == NULL) in tncs_deinit()
1093 os_free(tncs->imv_data[i].imv_send); in tncs_deinit()
1098 if (conn == tncs) { in tncs_deinit()
1100 prev->next = tncs->next; in tncs_deinit()
1102 tncs_global_data->connections = tncs->next; in tncs_deinit()
1109 os_free(tncs->tncs_message); in tncs_deinit()
1110 os_free(tncs); in tncs_deinit()