code: def error_string(mqtt_errno):
      
      if mqtt_errno == MQTT_ERR_SUCCESS:
          return "No error."
      elif mqtt_errno == MQTT_ERR_NOMEM:
          return "Out of memory."
      elif mqtt_errno == MQTT_ERR_PROTOCOL:
          return "A network protocol error occurred when communicating with the broker."
      elif mqtt_errno == MQTT_ERR_INVAL:
          return "Invalid function arguments provided."
      elif mqtt_errno == MQTT_ERR_NO_CONN:
          return "The client is not currently connected."
      elif mqtt_errno == MQTT_ERR_CONN_REFUSED:
          return "The connection was refused."
      elif mqtt_errno == MQTT_ERR_NOT_FOUND:
          return "Message not found (internal error)."
      elif mqtt_errno == MQTT_ERR_CONN_LOST:
          return "The connection was lost."
      elif mqtt_errno == MQTT_ERR_TLS:
          return "A TLS error occurred."
      elif mqtt_errno == MQTT_ERR_PAYLOAD_SIZE:
          return "Payload too large."
      elif mqtt_errno == MQTT_ERR_NOT_SUPPORTED:
          return "This feature is not supported."
      elif mqtt_errno == MQTT_ERR_AUTH:
          return "Authorisation failed."
      elif mqtt_errno == MQTT_ERR_ACL_DENIED:
          return "Access denied by ACL."
      elif mqtt_errno == MQTT_ERR_UNKNOWN:
          return "Unknown error."
      elif mqtt_errno == MQTT_ERR_ERRNO:
          return "Error defined by errno."
      else:
          return "Unknown error."
docs: Return the error string associated with an mqtt error number.