1 /******************************************************************************* 2 * Copyright (c) 2017, 2020 IBM Corp. and others 3 * 4 * All rights reserved. This program and the accompanying materials 5 * are made available under the terms of the Eclipse Public License v2.0 6 * and Eclipse Distribution License v1.0 which accompany this distribution. 7 * 8 * The Eclipse Public License is available at 9 * https://www.eclipse.org/legal/epl-2.0/ 10 * and the Eclipse Distribution License is available at 11 * http://www.eclipse.org/org/documents/edl-v10.php. 12 * 13 * Contributors: 14 * Ian Craggs - initial API and implementation and/or initial documentation 15 *******************************************************************************/ 16 17 #if !defined(MQTTREASONCODES_H) 18 #define MQTTREASONCODES_H 19 20 #include "MQTTExportDeclarations.h" 21 22 /** The MQTT V5 one byte reason code */ 23 enum MQTTReasonCodes { 24 MQTTREASONCODE_SUCCESS = 0, 25 MQTTREASONCODE_NORMAL_DISCONNECTION = 0, 26 MQTTREASONCODE_GRANTED_QOS_0 = 0, 27 MQTTREASONCODE_GRANTED_QOS_1 = 1, 28 MQTTREASONCODE_GRANTED_QOS_2 = 2, 29 MQTTREASONCODE_DISCONNECT_WITH_WILL_MESSAGE = 4, 30 MQTTREASONCODE_NO_MATCHING_SUBSCRIBERS = 16, 31 MQTTREASONCODE_NO_SUBSCRIPTION_FOUND = 17, 32 MQTTREASONCODE_CONTINUE_AUTHENTICATION = 24, 33 MQTTREASONCODE_RE_AUTHENTICATE = 25, 34 MQTTREASONCODE_UNSPECIFIED_ERROR = 128, 35 MQTTREASONCODE_MALFORMED_PACKET = 129, 36 MQTTREASONCODE_PROTOCOL_ERROR = 130, 37 MQTTREASONCODE_IMPLEMENTATION_SPECIFIC_ERROR = 131, 38 MQTTREASONCODE_UNSUPPORTED_PROTOCOL_VERSION = 132, 39 MQTTREASONCODE_CLIENT_IDENTIFIER_NOT_VALID = 133, 40 MQTTREASONCODE_BAD_USER_NAME_OR_PASSWORD = 134, 41 MQTTREASONCODE_NOT_AUTHORIZED = 135, 42 MQTTREASONCODE_SERVER_UNAVAILABLE = 136, 43 MQTTREASONCODE_SERVER_BUSY = 137, 44 MQTTREASONCODE_BANNED = 138, 45 MQTTREASONCODE_SERVER_SHUTTING_DOWN = 139, 46 MQTTREASONCODE_BAD_AUTHENTICATION_METHOD = 140, 47 MQTTREASONCODE_KEEP_ALIVE_TIMEOUT = 141, 48 MQTTREASONCODE_SESSION_TAKEN_OVER = 142, 49 MQTTREASONCODE_TOPIC_FILTER_INVALID = 143, 50 MQTTREASONCODE_TOPIC_NAME_INVALID = 144, 51 MQTTREASONCODE_PACKET_IDENTIFIER_IN_USE = 145, 52 MQTTREASONCODE_PACKET_IDENTIFIER_NOT_FOUND = 146, 53 MQTTREASONCODE_RECEIVE_MAXIMUM_EXCEEDED = 147, 54 MQTTREASONCODE_TOPIC_ALIAS_INVALID = 148, 55 MQTTREASONCODE_PACKET_TOO_LARGE = 149, 56 MQTTREASONCODE_MESSAGE_RATE_TOO_HIGH = 150, 57 MQTTREASONCODE_QUOTA_EXCEEDED = 151, 58 MQTTREASONCODE_ADMINISTRATIVE_ACTION = 152, 59 MQTTREASONCODE_PAYLOAD_FORMAT_INVALID = 153, 60 MQTTREASONCODE_RETAIN_NOT_SUPPORTED = 154, 61 MQTTREASONCODE_QOS_NOT_SUPPORTED = 155, 62 MQTTREASONCODE_USE_ANOTHER_SERVER = 156, 63 MQTTREASONCODE_SERVER_MOVED = 157, 64 MQTTREASONCODE_SHARED_SUBSCRIPTIONS_NOT_SUPPORTED = 158, 65 MQTTREASONCODE_CONNECTION_RATE_EXCEEDED = 159, 66 MQTTREASONCODE_MAXIMUM_CONNECT_TIME = 160, 67 MQTTREASONCODE_SUBSCRIPTION_IDENTIFIERS_NOT_SUPPORTED = 161, 68 MQTTREASONCODE_WILDCARD_SUBSCRIPTIONS_NOT_SUPPORTED = 162 69 }; 70 71 /** 72 * Returns a printable string description of an MQTT V5 reason code. 73 * @param value an MQTT V5 reason code. 74 * @return the printable string description of the input reason code. 75 * NULL if the code was not found. 76 */ 77 LIBMQTT_API const char* MQTTReasonCode_toString(enum MQTTReasonCodes value); 78 79 #endif 80