agrafix / Spock

Another Haskell web framework for rapid development
https://www.spock.li
678 stars 56 forks source link

Limiting the request size #113

Open dunnl opened 7 years ago

dunnl commented 7 years ago

requestSizeCheck modifies a request to embed size-checking inside the responseBody instead of performing the check immediately. (And I presume this is on purpose.)

My concern is the error handling suggests that the exception could be thrown at this line in handleRequest' but I don't think makeActionEnvironment forces the evaluation of the request body either. If it does though, then getErrorHandler config status413 is fed into respStateToResponse, which throw an error.

Thoughts?

dunnl commented 7 years ago

(Changed the title because initially I thought requestSizeCheck was the problem)

agrafix commented 7 years ago

The size check will be executed when the body is actually consumed and that's when the exception will trigger. It seems that you are correct that the exception will never be thrown at the line you mentioned. This was the case before as we already parsed the body there strictly before actually needing it. I guess one could remove the handler there.