# Socket MQTT Library for Zephyr

# Copyright (c) 2018 Nordic Semiconductor ASA
# SPDX-License-Identifier: Apache-2.0

config MQTT_LIB
	bool "Socket MQTT Library Support"
	select NET_SOCKETS
	help
	  Enable the Zephyr MQTT Library

if MQTT_LIB

module=MQTT
module-dep=NET_LOG
module-str=Log level for MQTT
module-help=Enables mqtt debug messages.
source "subsys/net/Kconfig.template.log_config.net"

config MQTT_KEEPALIVE
	int "Maximum number of clients Keep alive time for MQTT (in seconds)"
	default 60
	help
	  Keep alive time for MQTT (in seconds). Sending of Ping Requests to
	  keep the connection alive are governed by this value.

config MQTT_LIB_TLS
	bool "TLS support for socket MQTT Library"
	help
	  Enable TLS support for socket MQTT Library

config MQTT_LIB_TLS_USE_ALPN
	bool "ALPN support for MQTT"
	depends on MQTT_LIB_TLS
	help
	  Enable ALPN protocol for socket MQTT Library.

config MQTT_LIB_WEBSOCKET
	bool "Websocket support for socket MQTT Library"
	help
	  Enable Websocket support for socket MQTT Library.

config MQTT_LIB_CUSTOM_TRANSPORT
	bool "Custom transport support for socket MQTT Library"
	help
	  Enable custom transport support for socket MQTT Library.
	  User must provide implementation for transport procedure.

config MQTT_CLEAN_SESSION
	bool "MQTT Clean Session Flag."
	help
	  When a client connects to a MQTT broker using a persistent session,
	  the message broker saves all subscriptions. When the client
	  disconnects, the message broker stores unacknowledged QoS 1 messages
	  and new QoS 1 messages published to topics to which the client is
	  subscribed. When the client reconnects to the persistent session,
	  all subscriptions are reinstated and all stored messages are sent to
	  the client. Setting this flag to 0 allows the client to create a
	  persistent session.

endif # MQTT_LIB
