[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    Re: branches/KDE/3.4/kdemultimedia/juk
From:       Full Decent <fulldecent () gmail ! com>
Date:       2005-10-06 14:53:36
Message-ID: c0be00e90510060753x4ae1d79bu53863717157f68ed () mail ! gmail ! com
[Download RAW message or body]

unsubscribe

On 10/5/05, Michael Pyne <michael.pyne@kdemail.net> wrote:
> SVN commit 467659 by mpyne:
> 
> Backport fix for bug 107517 (JuK ignores MusicBrainz proxy exceptions) to KDE 3.4.  \
> Should be in KDE 3.4.3.
> 
> I've also fixed it for 3.5 but forgot to CC the bug.
> 
> Thanks to Thiago for advice on the implementation.
> 
> BUG:107517
> 
> 
> M  +49 -2     ktrm.cpp
> 
> 
> --- branches/KDE/3.4/kdemultimedia/juk/ktrm.cpp #467658:467659
> @@ -24,11 +24,13 @@
> #if HAVE_MUSICBRAINZ
> 
> #include <kapplication.h>
> +#include <kresolver.h>
> #include <kprotocolmanager.h>
> #include <kurl.h>
> #include <kdebug.h>
> 
> #include <qmutex.h>
> +#include <qregexp.h>
> #include <qevent.h>
> #include <qobject.h>
> #include <qfile.h>
> @@ -121,9 +123,52 @@
> tp_SetUseUTF8(m_pimp, true);
> tp_SetNotifyCallback(m_pimp, TRMNotifyCallback, 0);
> 
> +        // Re-read proxy config.
> +        KProtocolManager::reparseConfiguration();
> +
> if(KProtocolManager::useProxy()) {
> -            KURL proxy = KProtocolManager::proxyFor("http");
> -            tp_SetProxy(m_pimp, proxy.host().latin1(), short(proxy.port()));
> +            // split code copied from kcm_kio.
> +            QString noProxiesFor = KProtocolManager::noProxyFor();
> +            QStringList noProxies = QStringList::split(QRegExp("[',''\t'' ']"), \
> noProxiesFor); +            bool useProxy = true;
> +
> +            // Host that libtunepimp will contact.
> +            QString tunepimpHost = "www.musicbrainz.org";
> +            QString tunepimpHostWithPort = "www.musicbrainz.org:80";
> +
> +            // Check what hosts are allowed to proceed without being proxied,
> +            // or is using reversed proxy, what hosts must be proxied.
> +            for(QStringList::ConstIterator it = noProxies.constBegin(); it != \
> noProxies.constEnd(); ++it) { +                QString normalizedHost = \
> KNetwork::KResolver::normalizeDomain(*it); +
> +                if(normalizedHost == tunepimpHost ||
> +                   tunepimpHost.endsWith("." + normalizedHost))
> +                {
> +                    useProxy = false;
> +                    break;
> +                }
> +
> +                // KDE's proxy mechanism also supports exempting a specific
> +                // host/port combo, check that also.
> +                if(normalizedHost == tunepimpHostWithPort ||
> +                   tunepimpHostWithPort.endsWith("." + normalizedHost))
> +                {
> +                    useProxy = false;
> +                    break;
> +                }
> +            }
> +
> +            // KDE supports a reverse proxy mechanism.  Uh, yay.
> +            if(KProtocolManager::useReverseProxy())
> +                useProxy = !useProxy;
> +
> +            if(useProxy) {
> +                KURL proxy = KProtocolManager::proxyFor("http");
> +                QString proxyHost = proxy.host();
> +
> +                kdDebug(65432) << "Using proxy server " << proxyHost << " for \
> www.musicbrainz.org.\n"; +                tp_SetProxy(m_pimp, proxyHost.latin1(), \
> short(proxy.port())); +            }
> }
> }
> 
> @@ -505,3 +550,5 @@
> }
> 
> #endif
> +
> +// vim: set et ts=8 sw=4:
> 


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic