vb@572: #include "pEp_internal.h" vb@572: vb@572: #include vb@572: #include vb@572: vb@951: #include "../asn.1/DeviceGroup-Protocol.h" vb@951: vb@572: vb@572: DYNAMIC_API PEP_STATUS register_sync_callbacks( vb@599: PEP_SESSION session, vb@599: void *obj, vb@597: messageToSend_t messageToSend, vb@572: showHandshake_t showHandshake vb@572: ) vb@572: { vb@599: session->sync_obj = obj; vb@604: session->messageToSend = messageToSend; vb@604: session->showHandshake = showHandshake; vb@572: vb@976: // start state machine vb@976: session->sync_state = InitState; vb@976: PEP_STATUS status = fsm_DeviceState_inject(session, Init, NULL, NULL); vb@976: if (status != PEP_STATUS_OK) { vb@976: // stop state machine vb@976: session->sync_state = DeviceState_state_NONE; vb@976: } vb@976: vb@976: return status; vb@572: } vb@572: vb@572: DYNAMIC_API void unregister_sync_callbacks(PEP_SESSION session) { vb@602: session->sync_obj = NULL; vb@604: session->messageToSend = NULL; vb@604: session->showHandshake = NULL; vb@572: } vb@572: vb@679: DYNAMIC_API PEP_STATUS deliverHandshakeResult( vb@609: PEP_SESSION session, vb@609: sync_handshake_result result vb@609: ) vb@609: { vb@609: assert(session); vb@609: if (!session) vb@609: return PEP_ILLEGAL_VALUE; vb@609: vb@609: switch (result) { vb@609: case SYNC_HANDSHAKE_CANCEL: vb@690: fsm_DeviceState_inject(session, Cancel, NULL, 0); vb@609: break; vb@609: case SYNC_HANDSHAKE_ACCEPTED: vb@690: fsm_DeviceState_inject(session, HandshakeAccepted, NULL, 0); vb@609: break; vb@609: case SYNC_HANDSHAKE_REJECTED: vb@690: fsm_DeviceState_inject(session, HandshakeRejected, NULL, 0); vb@609: break; vb@609: default: vb@609: return PEP_ILLEGAL_VALUE; vb@609: } vb@609: vb@609: return PEP_STATUS_OK; vb@609: } vb@609: