freewtp/src/ac/ac_dfa_dtls.c

24 lines
601 B
C
Raw Normal View History

2013-05-01 14:52:55 +02:00
#include "ac.h"
#include "capwap_dfa.h"
#include "capwap_array.h"
#include "ac_session.h"
/* */
2013-11-05 17:54:29 +01:00
int ac_dtls_setup(struct ac_session_t* session) {
2013-05-01 14:52:55 +02:00
ASSERT(session != NULL);
/* Create DTLS session */
if (!capwap_crypt_createsession(&session->dtls, &g_ac.dtlscontext)) {
2013-11-05 17:54:29 +01:00
return 0;
2013-05-01 14:52:55 +02:00
}
if (capwap_crypt_open(&session->dtls) == CAPWAP_HANDSHAKE_ERROR) {
2013-11-05 17:54:29 +01:00
return 0;
}
2013-05-01 14:52:55 +02:00
2013-11-05 17:54:29 +01:00
/* Wait DTLS handshake complete */
ac_dfa_change_state(session, CAPWAP_DTLS_CONNECT_STATE);
capwap_timeout_set(session->timeout, session->idtimercontrol, AC_DTLS_INTERVAL, ac_dfa_teardown_timeout, session, NULL);
return 1;
}