Render an empty text string instead of nothing (which actually generate a
authorTom Hughes <tom@compton.nu>
Wed, 17 Oct 2007 23:22:51 +0000 (23:22 +0000)
committerTom Hughes <tom@compton.nu>
Wed, 17 Oct 2007 23:22:51 +0000 (23:22 +0000)
single space character) for 410 and 412 responses as there is a bug in
lighttpd (http://trac.lighttpd.net/trac/ticket/1055) that prevents it
passing on the response body for these codes, leading to the client blocking
waiting for the data until it times out. Closes #537.

app/controllers/node_controller.rb
app/controllers/relation_controller.rb
app/controllers/way_controller.rb

index 62987cf9433b35d0d8b8c3b770615e6758465cbc..fa15171cb51d83a72209f00be6e832041cd2ecad 100644 (file)
@@ -32,7 +32,7 @@ class NodeController < ApplicationController
       if node.visible
         render :text => node.to_xml.to_s, :content_type => "text/xml"
        else
-        render :nothing => true, :status => :gone
+        render :text => "", :status => :gone
       end
     rescue ActiveRecord::RecordNotFound
       render :nothing => true, :status => :not_found
@@ -58,7 +58,7 @@ class NodeController < ApplicationController
           render :nothing => true, :status => :bad_request
         end
       else
-        render :nothing => true, :status => :gone
+        render :text => "", :status => :gone
       end
     rescue ActiveRecord::RecordNotFound
       render :nothing => true, :status => :not_found
@@ -71,9 +71,9 @@ class NodeController < ApplicationController
 
       if node.visible
         if WayNode.find(:first, :joins => "INNER JOIN current_ways ON current_ways.id = current_way_nodes.id", :conditions => [ "current_ways.visible = 1 AND current_way_nodes.node_id = ?", node.id ])
-          render :nothing => true, :status => :precondition_failed
+          render :text => "", :status => :precondition_failed
         elsif RelationMember.find(:first, :joins => "INNER JOIN current_relations ON current_relations.id=current_relation_members.id", :conditions => [ "visible = 1 AND member_type='node' and member_id=?", params[:id]])
-          render :nothing => true, :status => :precondition_failed
+          render :text => "", :status => :precondition_failed
         else
           node.user_id = @user.id
           node.visible = 0
@@ -82,7 +82,7 @@ class NodeController < ApplicationController
           render :nothing => true
         end
       else
-        render :nothing => true, :status => :gone
+        render :text => "", :status => :gone
       end
     rescue ActiveRecord::RecordNotFound
       render :nothing => true, :status => :not_found
index b239dd405bbe4e1846b14053719b0b4b3ad9fd1b..3c6ef8ee020a202de70740b0d34b771407e50b3d 100644 (file)
@@ -13,7 +13,7 @@ class RelationController < ApplicationController
 
       if relation
         if !relation.preconditions_ok?
-          render :nothing => true, :status => :precondition_failed
+          render :text => "", :status => :precondition_failed
         else
           relation.user_id = @user.id
           relation.save_with_history!
@@ -35,7 +35,7 @@ class RelationController < ApplicationController
       if relation.visible
         render :text => relation.to_xml.to_s, :content_type => "text/xml"
       else
-        render :nothing => true, :status => :gone
+        render :text => "", :status => :gone
       end
     rescue ActiveRecord::RecordNotFound
       render :nothing => true, :status => :not_found
@@ -53,7 +53,7 @@ class RelationController < ApplicationController
 
         if new_relation and new_relation.id == relation.id
           if !new_relation.preconditions_ok?
-            render :nothing => true, :status => :precondition_failed
+            render :text => "", :status => :precondition_failed
           else
             relation.user_id = @user.id
             relation.tags = new_relation.tags
@@ -67,7 +67,7 @@ class RelationController < ApplicationController
           render :nothing => true, :status => :bad_request
         end
       else
-        render :nothing => true, :status => :gone
+        render :text => "", :status => :gone
       end
     rescue ActiveRecord::RecordNotFound
       render :nothing => true, :status => :not_found
@@ -83,7 +83,7 @@ class RelationController < ApplicationController
 
       if relation.visible
         if RelationMember.find(:first, :joins => "INNER JOIN current_relations ON current_relations.id=current_relation_members.id", :conditions => [ "visible = 1 AND member_type='relation' and member_id=?", params[:id]])
-          render :nothing => true, :status => :precondition_failed
+          render :text => "", :status => :precondition_failed
         else
           relation.user_id = @user.id
           relation.tags = []
@@ -94,7 +94,7 @@ class RelationController < ApplicationController
           render :nothing => true
         end
       else
-        render :nothing => true, :status => :gone
+        render :text => "", :status => :gone
       end
     rescue ActiveRecord::RecordNotFound
       render :nothing => true, :status => :not_found
@@ -166,7 +166,7 @@ class RelationController < ApplicationController
 
       else
 
-        render :nothing => true, :status => :gone
+        render :text => "", :status => :gone
       end
 
     rescue ActiveRecord::RecordNotFound
index 7b7dbe81cad4a2d491102ac1d4cc90a890368594..20e22bb0f8f78b60b06f6d0f67d1363f31512a2c 100644 (file)
@@ -13,7 +13,7 @@ class WayController < ApplicationController
 
       if way
         if !way.preconditions_ok?
-          render :nothing => true, :status => :precondition_failed
+          render :text => "", :status => :precondition_failed
         else
           way.user_id = @user.id
           way.save_with_history!
@@ -35,7 +35,7 @@ class WayController < ApplicationController
       if way.visible
         render :text => way.to_xml.to_s, :content_type => "text/xml"
       else
-        render :nothing => true, :status => :gone
+        render :text => "", :status => :gone
       end
     rescue ActiveRecord::RecordNotFound
       render :nothing => true, :status => :not_found
@@ -51,7 +51,7 @@ class WayController < ApplicationController
 
         if new_way and new_way.id == way.id
           if !new_way.preconditions_ok?
-            render :nothing => true, :status => :precondition_failed
+            render :text => "", :status => :precondition_failed
           else
             way.user_id = @user.id
             way.tags = new_way.tags
@@ -65,7 +65,7 @@ class WayController < ApplicationController
           render :nothing => true, :status => :bad_request
         end
       else
-        render :nothing => true, :status => :gone
+        render :text => "", :status => :gone
       end
     rescue ActiveRecord::RecordNotFound
       render :nothing => true, :status => :not_found
@@ -78,7 +78,7 @@ class WayController < ApplicationController
 
       if way.visible
         if RelationMember.find(:first, :joins => "INNER JOIN current_relations ON current_relations.id=current_relation_members.id", :conditions => [ "visible = 1 AND member_type='way' and member_id=?", params[:id]])
-          render :nothing => true, :status => :precondition_failed
+          render :text => "", :status => :precondition_failed
         else
           way.user_id = @user.id
           way.tags = []
@@ -89,7 +89,7 @@ class WayController < ApplicationController
          render :nothing => true
         end
       else
-        render :nothing => true, :status => :gone
+        render :text => "", :status => :gone
       end
     rescue ActiveRecord::RecordNotFound
       render :nothing => true, :status => :not_found
@@ -115,7 +115,7 @@ class WayController < ApplicationController
 
         render :text => doc.to_s, :content_type => "text/xml"
       else
-        render :nothing => true, :status => :gone
+        render :text => "", :status => :gone
       end
     rescue ActiveRecord::RecordNotFound
       render :nothing => true, :status => :not_found