Kodi Community Forum

Full Version: CFileCurl::Exists always returns true, with an FTP address
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
This patch fixes it. Let me know how to clean it up and what else needs to be done so it can get accepted.

For simplicity, here is the old and new code:
Old: http://pastebin.com/pastebin.php?dl=m5c36b752
New: http://pastebin.com/pastebin.php?dl=ma05d1ab

Thanks.
I just updated it on Tracker, sorry about that.

For convenience:
old
new
Thanks for the patch - can you perhaps detail why it was failing in the trac ticket?

Thanks!
Jonathan
Of course...

If CFileCurl::Exists is called on a HTTP address, g_curlinterface.easy_perform returns CURLE_HTTP_RETURNED_ERROR when the file doesn't exist. It returns CURLE_WRITE_ERROR if the http file does exist (since a write was called with a null write-buffer). Unfortunately, when dealing with an FTP file, it returns CURLE_WRITE_ERROR regardless of whether the file exists. Therefore, I needed to add a check when getting the content length to see what the content length was... if the file exists the length is at least zero (even with a file with no content), but if it fails, the length is -1.

I'm sure there is a more elegant way to do this, but I am a libCurl n00b.