diff --git a/src/modules/AdminModule.cpp b/src/modules/AdminModule.cpp index 88c22b489..32f89da2f 100644 --- a/src/modules/AdminModule.cpp +++ b/src/modules/AdminModule.cpp @@ -61,6 +61,18 @@ void AdminModule::handleGetRadio(const MeshPacket &req) } } +void AdminModule::handleGetOwner(const MeshPacket &req) +{ + if (req.decoded.want_response) { + // We create the reply here + AdminMessage r = AdminMessage_init_default; + r.get_owner_response = owner; + + r.which_variant = AdminMessage_get_owner_response_tag; + myReply = allocDataProtobuf(r); + } +} + bool AdminModule::handleReceivedProtobuf(const MeshPacket &mp, AdminMessage *r) { // if handled == false, then let others look at this message also if they want @@ -101,6 +113,11 @@ bool AdminModule::handleReceivedProtobuf(const MeshPacket &mp, AdminMessage *r) handleGetRadio(mp); break; + case AdminMessage_get_owner_request_tag: + DEBUG_MSG("Client is getting owner\n"); + handleGetOwner(mp); + break; + case AdminMessage_reboot_seconds_tag: { int32_t s = r->reboot_seconds; DEBUG_MSG("Rebooting in %d seconds\n", s); diff --git a/src/modules/AdminModule.h b/src/modules/AdminModule.h index b37fa496f..dfe1e6c07 100644 --- a/src/modules/AdminModule.h +++ b/src/modules/AdminModule.h @@ -26,6 +26,7 @@ class AdminModule : public ProtobufModule void handleGetChannel(const MeshPacket &req, uint32_t channelIndex); void handleGetRadio(const MeshPacket &req); + void handleGetOwner(const MeshPacket &req); }; extern AdminModule *adminModule;