Add body size limit

This commit is contained in:
Frédéric Guillot 2018-01-02 18:30:26 -08:00
parent 5558c94a57
commit aae3d75490

View file

@ -22,6 +22,7 @@ import (
// Note: Some websites have a user agent filter.
const userAgent = "Mozilla/5.0 (like Gecko, like Safari, like Chrome) - Miniflux <https://miniflux.net/>"
const requestTimeout = 300
const maxBodySize = 1024 * 1024 * 15
// Client is a HTTP Client :)
type Client struct {
@ -80,6 +81,10 @@ func (c *Client) executeRequest(request *http.Request) (*Response, error) {
return nil, err
}
if resp.ContentLength > maxBodySize {
return nil, fmt.Errorf("client: response too large (%d bytes)", resp.ContentLength)
}
response := &Response{
Body: resp.Body,
StatusCode: resp.StatusCode,
@ -89,10 +94,11 @@ func (c *Client) executeRequest(request *http.Request) (*Response, error) {
ContentType: resp.Header.Get("Content-Type"),
}
logger.Debug("[HttpClient:%s] OriginalURL=%s, StatusCode=%d, ETag=%s, LastModified=%s, EffectiveURL=%s",
logger.Debug("[HttpClient:%s] OriginalURL=%s, StatusCode=%d, ContentLength=%d, ETag=%s, LastModified=%s, EffectiveURL=%s",
request.Method,
c.url,
response.StatusCode,
resp.ContentLength,
response.ETag,
response.LastModified,
response.EffectiveURL,