menu "HTTP Server"


    config HTTPD_MAX_REQ_HDR_LEN
        int "HTTP Request Header Length limit"
        default 1024
        range 128 65536
        help
            This sets the default limit for the HTTP request header length. The limit can be
            configured at run time by setting max_req_hdr_len member of httpd_config_t structure.
            The memory allocated will depend on the actual header length. Hence keeping a sufficiently
            large max header length is recommended.


    config HTTPD_MAX_URI_LEN
        int "Max HTTP URI Length"
        default 512
        help
            This sets the maximum supported size of HTTP request URI to be processed by the server

    config HTTPD_ERR_RESP_NO_DELAY
        bool "Use TCP_NODELAY socket option when sending HTTP error responses"
        default y
        help
            Using TCP_NODEALY socket option ensures that HTTP error response reaches the client before the
            underlying socket is closed. Please note that turning this off may cause multiple test failures

    config HTTPD_PURGE_BUF_LEN
        int "Length of temporary buffer for purging data"
        default 32
        help
            This sets the size of the temporary buffer used to receive and discard any remaining data that is
            received from the HTTP client in the request, but not processed as part of the server HTTP request
            handler.

            If the remaining data is larger than the available buffer size, the buffer will be filled in multiple
            iterations. The buffer should be small enough to fit on the stack, but large enough to avoid excessive
            iterations.

    config HTTPD_LOG_PURGE_DATA
        bool "Log purged content data at Debug level"
        default n
        help
            Enabling this will log discarded binary HTTP request data at Debug level.
            For large content data this may not be desirable as it will clutter the log.

    config HTTPD_WS_SUPPORT
        bool "WebSocket server support"
        default n
        help
            This sets the WebSocket server support.

    config HTTPD_QUEUE_WORK_BLOCKING
        bool "httpd_queue_work as blocking API"
        help
            This makes httpd_queue_work() API to wait until a message space is available on UDP control socket.
            It internally uses a counting semaphore with count set to `LWIP_UDP_RECVMBOX_SIZE` to achieve this.
            This config will slightly change API behavior to block until message gets delivered on control socket.

    config HTTPD_SERVER_EVENT_POST_TIMEOUT
        int "Time in millisecond to wait for posting event"
        default 2000
        help
            This config option helps in setting the time in millisecond to wait for event to be posted to the
            system default event loop. Set it to -1 if you need to set timeout to portMAX_DELAY.

    config HTTPD_WS_PRE_HANDSHAKE_CB_SUPPORT
        bool "WebSocket pre-handshake callback support"
        default n
        depends on HTTPD_WS_SUPPORT
        help
            Enable this option to use WebSocket pre-handshake callback. This will allow the server to register
            a callback function that will be called before the WebSocket handshake is processed i.e. before switching
            to the WebSocket protocol.
endmenu
