# Copyright (c) 2016 Intel Corporation
#
# SPDX-License-Identifier: Apache-2.0
#

config HTTP
	bool
	prompt "HTTP support"
	default n
	help
	This option enables the HTTP library

config HTTP_SERVER
	bool
	prompt "HTTP server support"
	default n
	select HTTP
	help
	Enables HTTP server routines

config HTTP_HEADER_FIELD_ITEMS
	int
	prompt "HTTP header field max number of items"
	depends on HTTP_SERVER
	default 8
	help
	Number of HTTP header field items that an HTTP server
	application will handle

config HTTP_CLIENT
	bool
	prompt "HTTP client support"
	default n
	select HTTP
	help
	Enables HTTP client routines

config HTTP_PARSER
	bool
	prompt "HTTP Parser support"
	default n
	select HTTP
	help
	This option enables the http_parser library from nodejs.
	This parser requires some string-related routines commonly
	provided by a libc implementation.

config HTTP_PARSER_STRICT
	bool
	prompt "HTTP strict parsing"
	default n
	depends on HTTP_PARSER
	help
	This option enables the strict parsing option
