Workaround for HTTP auth problems on Mac OS X 10.5: we're now just always doing the...
authorBrion <brion@brions-macbook-air.local>
Tue, 31 Aug 2010 22:48:13 +0000 (15:48 -0700)
committerBrion <brion@brions-macbook-air.local>
Tue, 31 Aug 2010 22:48:13 +0000 (15:48 -0700)
commit6b8a27ff34fcc3c21b6c2811fcc334357a33e324
tree3833f56fbe2d0f79bc87351fe3f8809aed2e1911
parent2bf5a3f73a46100f9f3764b1ef9f472533dd5f1b
Workaround for HTTP auth problems on Mac OS X 10.5: we're now just always doing the basic auth header manually.
I think the problem was that username/password weren't getting copied over correctly sometimes when reusing connections, which libcurl does internally. All the settings on the Titanium side seemed to be correct, but sometimes we would send an auth header equivalent to sending an empty username and password (base64 of ':'). Took a look through libcurl to see if I could find it, but nothing leaped out -- it's some scary code. ;) The way username/pass are stored internally in libcurl changed between 7.16.4 (on OS X 10.5) and 7.19.7 (on OS X 10.6), which probably wiped out any bugs in that specific code.
Did have to abstract away the location of the base64-encoding function, since it's arbitrarily different between Titanium Desktop and Mobile...
StatusNet Desktop/Resources/model/statusnet_httpclient.js
StatusNet Desktop/Resources/statusnet.js
StatusNet Mobile/Resources/statusnet.js