# 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
	select NET_SOCKETS_POSIX_NAMES
	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_WEBSOCKET
	bool "Websocket support for socket MQTT Library"
	help
	  Enable Websocket support for socket MQTT Library.

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
