Sha256: 8e8bbef4bc466750dfc1daccca188fc3e6977767c52d3614553178ea3bb02021

Contents?: true

Size: 1.34 KB

Versions: 15

Compression:

Stored size: 1.34 KB

Contents

//
//  HTTP.cc
//  snowcrash
//
//  Created by Zdenek Nemec on 7/11/13.
//  Copyright (c) 2013 Apiary Inc. All rights reserved.
//

#include "HTTP.h"

using namespace snowcrash;

const std::string HTTPHeaderName::Accept = "Accept";
const std::string HTTPHeaderName::ContentLength = "Content-Length";
const std::string HTTPHeaderName::ContentType = "Content-Type";
const std::string HTTPHeaderName::TransferEncoding = "Transfer-Encoding";

const std::string HTTPHeaderName::SetCookie = "Set-Cookie";
const std::string HTTPHeaderName::Link = "Link";

const std::string HTTPMethodName::Head = "HEAD";
const std::string HTTPMethodName::Connect = "CONNECT";

StatusCodeTraits snowcrash::GetStatusCodeTrait(HTTPStatusCode code)
{
    StatusCodeTraits traits;
    traits.code = code;

    // Following status codes MUST NOT contain response body
    if (code == 204 || code == 304 || code/100 == 1) {
        traits.allowBody = false;
    }

    return traits;
}

HTTPMethodTraits snowcrash::GetMethodTrait(HTTPMethod method)
{
    HTTPMethodTraits traits;
    traits.method = method;

    // Following HTTP methods MUST NOT contain response body
    // FIXME: When refactoring traits don't forget that 'CONNECT' has no body only when 1xx-2xx
    if (method == HTTPMethodName::Head || method == HTTPMethodName::Connect) {
        traits.allowBody = false;
    }

    return traits;
}

Version data entries

15 entries across 15 versions & 2 rubygems

Version Path
redsnow-0.4.4 ext/drafter/ext/snowcrash/src/HTTP.cc
lounge_lizard-0.1.4 ext/drafter/ext/snowcrash/src/HTTP.cc
lounge_lizard-0.1.3 ext/drafter/ext/snowcrash/src/HTTP.cc
lounge_lizard-0.1.2 ext/drafter/ext/snowcrash/src/HTTP.cc
lounge_lizard-0.1.1 ext/drafter/ext/snowcrash/src/HTTP.cc
lounge_lizard-0.1.0 ext/drafter/ext/snowcrash/src/HTTP.cc
redsnow-0.4.3 ext/drafter/ext/snowcrash/src/HTTP.cc
redsnow-0.4.1 ext/drafter/ext/snowcrash/src/HTTP.cc
redsnow-0.4.0 ext/drafter/ext/snowcrash/src/HTTP.cc
redsnow-0.3.7 ext/snowcrash/src/HTTP.cc
redsnow-0.3.4 ext/snowcrash/src/HTTP.cc
redsnow-0.3.3 ext/snowcrash/src/HTTP.cc
redsnow-0.3.2 ext/snowcrash/src/HTTP.cc
redsnow-0.3.1 ext/snowcrash/src/HTTP.cc
redsnow-0.3.0 ext/snowcrash/src/HTTP.cc