# 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
