Ticket #11391: serverpool.v1.patch

File serverpool.v1.patch, 2.4 KB (added by Bill Meek <keemllib@…>, 8 years ago)
  • mythtv/libs/libmythbase/serverpool.cpp

    diff --git i/mythtv/libs/libmythbase/serverpool.cpp w/mythtv/libs/libmythbase/serverpool.cpp
    index 0a044d5..3764f15 100644
    i w static QReadWriteLock naLock; 
    2323static QPair<QHostAddress, int> kLinkLocal  =
    2424                            QHostAddress::parseSubnet("169.254.0.0/16");
    2525#if !defined(QT_NO_IPV6)
    26 static QPair<QHostAddress, int> kLinkLocal6 =
    27                             QHostAddress::parseSubnet("fe80::/10");
     26static QPair<QHostAddress, int>
     27        kLinkLocal6         = QHostAddress::parseSubnet("fe80::/10"),
     28        kUniqueLocalAddress = QHostAddress::parseSubnet("fc00::/7");
    2829#endif
    2930
    3031class PrivUdpSocket : public QUdpSocket
    void ServerPool::SelectDefaultListen(bool force) 
    156157                else if (config_v4.isNull())
    157158                {
    158159                    // IPv4 address is not defined, populate one
    159                     // restrict autoconfiguration to RFC1918 private networks
    160160                    static QPair<QHostAddress, int>
    161161                       privNet1 = QHostAddress::parseSubnet("10.0.0.0/8"),
    162162                       privNet2 = QHostAddress::parseSubnet("172.16.0.0/12"),
    void ServerPool::SelectDefaultListen(bool force) 
    184184                }
    185185
    186186                else
    187                     LOG(VB_GENERAL, LOG_DEBUG, QString("Skipping address: %1")
     187                {
     188                    LOG(VB_GENERAL, LOG_DEBUG, QString("Adding address: %1")
    188189                                .arg(PRETTYIP_(ip)));
     190                    naList_4.append(*qnai);
     191                }
    189192
    190193#if !defined(QT_NO_IPV6)
    191194            }
    192195            else
    193196            {
     197
    194198                if (ip.isInSubnet(kLinkLocal6))
    195199                {
    196200                    // set scope id for link local address
    void ServerPool::SelectDefaultListen(bool force) 
    232236                    naList_6.append(*qnai);
    233237                }
    234238
     239                else if (ip.isInSubnet(kUniqueLocalAddress))
     240                {
     241                    // always listen on Unique Local Adresses
     242                    LOG(VB_GENERAL, LOG_DEBUG,
     243                            QString("Adding ULA '%1' to address list.")
     244                                .arg(PRETTYIP_(ip)));
     245                    naList_6.append(*qnai);
     246                }
     247
    235248                else if (config_v6.isNull())
    236249                {
    237250                    if (ip.isInSubnet(kLinkLocal6))