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

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

if HTTP

config HTTP_APP
	bool "Use new HTTP API built on top of net-app API"
	default y

if HTTP_APP

config HTTP_SERVER
	bool "HTTP server support"
	default n
	select HTTP_PARSER
	select HTTP_PARSER_URL
	select NET_APP_SERVER
	help
	Enables HTTP server routines.

config HTTP_CLIENT
	bool "HTTP client support"
	default n
	select HTTP_PARSER
	select HTTP_PARSER_URL
	select NET_APP_CLIENT
	help
	Enables HTTP client routines.

config HTTP_HEADERS
	int "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 HTTPS
	bool "HTTPS support"
	default n
	select NET_APP_TLS
	help
	Enables HTTPS support.

config HTTP_SERVER_CONNECTIONS
	int "Max number of concurrent HTTP server connections"
	default NET_APP_SERVER_NUM_CONN
	depends on HTTP_SERVER
	help
	This value determines how many simultaneous HTTP connections the
	HTTP server can serve. Note that only 1 HTTPS connection can be
	served at a time, so set CONFIG_NET_APP_SERVER_NUM_CONN and
	CONFIG_NET_TCP_BACKLOG_SIZE to 1 in that case.

endif # HTTP_APP

if !HTTP_APP

config HTTP_SERVER
	bool "HTTP server support"
	default n
	select HTTP_PARSER
	select HTTP_PARSER_URL
	help
	Enables HTTP server routines.

config HTTP_CLIENT
	bool "HTTP client support"
	default n
	select HTTP_PARSER
	select HTTP_PARSER_URL
	help
	Enables HTTP client routines.

config HTTP_HEADER_FIELD_ITEMS
	int "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 HTTPS
	bool "HTTPS support"
	default n
	select MBEDTLS
	help
	Enables HTTPS support.

config HTTPS_STACK_SIZE
	int "HTTPS thread stack size"
	default 8192
	depends on HTTPS
	help
	HTTPS thread stack size. The mbedtls routines will use this stack
	thus it is by default very large.

config HTTP_SERVER_CONNECTIONS
	int "Max number of concurrent HTTP server connections"
	default NET_MAX_CONTEXTS
	depends on HTTP_SERVER
	help
	This value determines how many simultaneous HTTP connections the
	HTTP server can serve. Note that only 1 HTTPS connection can be
	served at a time.

endif # !HTTP_APP

config HTTP_SERVER_NUM_URLS
	int "Max number of URLs that the HTTP server will handle"
	default 8
	depends on HTTP_SERVER
	help
	This value determines how many URLs this HTTP server can handle.

config HTTP_CLIENT_NETWORK_TIMEOUT
	int "Default network activity timeout in seconds"
	default 20
	depends on HTTP_CLIENT
	help
	Default network activity timeout in seconds.  This setting is used
	for TCP connection timeout.

config  NET_DEBUG_HTTP
	bool "Debug HTTP"
	default n
	depends on HTTP && NET_LOG
	help
	Enables HTTP output debug messages

config  NET_DEBUG_HTTP_CONN
	bool "Debug HTTP connections"
	default n
	depends on HTTP && NET_LOG
	help
	Enables HTTP connection tracking.

endif # HTTP

config HTTP_PARSER
	bool "HTTP Parser support"
	default n
	select HTTP_PARSER_URL
	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_URL
	bool "HTTP Parser for URL support"
	default n
	help
	This option enables the URI parser library based on source from nodejs.
	This parser requires some string-related routines commonly
	provided by a libc implementation.

config HTTP_PARSER_STRICT
	bool "HTTP strict parsing"
	default n
	depends on (HTTP_PARSER || HTTP_PARSER_URL)
	help
	This option enables the strict parsing option
