PATCH: Fix for crash-on-startup issues for non-US issues

  Thread Rating:
  • 0 Votes - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Post Reply
micolous Offline
Junior Member
Posts: 4
Joined: Oct 2007
Reputation: 0
Location: Australia
Post: #1
Hi,

I have found that the recent XBMC revisions (specifically r10624 and r10626 that I've tried) have a bug in the connection test which causes XBMC to crash if you are outside of the US. The problem specifically is that the HTTP library tries to follow redirects in HEAD requests, causing what I think might be a null pointer issue.

Outside of the US, http://www.google.com/ automatically redirects to the local version of Google.

This patch makes it so that the HTTP library will NOT follow redirects in HEAD requests, and updates Google's IP address so it is current.

Code:
Index: xbmc/utils/HTTP.cpp
===================================================================
--- xbmc/utils/HTTP.cpp (revision 10626)
+++ xbmc/utils/HTTP.cpp (working copy)
@@ -280,7 +280,7 @@
{
   CStdString strURL = "http://www.google.com";
   if (!checkDNS)
-    strURL = "http://66.102.7.99"; // www.google.com ip
+    strURL = "http://74.125.19.103"; // www.google.com IP address
   int status = Open(strURL, "HEAD", NULL);
   Close();

@@ -926,7 +926,6 @@
     case 302:
       // 302 Found - auto redirect if this is a GET
       //Post redirect has to work for scrapers
-      //CanHandle = !stricmp(verb, "GET");
       CanHandle = true;
       break;
     case 303:
@@ -941,8 +940,10 @@
     }

     Close();
-
-    if (!CanHandle)
+    
+    // pass through HEAD requests, as we assume that if you did a head request
+    // you don't want to follow redirects etc.
+    if (!CanHandle || !stricmp(verb, "HEAD"))
     {
       CLog::Log(LOGERROR, "Server returned: %d %s", status, strReason.c_str());
       return status; // unhandlable

(pastebin link for if the forum decides to eat my code)
find quote
d4rk Offline
Team-XBMC Developer
Posts: 499
Joined: May 2007
Reputation: 1
Location: Albuquerque
Post: #2
Thanks for the patch, it was applied in 10643.

Always read the XBMC online-manual, FAQ and search the forum before posting.
Please read and follow the forum rules.
For troubleshooting and bug reporting, please make sure you read this first.


[Image: badge.gif]
find quote