summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDan Goodliffe <dan@randomdan.homeip.net>2023-04-06 19:48:37 +0100
committerDan Goodliffe <dan@randomdan.homeip.net>2023-04-06 19:48:37 +0100
commit07805e249d17a59c7c056cfb886b9b3e39870d71 (patch)
tree61f3eb8117da3cc99e33ef45a6e75e09cead8c85
parentFix writing of XML document after XSL transform (diff)
downloadicespider-07805e249d17a59c7c056cfb886b9b3e39870d71.tar.bz2
icespider-07805e249d17a59c7c056cfb886b9b3e39870d71.tar.xz
icespider-07805e249d17a59c7c056cfb886b9b3e39870d71.zip
If Accept header specifies no preference first, shortcut to default serializericespider-0.8.3
-rw-r--r--icespider/core/ihttpRequest.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/icespider/core/ihttpRequest.cpp b/icespider/core/ihttpRequest.cpp
index 97cdcd7..c575c82 100644
--- a/icespider/core/ihttpRequest.cpp
+++ b/icespider/core/ihttpRequest.cpp
@@ -114,6 +114,12 @@ namespace IceSpider {
if (acceptHdr) {
auto accepts = parseAccept(*acceptHdr);
auto & strm = getOutputStream();
+ if (accepts.empty()) {
+ throw Http400_BadRequest();
+ }
+ if (!accepts.front().group && !accepts.front().type) {
+ return handler->defaultSerializer(strm);
+ }
for (auto & a : accepts) {
ContentTypeSerializer serializer = handler->getSerializer(a, strm);
if (serializer.second) {