Enable different interface for fastboot for cf
Bug: 209707539 Test: fastboot -s tcp:$local_link_addr%cvd-ebr getvar all Change-Id: If58b7d99156bb16b876239ad0b71e2317a24f790
This commit is contained in:
parent
13c721f330
commit
469fc99188
2 changed files with 9 additions and 6 deletions
|
@ -30,10 +30,12 @@
|
|||
#include "recovery_ui/ethernet_device.h"
|
||||
#include "recovery_ui/ethernet_ui.h"
|
||||
|
||||
const std::string EthernetDevice::interface = "eth0";
|
||||
// Android TV defaults to eth0 for it's interface
|
||||
EthernetDevice::EthernetDevice(EthernetRecoveryUI* ui) : EthernetDevice(ui, "eth0") {}
|
||||
|
||||
EthernetDevice::EthernetDevice(EthernetRecoveryUI* ui)
|
||||
: Device(ui), ctl_sock_(socket(AF_INET, SOCK_STREAM | SOCK_CLOEXEC, 0)) {
|
||||
// Allow future users to define the interface as they prefer
|
||||
EthernetDevice::EthernetDevice(EthernetRecoveryUI* ui, std::string interface)
|
||||
: Device(ui), ctl_sock_(socket(AF_INET, SOCK_STREAM | SOCK_CLOEXEC, 0)), interface_(interface) {
|
||||
if (ctl_sock_ < 0) {
|
||||
PLOG(ERROR) << "Failed to open socket";
|
||||
}
|
||||
|
@ -63,7 +65,7 @@ int EthernetDevice::SetInterfaceFlags(const unsigned set, const unsigned clr) {
|
|||
}
|
||||
|
||||
memset(&ifr, 0, sizeof(struct ifreq));
|
||||
strncpy(ifr.ifr_name, interface.c_str(), IFNAMSIZ);
|
||||
strncpy(ifr.ifr_name, interface_.c_str(), IFNAMSIZ);
|
||||
ifr.ifr_name[IFNAMSIZ - 1] = 0;
|
||||
|
||||
if (ioctl(ctl_sock_, SIOCGIFFLAGS, &ifr) < 0) {
|
||||
|
@ -96,7 +98,7 @@ void EthernetDevice::SetTitleIPv6LinkLocalAddress(const bool interface_up) {
|
|||
|
||||
std::unique_ptr<struct ifaddrs, decltype(&freeifaddrs)> guard{ ifaddr, freeifaddrs };
|
||||
for (struct ifaddrs* ifa = ifaddr; ifa != nullptr; ifa = ifa->ifa_next) {
|
||||
if (ifa->ifa_addr->sa_family != AF_INET6 || interface != ifa->ifa_name) {
|
||||
if (ifa->ifa_addr->sa_family != AF_INET6 || interface_ != ifa->ifa_name) {
|
||||
continue;
|
||||
}
|
||||
|
||||
|
|
|
@ -27,6 +27,7 @@ class EthernetRecoveryUI;
|
|||
class EthernetDevice : public Device {
|
||||
public:
|
||||
explicit EthernetDevice(EthernetRecoveryUI* ui);
|
||||
explicit EthernetDevice(EthernetRecoveryUI* ui, std::string interface);
|
||||
|
||||
void PreRecovery() override;
|
||||
void PreFastboot() override;
|
||||
|
@ -36,7 +37,7 @@ class EthernetDevice : public Device {
|
|||
void SetTitleIPv6LinkLocalAddress(const bool interface_up);
|
||||
|
||||
android::base::unique_fd ctl_sock_;
|
||||
static const std::string interface;
|
||||
std::string interface_;
|
||||
};
|
||||
|
||||
#endif // _ETHERNET_RECOVERY_DEVICE_H
|
||||
|
|
Loading…
Reference in a new issue