#ifndef BAREV_INTERNAL_H #define BAREV_INTERNAL_H #include "barev.h" #include "barev_avatar.h" #include #define BAREV_MAX_NICK 63 #define BAREV_MAX_IPV6 127 #define BAREV_MAX_JID 255 #define BAREV_MAX_STATUS_MSG 255 #define BAREV_RECV_BUF 8192 #define BAREV_MAX_PENDING_OFFERS 32 #define BAREV_PING_INTERVAL 30 #define BAREV_PING_TIMEOUT 10 #define BAREV_MAX_PING_FAILURES 3 typedef struct barev_buddy { char jid[BAREV_MAX_JID + 1]; char nick[BAREV_MAX_NICK + 1]; char ipv6[BAREV_MAX_IPV6 + 1]; unsigned short port; int status; char status_msg[BAREV_MAX_STATUS_MSG + 1]; int sock; int we_initiated; int stream_sent; int stream_recv; int conn_state; int ping_failures; time_t last_activity; time_t last_ping_sent; unsigned int ping_seq; char last_ping_id[32]; char recv_buf[BAREV_RECV_BUF]; size_t recv_len; } barev_buddy_impl_t; typedef struct barev_ft_offer { int used; int accepted; int outgoing; char sid[128]; char iq_id[128]; size_t buddy_index; char file_name[256]; char save_path[512]; long file_size; } barev_ft_offer_t; struct barev_client { char nick[BAREV_MAX_NICK + 1]; char my_ipv6[BAREV_MAX_IPV6 + 1]; unsigned short port; char my_jid[BAREV_MAX_JID + 1]; int running; int listen_fd; barev_avatar_mgr_t avatar_mgr; unsigned int ft_seq; barev_ft_offer_t pending_offers[BAREV_MAX_PENDING_OFFERS]; barev_buddy_impl_t *buddies; size_t buddy_count; size_t buddy_cap; void *userdata; barev_log_cb on_log; barev_typing_cb on_typing; barev_buddy_status_cb on_buddy_status; barev_message_cb on_message; barev_conn_state_cb on_conn_state; barev_ft_offer_cb on_ft_offer; barev_ft_progress_cb on_ft_progress; barev_ft_complete_cb on_ft_complete; barev_ft_error_cb on_ft_error; }; #endif