Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e73a69d6 authored by ELIYAZ MOMIN's avatar ELIYAZ MOMIN Committed by Automerger Merge Worker
Browse files

Merge "Revert "check whether the network interface exists before using it""...

Merge "Revert "check whether the network interface exists before using it"" into main am: 2962de54

Original change: https://android-review.googlesource.com/c/platform/hardware/interfaces/+/3364447



Change-Id: Ie9e665901d05a9f3b0c441ac825cae0f58ad4d4d
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents b853bc84 2962de54
Loading
Loading
Loading
Loading
+13 −24
Original line number Diff line number Diff line
@@ -18,11 +18,11 @@
#include <android-base/logging.h>
#include <android/binder_manager.h>
#include <android/binder_process.h>
#include <cutils/properties.h>
#include <net/if.h>
#include <netinet/in.h>
#include <sys/stat.h>
#include <net/if.h>
#include <utils/Log.h>
#include <cutils/properties.h>
#include <sys/stat.h>

#include "service.hpp"
#include "thread_chip.hpp"
@@ -30,15 +30,9 @@
using aidl::android::hardware::threadnetwork::IThreadChip;
using aidl::android::hardware::threadnetwork::ThreadChip;

#define THREADNETWORK_COPROCESSOR_SIMULATION_PATH \
    "/apex/com.android.hardware.threadnetwork/bin/ot-rcp"
#define THREADNETWORK_COPROCESSOR_SIMULATION_PATH "/apex/com.android.hardware.threadnetwork/bin/ot-rcp"

namespace {

bool isInterfaceExists(const char* interfaceName) {
    return if_nametoindex(interfaceName) != 0;
}

void addThreadChip(int id, const char* url) {
    binder_status_t status;
    const std::string serviceName(std::string() + IThreadChip::descriptor + "/chip" +
@@ -56,24 +50,19 @@ void addThreadChip(int id, const char* url) {

void addSimulatedThreadChip() {
    char local_interface[PROP_VALUE_MAX];
    int node_id = property_get_int32("ro.boot.openthread_node_id", 0);

    CHECK_GT(node_id, 0);

    std::string url = std::string("spinel+hdlc+forkpty://" THREADNETWORK_COPROCESSOR_SIMULATION_PATH
                                  "?forkpty-arg=") +
                      std::to_string(node_id);
    CHECK_GT(property_get("persist.vendor.otsim.local_interface",
                local_interface, "eth1"), 0);

    CHECK_GT(property_get("persist.vendor.otsim.local_interface", local_interface, "eth1"), 0);
    if (isInterfaceExists(local_interface)) {
        url += std::string("&forkpty-arg=-L") + local_interface;
    } else {
        ALOGI("Interface %s doesn't exist!", local_interface);
    }
    int node_id = property_get_int32("ro.boot.openthread_node_id", 0);
    CHECK_GT(node_id,0);

    std::string url = std::string("spinel+hdlc+forkpty://" \
            THREADNETWORK_COPROCESSOR_SIMULATION_PATH "?forkpty-arg=-L") \
                      + local_interface + "&forkpty-arg=" + std::to_string(node_id);
    addThreadChip(0, url.c_str());
}
}  // namespace
}

int main(int argc, char* argv[]) {
    aidl::android::hardware::threadnetwork::Service service;