{"id":606,"date":"2009-03-23T09:58:31","date_gmt":"2009-03-23T08:58:31","guid":{"rendered":"http:\/\/daniel.haxx.se\/blog\/?p=606"},"modified":"2009-03-23T09:58:31","modified_gmt":"2009-03-23T08:58:31","slug":"code-re-use-is-fun","status":"publish","type":"post","link":"https:\/\/daniel.haxx.se\/blog\/2009\/03\/23\/code-re-use-is-fun\/","title":{"rendered":"Code re-use is fun"},"content":{"rendered":"<p>Back in 2003 I wrote up support for the <a href=\"http:\/\/en.wikipedia.org\/wiki\/NTLM\">HTTP NTLM authentication<\/a> method <a href=\"http:\/\/cool.haxx.se\/cvs.cgi\/curl\/lib\/http_ntlm.c\">for libcurl<\/a>. Happy with my achievement, I later that year donated a <a href=\"http:\/\/www.gnu.org\/copyleft\/gpl.html\">GPL licensed<\/a> version of my code to the <a href=\"http:\/\/www.gnu.org\/software\/wget\/\">Wget<\/a> project (which also was my first contact with the signed paper stuff with the <a href=\"http:\/\/www.gnu.org\/\">GNU<\/a>\/<a href=\"http:\/\/www.fsf.org\/\">FSF<\/a> to waive my copyright claims and instead hand them over). What was perhaps not so amusing with this code was when both curl and Wget 2005 were discovered to have the same <a href=\"http:\/\/curl.haxx.se\/docs\/security.html#BID15102\">security flaw<\/a> due to my mistakes in this code shared by both projects!<\/p>\n<p>Just recently, the <a href=\"http:\/\/www.webdav.org\/neon\/\">neon project<\/a> <a href=\"http:\/\/lists.manyfish.co.uk\/pipermail\/neon\/2009-March\/000119.html\">seems to be interested<\/a> in taking on the version I adjusted somewhat for them, so possibly the third HTTP code is soon using this. Yeah I posted it on their mailing list back then so it has been sitting there in the archives maturing for some 6 years by now&#8230;<\/p>\n<p>I also happened to fall over the <a href=\"http:\/\/legacy.not404.com\/book\/export\/html\/28\">SSH Tunnel Creator<\/a> tool, which I&#8217;ve never used myself, that apparently snatched my neon donation (quite according to what the license allowed of course) and used it in their tool to do NTLM!<\/p>\n<p>It&#8217;s actually not until recent years I discovered <a href=\"http:\/\/josefsson.org\/libntlm\/\">libntlm<\/a>, and while I don&#8217;t know how good it was back in the days when I wrote my first NTLM stuff I generally think using existing libs is the better idea&#8230;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Back in 2003 I wrote up support for the HTTP NTLM authentication method for libcurl. Happy with my achievement, I later that year donated a GPL licensed version of my code to the Wget project (which also was my first contact with the signed paper stuff with the GNU\/FSF to waive my copyright claims and &hellip; <a href=\"https:\/\/daniel.haxx.se\/blog\/2009\/03\/23\/code-re-use-is-fun\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Code re-use is fun<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":5,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7,6],"tags":[33,230,19,428,238,234],"class_list":["post-606","post","type-post","status-publish","format-standard","hentry","category-curl","category-floss","tag-curl-and-libcurl","tag-http","tag-open-source","tag-security","tag-ssh","tag-wget"],"_links":{"self":[{"href":"https:\/\/daniel.haxx.se\/blog\/wp-json\/wp\/v2\/posts\/606","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/daniel.haxx.se\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/daniel.haxx.se\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/daniel.haxx.se\/blog\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/daniel.haxx.se\/blog\/wp-json\/wp\/v2\/comments?post=606"}],"version-history":[{"count":5,"href":"https:\/\/daniel.haxx.se\/blog\/wp-json\/wp\/v2\/posts\/606\/revisions"}],"predecessor-version":[{"id":621,"href":"https:\/\/daniel.haxx.se\/blog\/wp-json\/wp\/v2\/posts\/606\/revisions\/621"}],"wp:attachment":[{"href":"https:\/\/daniel.haxx.se\/blog\/wp-json\/wp\/v2\/media?parent=606"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/daniel.haxx.se\/blog\/wp-json\/wp\/v2\/categories?post=606"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/daniel.haxx.se\/blog\/wp-json\/wp\/v2\/tags?post=606"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}