#include <stdio.h>
#include <stdlib.h>
#include <sys/stat.h>
#include <sys/select.h>
#include <sys/time.h>
#include <sys/types.h>
#include <unistd.h>

#include "mqtt_session.h"
#include "dy_utils/dy_common.h"
#include "dy_utils/cJSON.h"
#include "common.h"


int external_mqtt_handle_recv_msg(void *obj, mqtt_message_t *mqtt_msg)
{
    lanzhuo_var_t *var = (lanzhuo_var_t *)obj;
    char *topic = mqtt_msg->topic;
    char method[16] = {0};
    char dir[16] = {0};

    sscanf(mqtt_msg->topic, "/%*[^/]/%*[^/]/%*[^/]/%[^/]/%s", method, dir);

    if (strcmp(dir, "push") == 0)
    {
        // push：云端请求
        if (strcmp(method, "metatag") == 0)
        {
            char topic[TOPIC_MAX_LEN] = {0};

            snprintf(topic, TOPIC_MAX_LEN, "/%s/%s/%s/%s/%s", var->token, var->ep_id, var->ep_name, "metatag", "push_reply");
            mqtt_session_publish_with_flag(var->session_ext, topic, var->meta_tag_buf, var->meta_tag_buf_len, 1, false);
        }
    }


out:
    return 0;
}
