The unfortunate design flaw that Bazaar made here was to use the plain urllib module for accessing http and https resources.
Such an important tool like Bazaar should have used a more mature and featureful lib for that matter like libcurl is. Git uses libcurl and so adding NTLM support was just a one-liner patch [1], same as the YUM download manager did [2].
The correct fix would be to port Bazaar from urllib to libcurl as it automatically supports NTLM and several other proxy authentication methods [3].
The unfortunate design flaw that Bazaar made here was to use the plain urllib module for accessing http and https resources.
Such an important tool like Bazaar should have used a more mature and featureful lib for that matter like libcurl is. Git uses libcurl and so adding NTLM support was just a one-liner patch [1], same as the YUM download manager did [2].
The correct fix would be to port Bazaar from urllib to libcurl as it automatically supports NTLM and several other proxy authentication methods [3].
[1] https:/ /github. com/gitster/ git/commit/ dd6139971a18e25 a5089c0f96dc80e 454683ef0b# diff-0
[2] https:/ /bugzilla. redhat. com/show_ bug.cgi? id=769254# c3
[3] http:// curl.haxx. se/libcurl/ c/curl_ easy_setopt. html#CURLOPTHTT PAUTH