int _mosquitto_packet_handle(struct mosquitto *mosq) { assert(mosq); switch((mosq->in_packet.command)&0xF0){ case PINGREQ: return _mosquitto_handle_pingreq(mosq); case PINGRESP: return _mosquitto_handle_pingresp(mosq); case PUBACK: return _mosquitto_handle_pubackcomp(mosq, "PUBACK"); case PUBCOMP: return _mosquitto_handle_pubackcomp(mosq, "PUBCOMP"); case PUBLISH: return _mosquitto_handle_publish(mosq); case PUBREC: return _mosquitto_handle_pubrec(mosq); case PUBREL: return _mosquitto_handle_pubrel(NULL, mosq); case CONNACK: return _mosquitto_handle_connack(mosq); case SUBACK: return _mosquitto_handle_suback(mosq); case UNSUBACK: return _mosquitto_handle_unsuback(mosq); default: /* If we don't recognise the command, return an error straight away. */ _mosquitto_log_printf(mosq, MOSQ_LOG_ERR, "Error: Unrecognised command %d\n", (mosq->in_packet.command)&0xF0); return MOSQ_ERR_PROTOCOL; } }
int mqtt3_packet_handle(struct mosquitto_db *db, struct mosquitto *context) { if(!context) return MOSQ_ERR_INVAL; switch((context->in_packet.command)&0xF0){ case PINGREQ: return _mosquitto_handle_pingreq(context); case PINGRESP: return _mosquitto_handle_pingresp(context); case PUBACK: return _mosquitto_handle_pubackcomp(context, "PUBACK"); case PUBCOMP: return _mosquitto_handle_pubackcomp(context, "PUBCOMP"); case PUBLISH: // return mqtt3_handle_publish(db, context); case PUBREC: return _mosquitto_handle_pubrec(context); case PUBREL: return _mosquitto_handle_pubrel(db, context); case CONNECT: // return mqtt3_handle_connect(db, context); case DISCONNECT: return mqtt3_handle_disconnect(db, context); case SUBSCRIBE: // return mqtt3_handle_subscribe(db, context); case UNSUBSCRIBE: return mqtt3_handle_unsubscribe(db, context); case CONNACK: return mqtt3_handle_connack(db, context); case SUBACK: return _mosquitto_handle_suback(context); case UNSUBACK: return _mosquitto_handle_unsuback(context); default: /* If we don't recognise the command, return an error straight away. */ return MOSQ_ERR_PROTOCOL; } }