return 425 in addr if early-data header is set

This commit is contained in:
Kazuho Oku 2024-09-04 15:52:51 +09:00
parent c54c63285b
commit 3855168876

View File

@ -41,6 +41,9 @@ module H2O
class ACLHandler
class TooEarlyError < StandardError
end
class ConditionalHandler
def initialize(handler, cond)
@handler = handler
@ -63,9 +66,13 @@ module H2O
end
def call(env)
@acl.each {|ac|
return ac.call(env) if ac.satisfy?(env)
}
begin
@acl.each {|ac|
return ac.call(env) if ac.satisfy?(env)
}
rescue TooEarlyError => e
return [425, {}, []]
end
return [399, {}, []]
end
@ -96,6 +103,7 @@ module H2O
end
def addr(forwarded=true)
raise TooEarlyError if @env['HTTP_EARLY_DATA']
addr = @env['REMOTE_ADDR']
if forwarded && (xff = @env['HTTP_X_FORWARDED_FOR'])
xaddr = xff.split(",")[0]