Skip to content

Commit f1ce710

Browse files
committed
Remove support for Android versions less than 24
Matter requires RIO, which is not supported on versions < 26.
1 parent 5748b07 commit f1ce710

File tree

1 file changed

+0
-145
lines changed

1 file changed

+0
-145
lines changed

src/inet/InetInterface.cpp

-145
Original file line numberDiff line numberDiff line change
@@ -507,143 +507,6 @@ void CloseIOCTLSocket()
507507
}
508508
}
509509

510-
#if __ANDROID__ && __ANDROID_API__ < 24
511-
512-
static struct if_nameindex * backport_if_nameindex(void);
513-
static void backport_if_freenameindex(struct if_nameindex *);
514-
515-
static void backport_if_freenameindex(struct if_nameindex * inArray)
516-
{
517-
if (inArray == NULL)
518-
{
519-
return;
520-
}
521-
522-
for (size_t i = 0; inArray[i].if_index != 0; i++)
523-
{
524-
if (inArray[i].if_name != NULL)
525-
{
526-
Platform::MemoryFree(inArray[i].if_name);
527-
}
528-
}
529-
530-
Platform::MemoryFree(inArray);
531-
}
532-
533-
static struct if_nameindex * backport_if_nameindex(void)
534-
{
535-
int err;
536-
unsigned index;
537-
size_t intfIter = 0;
538-
size_t maxIntfNum = 0;
539-
size_t numIntf = 0;
540-
size_t numAddrs = 0;
541-
struct if_nameindex * retval = NULL;
542-
struct if_nameindex * tmpval = NULL;
543-
struct ifaddrs * addrList = NULL;
544-
struct ifaddrs * addrIter = NULL;
545-
const char * lastIntfName = "";
546-
547-
err = getifaddrs(&addrList);
548-
VerifyOrExit(err >= 0, );
549-
550-
// coalesce on consecutive interface names
551-
for (addrIter = addrList; addrIter != NULL; addrIter = addrIter->ifa_next)
552-
{
553-
numAddrs++;
554-
if (strcmp(addrIter->ifa_name, lastIntfName) == 0)
555-
{
556-
continue;
557-
}
558-
numIntf++;
559-
lastIntfName = addrIter->ifa_name;
560-
}
561-
562-
tmpval = (struct if_nameindex *) Platform::MemoryAlloc((numIntf + 1) * sizeof(struct if_nameindex));
563-
VerifyOrExit(tmpval != NULL, );
564-
memset(tmpval, 0, (numIntf + 1) * sizeof(struct if_nameindex));
565-
566-
lastIntfName = "";
567-
for (addrIter = addrList; addrIter != NULL; addrIter = addrIter->ifa_next)
568-
{
569-
if (strcmp(addrIter->ifa_name, lastIntfName) == 0)
570-
{
571-
continue;
572-
}
573-
574-
index = if_nametoindex(addrIter->ifa_name);
575-
if (index != 0)
576-
{
577-
tmpval[intfIter].if_index = index;
578-
tmpval[intfIter].if_name = strdup(addrIter->ifa_name);
579-
intfIter++;
580-
}
581-
lastIntfName = addrIter->ifa_name;
582-
}
583-
584-
// coalesce on interface index
585-
maxIntfNum = 0;
586-
for (size_t i = 0; tmpval[i].if_index != 0; i++)
587-
{
588-
if (maxIntfNum < tmpval[i].if_index)
589-
{
590-
maxIntfNum = tmpval[i].if_index;
591-
}
592-
}
593-
594-
retval = (struct if_nameindex *) Platform::MemoryAlloc((maxIntfNum + 1) * sizeof(struct if_nameindex));
595-
VerifyOrExit(retval != NULL, );
596-
memset(retval, 0, (maxIntfNum + 1) * sizeof(struct if_nameindex));
597-
598-
for (size_t i = 0; tmpval[i].if_index != 0; i++)
599-
{
600-
struct if_nameindex * intf = &tmpval[i];
601-
if (retval[intf->if_index - 1].if_index == 0)
602-
{
603-
retval[intf->if_index - 1] = *intf;
604-
}
605-
else
606-
{
607-
free(intf->if_name);
608-
intf->if_index = 0;
609-
intf->if_name = 0;
610-
}
611-
}
612-
613-
intfIter = 0;
614-
615-
// coalesce potential gaps between indeces
616-
for (size_t i = 0; i < maxIntfNum; i++)
617-
{
618-
if (retval[i].if_index != 0)
619-
{
620-
retval[intfIter] = retval[i];
621-
intfIter++;
622-
}
623-
}
624-
625-
for (size_t i = intfIter; i < maxIntfNum; i++)
626-
{
627-
retval[i].if_index = 0;
628-
retval[i].if_name = NULL;
629-
}
630-
631-
exit:
632-
if (tmpval != NULL)
633-
{
634-
Platform::MemoryFree(tmpval);
635-
}
636-
637-
if (addrList != NULL)
638-
{
639-
freeifaddrs(addrList);
640-
}
641-
642-
return retval;
643-
}
644-
645-
#endif // __ANDROID__ && __ANDROID_API__ < 24
646-
647510
InterfaceIterator::InterfaceIterator()
648511
{
649512
mIntfArray = nullptr;
@@ -656,11 +519,7 @@ InterfaceIterator::~InterfaceIterator()
656519
{
657520
if (mIntfArray != nullptr)
658521
{
659-
#if __ANDROID__ && __ANDROID_API__ < 24
660-
backport_if_freenameindex(mIntfArray);
661-
#else
662522
if_freenameindex(mIntfArray);
663-
#endif
664523
mIntfArray = nullptr;
665524
}
666525
}
@@ -674,11 +533,7 @@ bool InterfaceIterator::Next()
674533
{
675534
if (mIntfArray == nullptr)
676535
{
677-
#if __ANDROID__ && __ANDROID_API__ < 24
678-
mIntfArray = backport_if_nameindex();
679-
#else
680536
mIntfArray = if_nameindex();
681-
#endif
682537
}
683538
else if (mIntfArray[mCurIntf].if_index != 0)
684539
{

0 commit comments

Comments
 (0)