+- zlib/deflate has a bug with windowsbits == 8, so we silently upgrade it to 9/ (fix autobahn test 13.X which uses 8 for the windows size)
		
			
				
	
	
		
			48 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			48 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
/*
 | 
						|
 *  IXWebSocketPerMessageDeflateOptions.h
 | 
						|
 *  Author: Benjamin Sergeant
 | 
						|
 *  Copyright (c) 2018 Machine Zone, Inc. All rights reserved.
 | 
						|
 */
 | 
						|
 | 
						|
#pragma once
 | 
						|
 | 
						|
#include <string>
 | 
						|
 | 
						|
namespace ix
 | 
						|
{
 | 
						|
    class WebSocketPerMessageDeflateOptions
 | 
						|
    {
 | 
						|
    public:
 | 
						|
        WebSocketPerMessageDeflateOptions(
 | 
						|
            bool enabled = false,
 | 
						|
            bool clientNoContextTakeover = false,
 | 
						|
            bool serverNoContextTakeover = false,
 | 
						|
            uint8_t clientMaxWindowBits = kDefaultClientMaxWindowBits,
 | 
						|
            uint8_t serverMaxWindowBits = kDefaultServerMaxWindowBits);
 | 
						|
 | 
						|
        WebSocketPerMessageDeflateOptions(std::string extension);
 | 
						|
 | 
						|
        std::string generateHeader();
 | 
						|
        bool enabled() const;
 | 
						|
        bool getClientNoContextTakeover() const;
 | 
						|
        bool getServerNoContextTakeover() const;
 | 
						|
        uint8_t getServerMaxWindowBits() const;
 | 
						|
        uint8_t getClientMaxWindowBits() const;
 | 
						|
 | 
						|
        static bool startsWith(const std::string& str, const std::string& start);
 | 
						|
        static std::string removeSpaces(const std::string& str);
 | 
						|
 | 
						|
        static uint8_t const kDefaultClientMaxWindowBits;
 | 
						|
        static uint8_t const kDefaultServerMaxWindowBits;
 | 
						|
 | 
						|
    private:
 | 
						|
        bool _enabled;
 | 
						|
        bool _clientNoContextTakeover;
 | 
						|
        bool _serverNoContextTakeover;
 | 
						|
        int _clientMaxWindowBits;
 | 
						|
        int _serverMaxWindowBits;
 | 
						|
 | 
						|
        void sanitizeClientMaxWindowBits();
 | 
						|
    };
 | 
						|
} // namespace ix
 |