#define ERR_INVALID_PART_ORDER 2008
#define ERR_NO_SUCH_UPLOAD 2009
#define ERR_REQUEST_TIMEOUT 2010
+#define ERR_LENGTH_REQUIRED 2011
#define ERR_USER_SUSPENDED 2100
{ ERR_INVALID_PART, 400, "InvalidPart" },
{ ERR_INVALID_PART_ORDER, 400, "InvalidPartOrder" },
{ ERR_REQUEST_TIMEOUT, 400, "RequestTimeout" },
+ { ERR_LENGTH_REQUIRED, 411, "MissingContentLength" },
{ EACCES, 403, "AccessDenied" },
{ EPERM, 403, "AccessDenied" },
{ ERR_USER_SUSPENDED, 403, "UserSuspended" },
switch (s->op) {
case OP_PUT:
- if (!s->length || *s->length == '\0')
+ if (!s->length)
+ ret = -ERR_LENGTH_REQUIRED;
+ else if (*s->length == '\0')
ret = -EINVAL;
- s->content_length = atoll(s->length);
+ else
+ s->content_length = atoll(s->length);
break;
default:
break;