Fix for x86_64 build fail
[platform/upstream/connectedhomeip.git] / src / controller / DeviceAddressUpdater.cpp
1 /*
2  *
3  *    Copyright (c) 2021 Project CHIP Authors
4  *    All rights reserved.
5  *
6  *    Licensed under the Apache License, Version 2.0 (the "License");
7  *    you may not use this file except in compliance with the License.
8  *    You may obtain a copy of the License at
9  *
10  *        http://www.apache.org/licenses/LICENSE-2.0
11  *
12  *    Unless required by applicable law or agreed to in writing, software
13  *    distributed under the License is distributed on an "AS IS" BASIS,
14  *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15  *    See the License for the specific language governing permissions and
16  *    limitations under the License.
17  */
18
19 #include "DeviceAddressUpdater.h"
20
21 #include <controller/CHIPDeviceController.h>
22
23 namespace chip {
24 namespace Controller {
25
26 CHIP_ERROR DeviceAddressUpdater::Init(DeviceController * controller, DeviceAddressUpdateDelegate * delegate)
27 {
28     VerifyOrReturnError(mController == nullptr, CHIP_ERROR_INCORRECT_STATE);
29     VerifyOrReturnError(mDelegate == nullptr, CHIP_ERROR_INCORRECT_STATE);
30
31     mController = controller;
32     mDelegate   = delegate;
33
34     return CHIP_NO_ERROR;
35 }
36
37 void DeviceAddressUpdater::OnNodeIdResolved(NodeId nodeId, const Mdns::ResolvedNodeData & nodeData)
38 {
39     CHIP_ERROR error = CHIP_NO_ERROR;
40     Device * device  = nullptr;
41
42     VerifyOrExit(nodeData.mAddress.Type() != Inet::kIPAddressType_Any, error = CHIP_ERROR_INVALID_ADDRESS);
43     VerifyOrExit(mController != nullptr, error = CHIP_ERROR_INCORRECT_STATE);
44     SuccessOrExit(error = mController->GetDevice(nodeId, &device));
45
46     device->UpdateAddress(Transport::PeerAddress::UDP(nodeData.mAddress, nodeData.mPort, nodeData.mInterfaceId));
47
48 exit:
49     if (mDelegate != nullptr)
50     {
51         mDelegate->OnAddressUpdateComplete(nodeId, error);
52     }
53 }
54
55 void DeviceAddressUpdater::OnNodeIdResolutionFailed(NodeId nodeId, CHIP_ERROR error)
56 {
57     if (mDelegate != nullptr)
58     {
59         mDelegate->OnAddressUpdateComplete(nodeId, error);
60     }
61 }
62
63 } // namespace Controller
64 } // namespace chip