Fix for ticket #2585: much cleaner site name -> proper API root discovery on Mobile.
authorBrion Vibber <brion@pobox.com>
Fri, 27 Aug 2010 00:56:28 +0000 (17:56 -0700)
committerBrion Vibber <brion@pobox.com>
Fri, 27 Aug 2010 00:56:28 +0000 (17:56 -0700)
commit944d548c621e3c11a300149d04f694ee92ec23f2
tree5db7bf12d6be02b0a14cd27570d62083064b5aa5
parentbda6c33d7dac02b56247e205039eee77977b53b8
Fix for ticket #2585: much cleaner site name -> proper API root discovery on Mobile.

http://status.net/open-source/issues/2585

Changes to behavior:
* tweaked UI to have separate labels and hint strings, so we have 'example.status.net' as hint
* fixed error response handling so we only say 'Bad nickname or password' on 401 response, otherwise we return the HTTP error code. This helps to distinguish actual auth failures from 404s or otherwise 'bad url'
* now doing discovery of the RSD info's own URL from the given URL if we're passed a URL that's not ending in '/api' or '/api/' -- then moving on to get the API root from there.
** warning: since an HTTP parser isn't available conveniently and we don't trust running the HTML through the XML parser, we're doing some awful hacks to fetch <link>s with a regex, then parse them as XML and check them. Eww!
* some cleanup on HTTPClient so we don't trigger a horrible failure when given something that's not valid XML. (Reading the responseXML property was causing XML to be parsed, without proper exception handling. We now check the content-type, and only try to parse XML pages.)
** needed a workaround for this.getResponseHeader() problem -- https://appcelerator.lighthouseapp.com/projects/32238-titanium-mobile/tickets/1502-httpclient-problems-with-header-parsing-and-responsedata-in-onerror-handler#ticket-1502-3

Yet to do... merging code into desktop. :) http://status.net/open-source/issues/2595
StatusNet Desktop/Resources/model/statusnet_httpclient.js
StatusNet Desktop/Resources/model/statusnet_rsd.js
StatusNet Mobile/Resources/view/statusnet_settingsview.js