Skip to content

Commit

Permalink
Commissioner fixes (ARMmbed#1824)
Browse files Browse the repository at this point in the history
Added active get after dataset changed notification is received.
Fixed uri registration on commissioner.
  • Loading branch information
deepakvenugopal authored Sep 19, 2018
1 parent 62ffba3 commit e7d551c
Showing 1 changed file with 11 additions and 2 deletions.
13 changes: 11 additions & 2 deletions source/6LoWPAN/Thread/thread_commissioning_api.c
Original file line number Diff line number Diff line change
Expand Up @@ -309,7 +309,7 @@ static int commissioning_leader_petition_recv_cb(int8_t service_id, uint8_t sour
// if not native set leader ALOC from stack
if (this->native_commissioner) {
coap_service_request_send(service_id, COAP_REQUEST_OPTIONS_NONE, this->destination_address, this->destination_port,
COAP_MSG_TYPE_CONFIRMABLE, COAP_MSG_CODE_REQUEST_POST, uri_ptr, COAP_CT_OCTET_STREAM, ptr, ptr-ptr, thread_commissioning_active_get_cb);
COAP_MSG_TYPE_CONFIRMABLE, COAP_MSG_CODE_REQUEST_POST, uri_ptr, COAP_CT_OCTET_STREAM, NULL, 0, thread_commissioning_active_get_cb);
return 0;
} else {
thread_management_get_leader_aloc(this->interface_id, this->leader_address);
Expand Down Expand Up @@ -424,6 +424,15 @@ static int commission_dataset_changed_notify_recv_cb(int8_t service_id, uint8_t
(void)source_port;

tr_debug("Dataset changed - notification received from: %s", trace_ipv6(source_address));
commissioner_t *this = commissioner_find_by_service(service_id);

if (!this) {
return -1;
}

coap_service_request_send(service_id, COAP_REQUEST_OPTIONS_NONE, this->destination_address, this->destination_port,
COAP_MSG_TYPE_CONFIRMABLE, COAP_MSG_CODE_REQUEST_POST, THREAD_URI_ACTIVE_GET, COAP_CT_OCTET_STREAM, NULL, 0, thread_commissioning_active_get_cb);

coap_service_response_send(service_id, COAP_REQUEST_OPTIONS_NONE, request_ptr, COAP_MSG_CODE_RESPONSE_CHANGED, COAP_CT_NONE, NULL, 0);

return 0;
Expand Down Expand Up @@ -800,10 +809,10 @@ int thread_commissioning_register(int8_t interface_id, uint8_t PSKc[static 16])
coap_service_register_uri(this->coap_service_id, THREAD_URI_RELAY_RECEIVE, COAP_SERVICE_ACCESS_POST_ALLOWED, commission_relay_rx_recv_cb);
coap_service_register_uri(this->coap_service_id, THREAD_URI_JOINER_APPLICATION_REQUEST, COAP_SERVICE_ACCESS_POST_ALLOWED, commission_application_provision_req_recv_cb);
coap_service_register_uri(this->coap_service_id, THREAD_URI_DATASET_CHANGED, COAP_SERVICE_ACCESS_POST_ALLOWED, commission_dataset_changed_notify_recv_cb);
coap_service_register_uri(this->coap_service_id, THREAD_URI_UDP_RECVEIVE_NOTIFICATION, COAP_SERVICE_ACCESS_POST_ALLOWED, thread_commission_udp_proxy_receive_cb);

this->coap_secure_service_id = coap_service_initialize(this->interface_id, THREAD_COMMISSIONING_PORT, COAP_SERVICE_OPTIONS_SECURE | COAP_SERVICE_OPTIONS_SECURE_BYPASS, commissioner_br_security_start_cb, commissioner_br_security_done_cb);
coap_service_register_uri(this->coap_secure_service_id, THREAD_URI_RELAY_RECEIVE, COAP_SERVICE_ACCESS_POST_ALLOWED, commission_relay_rx_recv_cb);
coap_service_register_uri(this->coap_secure_service_id, THREAD_URI_UDP_RECVEIVE_NOTIFICATION, COAP_SERVICE_ACCESS_POST_ALLOWED, thread_commission_udp_proxy_receive_cb);

this->coap_secure_virtual_service_id = coap_service_initialize(this->interface_id, THREAD_MANAGEMENT_PORT, COAP_SERVICE_OPTIONS_SECURE | COAP_SERVICE_OPTIONS_VIRTUAL_SOCKET, joiner_commissioner_security_start_cb, commissioning_security_done_cb);
coap_service_register_uri(this->coap_secure_virtual_service_id, THREAD_URI_JOINER_FINALIZATION, COAP_SERVICE_ACCESS_POST_ALLOWED, commission_finalisation_req_recv_cb);
Expand Down

0 comments on commit e7d551c

Please sign in to comment.