Render an empty text string instead of nothing (which actually generate a

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.
This commit is contained in:
Tom Hughes 2007-10-17 23:22:51 +00:00
parent f82f362cea
commit 0fd29dc003
3 changed files with 19 additions and 19 deletions

View 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

View 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

View 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