ssb にパッチ

ssb(server side browser)すばらしすぎるんぐ! ブラウザだけで携帯電話の画面確認ができてしまう! サービスも(とりあえず)ノーコンフィグで簡単起動だし!


んでもって、不具合というか、私に都合が悪かったのでパッチを書いた。coderepos のアカウントまだ持ってないので、とりあえずここに書いてトラックバック


開発中のアプリとかで URL が http://localhost:3000/ などの、ポート番号が80番じゃないとき、リダイレクト先やリンクがポート番号抜きで生成されてしまうのでその修正:
$ svn diff libs/ssb/request.rb

Index: libs/ssb/request.rb
===================================================================
--- libs/ssb/request.rb (リビジョン 2049)
+++ libs/ssb/request.rb (作業コピー)
@@ -54,12 +54,12 @@
       Net::HTTP.start(@uri.host.untaint, @uri.port.untaint) do |http|
         case method
         when 'GET'
-          response = http.get(uri.request_uri, request_header.update({'Host' => @uri.host,
+          response = http.get(uri.request_uri, request_header.update({'Host' => "#{@uri.host}:#{@uri.port}",
                                                       'Cookie' => 'server-side-browser'}))
         when 'POST'
           response = http.post(uri.request_uri,
                                @post_params,
-                               request_header.update({'Host' => @uri.host,
+                               request_header.update({'Host' => "#{@uri.host}:#{@uri.port}",
                                                        'Content-Type' => 'application/x-www-form-urlencoded',
                                                        'Cookie' => 'server-side-browser'
                                                      }))

あと、colinux とかで動かしてると、アクセス元制限はない方が嬉しいなー:
$ svn diff ssb-webrick.rb

Index: ssb-webrick.rb
===================================================================
--- ssb-webrick.rb      (リビジョン 2049)
+++ ssb-webrick.rb      (作業コピー)
@@ -5,7 +5,7 @@

 srv = WEBrick::HTTPServer.new({
     :DocumentRoot => "#{ Dir.pwd }",
-    :BindAddress => '127.0.0.1',
+    #:BindAddress => '127.0.0.1',
     :Port => 10080,
 })
 trap("INT"){ srv.shutdown }