Code Monkey home page Code Monkey logo

Comments (2)

ben-crowhurst avatar ben-crowhurst commented on July 19, 2024

Please confirm VS2013 is C++11 complete; I believe it lacks certain features.

Visual Studio 2015

from restbed.

ben-crowhurst avatar ben-crowhurst commented on July 19, 2024
  1. git clone --recursive https://github.com/corvusoft/restbed.git
  2. Compile OPENSSL for x64 as the INSTALL.W64 file, Note: use the nt.mk for compiling the static library.
  3. Run the Windows Command prompt, in the console and enter command:
    cmake -DBUILD_SSL=ON -DBUILD_EXAMPLES=NO -G "Visual Studio 12 2013 Win64" -DBUILD_TESTS=NO -DBUILD_SHARED=NO
  4. Open the restbest\restbed.sln by VS2013
  5. In uri.cpp file, change snprintf( hexidecimal, sizeof( hexidecimal ), "%%%02X", character ); to _snprintf( hexidecimal, sizeof( hexidecimal ), "%%%02X", character );.
  6. In the service_impl.cpp file, add "#include ".
  7. In the service_impl.cpp file, change session->close( BAD_REQUEST, { { "Connection", "close" } } to session->close(BAD_REQUEST, std::multimap< string, string >{ { "Connection", "close" } });.
  8. In the settings_impl.cpp, change the SettingsImpl struct to below:
 struct SettingsImpl
 {
  public:
    SettingsImpl( )
    {
        m_status_messages = std::map< int, std::string >
        {
            { 100, "Continue" },
            { 101, "Switching Protocols" },
            { 102, "Processing" },
            { 200, "OK" },
            { 201, "Created" },
            { 202, "Accepted" },
            { 203, "Non-Authoritative Information" },
            { 204, "No Content" },
            { 205, "Reset Content" },
            { 206, "Partial Content" },
            { 207, "Multi-Status" },
            { 208, "Already Reported" },
            { 226, "IM Used" },
            { 300, "Multiple Choices" },
            { 301, "Moved Permanently" },
            { 302, "Found" },
            { 303, "See Other" },
            { 304, "Not Modified" },
            { 305, "Use Proxy" },
            { 306, "Reserved" },
            { 307, "Temporary Redirect" },
            { 308, "Permanent Redirect" },
            { 400, "Bad Request" },
            { 401, "Unauthorized" },
            { 402, "Payment Required" },
            { 403, "Forbidden" },
            { 404, "Not Found" },
            { 405, "Method Not Allowed" },
            { 406, "Not Acceptable" },
            { 407, "Proxy Authentication Required" },
            { 408, "Request Timeout" },
            { 409, "Conflict" },
            { 410, "Gone" },
            { 411, "Length Required" },
            { 412, "Precondition Failed" },
            { 413, "Request Entity Too Large" },
            { 414, "Request URI Too Long" },
            { 415, "Unsupported Media Type" },
            { 416, "Requested Range Not Satisfiable" },
            { 417, "Expectation Failed" },
            { 422, "Unprocessable Entity" },
            { 423, "Locked" },
            { 424, "Failed Dependency" },
            { 426, "Upgrade Required" },
            { 428, "Precondition Required" },
            { 429, "Too Many Requests" },
            { 431, "Request Header Fields Too Large" },
            { 500, "Internal Server Error" },
            { 501, "Not Implemented" },
            { 502, "Bad Gateway" },
            { 503, "Service Unavailable" },
            { 504, "Gateway Timeout" },
            { 505, "HTTP Version Not Supported" },
            { 506, "Variant Also Negotiates" },
            { 507, "Insufficient Storage" },
            { 508, "Loop Detected" },
            { 510, "Not Extended" },
            { 511, "Network Authentication Required" }
        };
    }

    uint16_t m_port = 80;
    std::string m_root = "/";
    unsigned int m_worker_limit = 0;
    unsigned int m_connection_limit = 128;
    std::string m_bind_address = "";
    bool m_case_insensitive_uris = true;
    std::map< std::string, std::string > m_properties { };
    std::shared_ptr< const SSLSettings > m_ssl_settings = nullptr;
    std::multimap< std::string, std::string > m_default_headers { };
    std::chrono::milliseconds m_connection_timeout = std::chrono::milliseconds( 5000 );
    std::map< int, std::string > m_status_messages;
};

9 .In the project settings, add the "BUILD_SSL" and rebuild.

from restbed.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.