--- parser3/src/include/pa_request_info.h 2016/11/24 22:18:59 1.10 +++ parser3/src/include/pa_request_info.h 2017/02/07 22:00:36 1.14 @@ -1,14 +1,14 @@ /** @file Parser: request info class decl. - Copyright (c) 2001-2015 Art. Lebedev Studio (http://www.artlebedev.com) + Copyright (c) 2001-2017 Art. Lebedev Studio (http://www.artlebedev.com) Author: Alexandr Petrosian (http://paf.design.ru) */ #ifndef PA_REQUEST_INFO_H #define PA_REQUEST_INFO_H -#define IDENT_PA_REQUEST_INFO_H "$Id: pa_request_info.h,v 1.10 2016/11/24 22:18:59 moko Exp $" +#define IDENT_PA_REQUEST_INFO_H "$Id: pa_request_info.h,v 1.14 2017/02/07 22:00:36 moko Exp $" /// some information from web server class Request_info { @@ -31,18 +31,17 @@ public: const char* post_data; size_t post_size; //@} - // misha@ Probably it's a good idea to move this method into targets, but de facto the only POST and PUT can have the body and all targets should support it + // see feature #1116 for details bool can_have_body(){ return method - && ( - strcasecmp(method, "POST") == 0 - || strcasecmp(method, "PUT") == 0 - ); + && strcasecmp(method, "GET") != 0 + && strcasecmp(method, "HEAD") != 0 + && strcasecmp(method, "TRACE") != 0; } - static const char* remove_absolute_uri(const char *auri){ - if(*auri == '/') + static const char* strip_absolute_uri(const char *auri){ + if(!auri || *auri == '/') return auri; // extractring https?://site.name prefix allowed by http://www.w3.org/Protocols/rfc2616/rfc2616-sec5.html#sec5.1.2