GCS_MAVLink: stop using one backend's signing structure for all backends

This commit is contained in:
Peter Barker 2019-08-21 08:20:44 +10:00 committed by Andrew Tridgell
parent 8914bb45f8
commit 88895f9b13

View File

@ -86,8 +86,14 @@ void GCS_MAVLINK::handle_setup_signing(const mavlink_message_t &msg)
return;
}
// activate it immediately
load_signing_key();
// activate it immediately on all links:
for (uint8_t i=0; i<MAVLINK_COMM_NUM_BUFFERS; i++) {
GCS_MAVLINK *backend = gcs().chan(i);
if (backend == nullptr) {
return;
}
backend->load_signing_key();
}
}
@ -148,20 +154,13 @@ void GCS_MAVLINK::load_signing_key(void)
break;
}
}
// enable signing on all channels
for (uint8_t i=0; i<MAVLINK_COMM_NUM_BUFFERS; i++) {
mavlink_status_t *cstatus = mavlink_get_channel_status((mavlink_channel_t)(MAVLINK_COMM_0 + i));
if (cstatus != nullptr) {
if (all_zero) {
// disable signing
cstatus->signing = nullptr;
cstatus->signing_streams = nullptr;
status->signing = nullptr;
status->signing_streams = nullptr;
} else {
cstatus->signing = &signing;
cstatus->signing_streams = &signing_streams;
}
}
status->signing = &signing;
status->signing_streams = &signing_streams;
}
}