# Kconfig - BSD Sockets compatible API

#
# Copyright (c) 2017 Linaro Limited.
#
# SPDX-License-Identifier: Apache-2.0
#

menuconfig NET_SOCKETS
	bool "BSD Sockets compatible API"
	default n
	help
	Provide BSD Sockets like API on top of native Zephyr networking API.

if NET_SOCKETS

config NET_SOCKETS_POSIX_NAMES
	bool "Standard POSIX names for Sockets API"
	default n
	help
	By default, Sockets API function are prefixed with ``zsock_`` to avoid
	namespacing issues. If this option is enabled, they will be provided
	with standard POSIX names like socket(), recv(), and close(), to help
	with porting existing code. Note that close() may require a special
	attention, as in POSIX it closes any file descriptor, while with this
	option enabled, it will still apply only to sockets.

config NET_SOCKETS_POLL_MAX
	int
	prompt "Max number of supported poll() entries"
	default 3
	help
	Maximum number of entries supported for poll() call.

config NET_DEBUG_SOCKETS
	bool "Debug BSD Sockets compatible API calls"
	default n
	default y if NET_LOG_GLOBAL
	help
	Enables logging for sockets code. (Logging level is defined by
	SYS_LOG_NET_LEVEL setting).

endif # NET_SOCKETS
