| /* |
| * Copyright (C) 2004-2023 Savoir-faire Linux Inc. |
| * |
| * This program is free software: you can redistribute it and/or modify |
| * it under the terms of the GNU General Public License as published by |
| * the Free Software Foundation, either version 3 of the License, or |
| * (at your option) any later version. |
| * |
| * This program is distributed in the hope that it will be useful, |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| * GNU General Public License for more details. |
| * |
| * You should have received a copy of the GNU General Public License |
| * along with this program. If not, see <https://www.gnu.org/licenses/>. |
| */ |
| #include "upnp_igd.h" |
| |
| namespace dhtnet { |
| namespace upnp { |
| |
| UPnPIGD::UPnPIGD(std::string&& UDN, |
| std::string&& baseURL, |
| std::string&& friendlyName, |
| std::string&& serviceType, |
| std::string&& serviceId, |
| std::string&& locationURL, |
| std::string&& controlURL, |
| std::string&& eventSubURL, |
| IpAddr&& localIp, |
| IpAddr&& publicIp) |
| : IGD(NatProtocolType::PUPNP) |
| { |
| uid_ = std::move(UDN); |
| baseURL_ = std::move(baseURL); |
| friendlyName_ = std::move(friendlyName); |
| serviceType_ = std::move(serviceType); |
| serviceId_ = std::move(serviceId); |
| locationURL_ = std::move(locationURL); |
| controlURL_ = std::move(controlURL); |
| eventSubURL_ = std::move(eventSubURL); |
| localIp_ = std::move(localIp); |
| publicIp_ = std::move(publicIp); |
| } |
| |
| bool |
| UPnPIGD::operator==(IGD& other) const |
| { |
| return localIp_ == other.getLocalIp() and publicIp_ == other.getPublicIp(); |
| } |
| |
| bool |
| UPnPIGD::operator==(UPnPIGD& other) const |
| { |
| if (localIp_ and publicIp_) { |
| if (localIp_ != other.localIp_ or publicIp_ != other.publicIp_) { |
| return false; |
| } |
| } |
| |
| return uid_ == other.uid_ and baseURL_ == other.baseURL_ |
| and friendlyName_ == other.friendlyName_ and serviceType_ == other.serviceType_ |
| and serviceId_ == other.serviceId_ and locationURL_ == other.locationURL_ |
| and controlURL_ == other.controlURL_ and eventSubURL_ == other.eventSubURL_; |
| } |
| |
| } // namespace upnp |
| } // namespace dhtnet |