Lines Matching full:intf
230 mDNSlocal void SocketDataReady(mDNS *const m, PosixNetworkInterface *intf, int skt)
242 const mDNSInterfaceID InterfaceID = intf ? intf->coreIntf.InterfaceID : NULL;
289 if (!intf)
296 if (packetInfo.ipi_ifname[0] != 0) reject = (strcmp(packetInfo.ipi_ifname, intf->intfName) != 0);
297 else if (packetInfo.ipi_ifindex != -1) reject = (packetInfo.ipi_ifindex != intf->index);
303 &intf->coreIntf.ip, intf->intfName, intf->index, skt);
318 &senderAddr, &destAddr, &intf->coreIntf.ip, intf->intfName, intf->index, skt);
537 PosixNetworkInterface *intf;
542 intf = (PosixNetworkInterface*)(m->HostInterfaces);
543 while ((intf != NULL) && (strcmp(intf->intfName, intfName) != 0))
544 intf = (PosixNetworkInterface *)(intf->coreIntf.next);
546 return intf;
551 PosixNetworkInterface *intf;
559 intf = (PosixNetworkInterface*)(m->HostInterfaces);
560 while ((intf != NULL) && (mDNSu32) intf->index != index)
561 intf = (PosixNetworkInterface *)(intf->coreIntf.next);
563 return (mDNSInterfaceID) intf;
568 PosixNetworkInterface *intf;
577 intf = (PosixNetworkInterface*)(m->HostInterfaces);
578 while ((intf != NULL) && (mDNSInterfaceID) intf != id)
579 intf = (PosixNetworkInterface *)(intf->coreIntf.next);
581 return intf ? intf->index : 0;
586 mDNSlocal void FreePosixNetworkInterface(PosixNetworkInterface *intf)
588 assert(intf != NULL);
589 if (intf->intfName != NULL) free((void *)intf->intfName);
590 if (intf->multicastSocket4 != -1)
592 int ipv4_closed = close(intf->multicastSocket4);
596 if (intf->multicastSocket6 != -1)
598 int ipv6_closed = close(intf->multicastSocket6);
602 free(intf);
612 PosixNetworkInterface *intf = (PosixNetworkInterface*)(m->HostInterfaces);
613 mDNS_DeregisterInterface(m, &intf->coreIntf, mDNSfalse);
614 if (gMDNSPlatformPosixVerboseLevel > 0) fprintf(stderr, "Deregistered interface %s\n", intf->intfName);
615 FreePosixNetworkInterface(intf);
854 PosixNetworkInterface *intf;
863 intf = (PosixNetworkInterface*)malloc(sizeof(*intf));
864 if (intf == NULL) { assert(0); err = ENOMEM; }
869 intf->intfName = strdup(intfName);
870 if (intf->intfName == NULL) { assert(0); err = ENOMEM; }
876 SockAddrTomDNSAddr(intfAddr, &intf->coreIntf.ip, NULL);
877 SockAddrTomDNSAddr(intfMask, &intf->coreIntf.mask, NULL);
879 //LogMsg("SetupOneInterface: %#a %#a", &intf->coreIntf.ip, &intf->coreIntf.mask);
880 strncpy(intf->coreIntf.ifname, intfName, sizeof(intf->coreIntf.ifname));
881 intf->coreIntf.ifname[sizeof(intf->coreIntf.ifname)-1] = 0;
882 intf->coreIntf.Advertise = m->AdvertiseLocalAddresses;
883 intf->coreIntf.McastTxRx = mDNStrue;
886 assert(intf->intfName != NULL); // intf->intfName already set up above
887 intf->index = intfIndex;
888 intf->multicastSocket4 = -1;
890 intf->multicastSocket6 = -1;
892 alias = SearchForInterfaceByName(m, intf->intfName);
893 if (alias == NULL) alias = intf;
894 intf->coreIntf.InterfaceID = (mDNSInterfaceID)alias;
896 if (alias != intf)
897 debugf("SetupOneInterface: %s %#a is an alias of %#a", intfName, &intf->coreIntf.ip, &alias->coreIntf.ip);
904 err = SetupSocket(intfAddr, MulticastDNSPort, intf->index, &alias->multicastSocket4);
907 err = SetupSocket(intfAddr, MulticastDNSPort, intf->index, &alias->multicastSocket6);
913 err = mDNS_RegisterInterface(m, &intf->coreIntf, mDNSfalse);
919 debugf("SetupOneInterface: %s %#a Registered", intf->intfName, &intf->coreIntf.ip);
921 fprintf(stderr, "Registered interface %s\n", intf->intfName);
925 // Use intfName instead of intf->intfName in the next line to avoid dereferencing NULL.
926 debugf("SetupOneInterface: %s %#a failed to register %d", intfName, &intf->coreIntf.ip, err);
927 if (intf) { FreePosixNetworkInterface(intf); intf = NULL; }
930 assert((err == 0) == (intf != NULL));
1435 mDNSexport mDNSBool mDNSPlatformValidRecordForInterface(AuthRecord *rr, const NetworkInterfaceInfo *intf)
1438 (void) intf;