Commit c3389a15 authored by Honza Bambas's avatar Honza Bambas
Browse files

Bug 454381: Minefield Nightly brings up Dial-Up Login if a website is...

Bug 454381: Minefield Nightly brings up Dial-Up Login if a website is unavailable. r=biesi, sr=bsmedberg, a1.9.1b2=beltzner
parent 163592ad
Loading
Loading
Loading
Loading
+18 −0
Original line number Diff line number Diff line
@@ -583,6 +583,24 @@ nsIOService::NewChannel(const nsACString &aSpec, const char *aCharset, nsIURI *a
    return NewChannelFromURI(uri, result);
}

PRBool
nsIOService::IsLinkUp()
{
    if (!mNetworkLinkService) {
        // We cannot decide, assume the link is up
        return PR_TRUE;
    }

    PRBool isLinkUp;
    nsresult rv;
    rv = mNetworkLinkService->GetIsLinkUp(&isLinkUp);
    if (NS_FAILED(rv)) {
        return PR_TRUE;
    }

    return isLinkUp;
}

NS_IMETHODIMP
nsIOService::GetOffline(PRBool *offline)
{
+1 −0
Original line number Diff line number Diff line
@@ -107,6 +107,7 @@ public:
    }

    PRBool IsOffline() { return mOffline; }
    PRBool IsLinkUp();

private:
    // These shouldn't be called directly:
+5 −1
Original line number Diff line number Diff line
@@ -38,14 +38,18 @@

#include "nsNativeConnectionHelper.h"
#include "nsAutodialWin.h"
#include "nsIOService.h"

//-----------------------------------------------------------------------------
// API typically invoked on the socket transport thread
//-----------------------------------------------------------------------------


PRBool
nsNativeConnectionHelper::OnConnectionFailed(const PRUnichar* hostName)
{
    if (gIOService->IsLinkUp())
        return PR_FALSE;

    nsRASAutodial autodial;

    if (autodial.ShouldDialOnNetworkError())