--- tb-send.rb.orig	2005-03-18 00:10:06.000000000 +0900
+++ tb-send.rb	2005-06-22 22:45:03.000000000 +0900
@@ -104,15 +104,20 @@
 		trackback << "&excerpt=#{CGI::escape( @conf.to_native( excerpt) )}" unless excerpt.empty?
 		trackback << "&blog_name=#{CGI::escape(blog_name)}"
 
-		if %r|^http://([^/]+)(/.*)$| =~ url then
-			request = $2
-			host, port = $1.split( /:/, 2 )
+		if %r|^http://(?:(.+):(.+)@)?([^/]+)(/.*)$| =~ url then
+		   basic_user = $1
+			basic_pass = $2
+			request = Net::HTTP::Post.new($4)
+			request['Content-Type'] = 'application/x-www-form-urlencoded'
+			host, port = $3.split( /:/, 2 )
 			port = '80' unless port
 			Net::HTTP.version_1_1
 			begin
 				Net::HTTP.start( host.untaint, port.to_i ) do |http|
-					response, = http.post( request, trackback,
-						"Content-Type" => 'application/x-www-form-urlencoded')
+				   if basic_user && basic_pass
+					   request.basic_auth(basic_user, basic_pass)
+					end
+					response, = http.request(request, trackback)
 					error, = response.body.scan(%r|<error>(\d)</error>|)[0]
 					if error == '1'
 						reason, = response.body.scan(%r|<message>(.*)</message>|m)[0]
