#ifndef _CTRL_PACKET_H #define _CTRL_PACKET_H #ifdef __cpluscplus extern "C" { #endif #include enum session_state { SESSION_STATE_OPENING = 1, SESSION_STATE_CLOSING = 2, SESSION_STATE_ACTIVE = 3, SESSION_STATE_RESETALL = 4, }; struct ctrl_pkt_parser { char tsync[4]; uint64_t session_id; enum session_state state; char method[32]; int policy_ids[32]; int policy_id_num; }; const char *session_state_to_string(enum session_state state); void ctrl_packet_parser_init(struct ctrl_pkt_parser *handler); // return 0 : success // return -1 : error int ctrl_packet_parser_parse(struct ctrl_pkt_parser *handler, const char *data, size_t length); void ctrl_packet_parser_dump(struct ctrl_pkt_parser *handler); #ifdef __cpluscplus } #endif #endif