Drop packets if connection is teardown

This commit is contained in:
vemax78
2013-09-16 22:10:37 +02:00
parent 38b8207f0b
commit 08a8af0a70
6 changed files with 22 additions and 3 deletions

View File

@ -132,6 +132,7 @@ struct wtp_t {
struct capwap_dtls_context dtlscontext;
struct capwap_dtls ctrldtls;
struct capwap_dtls datadtls;
int teardown;
};
#define WTP_RADIO_ENABLED 0

View File

@ -387,7 +387,7 @@ int wtp_dfa_running(void) {
}
if (index >= 0) {
if (action == WTP_DFA_DROP_PACKET) {
if ((action == WTP_DFA_DROP_PACKET) || g_wtp.teardown) {
/* Drop packet */
continue;
} else {

View File

@ -56,6 +56,8 @@ int wtp_dfa_state_dtlsconnect_to_dtlsteardown(struct capwap_parsed_packet* packe
int wtp_teardown_connection(struct timeout_control* timeout) {
ASSERT(timeout != NULL);
g_wtp.teardown = 1;
/* DTSL Control */
if (g_wtp.ctrldtls.enable) {
capwap_crypt_close(&g_wtp.ctrldtls);

View File

@ -6,7 +6,10 @@
int wtp_dfa_state_idle(struct capwap_parsed_packet* packet, struct timeout_control* timeout) {
ASSERT(timeout != NULL);
ASSERT(packet == NULL);
/* Remove teardown flag */
g_wtp.teardown = 0;
if (!g_wtp.acdiscoveryrequest && (g_wtp.acpreferedarray->count > 0)) {
/* Found in configuration file the AC address */
memcpy(&g_wtp.acctrladdress, capwap_array_get_item_pointer(g_wtp.acpreferedarray, g_wtp.acpreferedselected), sizeof(struct sockaddr_storage));