diff --git a/toxcore/Messenger.c b/toxcore/Messenger.c index b07b6012..37a7a252 100644 --- a/toxcore/Messenger.c +++ b/toxcore/Messenger.c @@ -959,7 +959,7 @@ static int get_chat_num(Messenger *m, Group_Chat *chat) return -1; } -static void group_message_function(Group_Chat *chat, int peer_number, uint8_t *message, uint16_t length, void *userdata) +static void group_message_function(Group_Chat *chat, int peer_number, const uint8_t *message, uint16_t length, void *userdata) { Messenger *m = userdata; int i = get_chat_num(m, chat); @@ -975,7 +975,7 @@ static void group_message_function(Group_Chat *chat, int peer_number, uint8_t *m (*m->group_message)(m, i, peer_number, message_terminated, length, m->group_message_userdata); } -static void group_action_function(Group_Chat *chat, int peer_number, uint8_t *action, uint16_t length, void *userdata) +static void group_action_function(Group_Chat *chat, int peer_number, const uint8_t *action, uint16_t length, void *userdata) { Messenger *m = userdata; int i = get_chat_num(m, chat); diff --git a/toxcore/group_chats.c b/toxcore/group_chats.c index 85928436..882b3f42 100644 --- a/toxcore/group_chats.c +++ b/toxcore/group_chats.c @@ -65,7 +65,7 @@ typedef struct { * TODO: make this more efficient. */ -static int peer_in_chat(Group_Chat *chat, uint8_t *client_id) +static int peer_in_chat(const Group_Chat *chat, const uint8_t *client_id) { uint32_t i; @@ -82,7 +82,7 @@ static int peer_in_chat(Group_Chat *chat, uint8_t *client_id) * return 1 if client_id1 is closer. * return 2 if client_id2 is closer. */ -static int id_closest_groupchats(uint8_t *id, uint8_t *id1, uint8_t *id2) +static int id_closest_groupchats(const uint8_t *id, const uint8_t *id1, const uint8_t *id2) { size_t i; uint8_t distance1, distance2; @@ -110,7 +110,7 @@ static int id_closest_groupchats(uint8_t *id, uint8_t *id1, uint8_t *id2) * Return -1 if the peer is in the closelist. */ -static int peer_okping(Group_Chat *chat, uint8_t *client_id) +static int peer_okping(const Group_Chat *chat, const uint8_t *client_id) { uint32_t i, j = 0; @@ -143,7 +143,7 @@ static int peer_okping(Group_Chat *chat, uint8_t *client_id) * Return 0 if success. * Return -1 if peer was not put in list/updated. */ -static int add_closepeer(Group_Chat *chat, uint8_t *client_id, IP_Port ip_port) +static int add_closepeer(Group_Chat *chat, const uint8_t *client_id, IP_Port ip_port) { uint32_t i; @@ -175,7 +175,7 @@ static int add_closepeer(Group_Chat *chat, uint8_t *client_id, IP_Port ip_port) return -1; } -static int send_groupchatpacket(Group_Chat *chat, IP_Port ip_port, uint8_t *public_key, uint8_t *data, uint32_t length, +static int send_groupchatpacket(const Group_Chat *chat, IP_Port ip_port, const uint8_t *public_key, const uint8_t *data, uint32_t length, uint8_t request_id) { if (id_equal(chat->self_public_key, public_key)) @@ -200,7 +200,7 @@ static int send_groupchatpacket(Group_Chat *chat, IP_Port ip_port, uint8_t *publ * * return the number of peers the packet was sent to. */ -static uint8_t sendto_allpeers(Group_Chat *chat, uint8_t *data, uint16_t length, uint8_t request_id) +static uint8_t sendto_allpeers(const Group_Chat *chat, const uint8_t *data, uint16_t length, uint8_t request_id) { uint16_t sent = 0; uint32_t i; @@ -224,7 +224,7 @@ static uint8_t sendto_allpeers(Group_Chat *chat, uint8_t *data, uint16_t length, * return peernum if success or peer already in chat. * return -1 if error. */ -static int addpeer(Group_Chat *chat, uint8_t *client_id) +static int addpeer(Group_Chat *chat, const uint8_t *client_id) { int peernum = peer_in_chat(chat, client_id); @@ -319,7 +319,7 @@ static int delpeer(Group_Chat *chat, int peernum) * return length of name if success * return -1 if failure */ -int group_peername(Group_Chat *chat, int peernum, uint8_t *name) +int group_peername(const Group_Chat *chat, int peernum, uint8_t *name) { if ((uint32_t)peernum >= chat->numpeers) return -1; @@ -334,7 +334,7 @@ int group_peername(Group_Chat *chat, int peernum, uint8_t *name) return chat->group[peernum].nick_len; } -static void setnick(Group_Chat *chat, int peernum, uint8_t *contents, uint16_t contents_len) +static void setnick(Group_Chat *chat, int peernum, const uint8_t *contents, uint16_t contents_len) { if (contents_len > MAX_NICK_BYTES || contents_len == 0) return; @@ -355,7 +355,7 @@ static void setnick(Group_Chat *chat, int peernum, uint8_t *contents, uint16_t c /* TODO: move this to global section */ #define GROUP_PING_TIMEOUT 5 -static int send_getnodes(Group_Chat *chat, IP_Port ip_port, int peernum) +static int send_getnodes(const Group_Chat *chat, IP_Port ip_port, int peernum) { if ((uint32_t)peernum >= chat->numpeers) return -1; @@ -382,7 +382,7 @@ static int send_getnodes(Group_Chat *chat, IP_Port ip_port, int peernum) CRYPTO_PACKET_GROUP_CHAT_GET_NODES); } -static int send_sendnodes(Group_Chat *chat, IP_Port ip_port, int peernum, uint64_t pingid) +static int send_sendnodes(const Group_Chat *chat, IP_Port ip_port, int peernum, uint64_t pingid) { if ((uint32_t)peernum >= chat->numpeers) return -1; @@ -404,7 +404,7 @@ static int send_sendnodes(Group_Chat *chat, IP_Port ip_port, int peernum, uint64 sizeof(contents.pingid) + sizeof(groupchat_nodes) * j, CRYPTO_PACKET_GROUP_CHAT_SEND_NODES); } -static int handle_getnodes(Group_Chat *chat, IP_Port source, int peernum, uint8_t *data, uint32_t len) +static int handle_getnodes(const Group_Chat *chat, IP_Port source, int peernum, const uint8_t *data, uint32_t len) { if (len != sizeof(getnodes_data)) return 1; @@ -422,7 +422,7 @@ static int handle_getnodes(Group_Chat *chat, IP_Port source, int peernum, uint8_ return 0; } -static int handle_sendnodes(Group_Chat *chat, IP_Port source, int peernum, uint8_t *data, uint32_t len) +static int handle_sendnodes(Group_Chat *chat, IP_Port source, int peernum, const uint8_t *data, uint32_t len) { if ((uint32_t)peernum >= chat->numpeers) return 1; @@ -487,7 +487,7 @@ static int handle_sendnodes(Group_Chat *chat, IP_Port source, int peernum, uint8 #define GROUP_DATA_MIN_SIZE (crypto_box_PUBLICKEYBYTES + sizeof(uint32_t) + 1) static void send_names_new_peer(Group_Chat *chat); -static int handle_data(Group_Chat *chat, uint8_t *data, uint32_t len) +static int handle_data(Group_Chat *chat, const uint8_t *data, uint32_t len) { if (len < GROUP_DATA_MIN_SIZE) return 1; @@ -526,7 +526,7 @@ static int handle_data(Group_Chat *chat, uint8_t *data, uint32_t len) chat->group[peernum].last_message_number = message_num; int handled = 1; - uint8_t *contents = data + GROUP_DATA_MIN_SIZE; + const uint8_t *contents = data + GROUP_DATA_MIN_SIZE; uint16_t contents_len = len - GROUP_DATA_MIN_SIZE; switch (data[crypto_box_PUBLICKEYBYTES + sizeof(message_num)]) { @@ -585,7 +585,7 @@ static int handle_data(Group_Chat *chat, uint8_t *data, uint32_t len) return 1; } -static uint8_t send_data(Group_Chat *chat, uint8_t *data, uint32_t len, uint8_t message_id) +static uint8_t send_data(Group_Chat *chat, const uint8_t *data, uint32_t len, uint8_t message_id) { if (len + GROUP_DATA_MIN_SIZE > MAX_CRYPTO_REQUEST_SIZE) /*NOTE: not the real maximum len.*/ return 1; @@ -614,7 +614,7 @@ static uint8_t send_data(Group_Chat *chat, uint8_t *data, uint32_t len, uint8_t * return 1 if error. */ -int handle_groupchatpacket(Group_Chat *chat, IP_Port source, uint8_t *packet, uint32_t length) +int handle_groupchatpacket(Group_Chat *chat, IP_Port source, const uint8_t *packet, uint32_t length) { if (length > MAX_CRYPTO_REQUEST_SIZE) return 1; @@ -652,12 +652,12 @@ int handle_groupchatpacket(Group_Chat *chat, IP_Port source, uint8_t *packet, ui return 1; } -uint32_t group_sendmessage(Group_Chat *chat, uint8_t *message, uint32_t length) +uint32_t group_sendmessage(Group_Chat *chat, const uint8_t *message, uint32_t length) { return send_data(chat, message, length, GROUP_CHAT_CHAT_MESSAGE); //TODO: better return values? } -uint32_t group_sendaction(Group_Chat *chat, uint8_t *action, uint32_t length) +uint32_t group_sendaction(Group_Chat *chat, const uint8_t *action, uint32_t length) { return send_data(chat, action, length, GROUP_CHAT_ACTION); } @@ -686,20 +686,20 @@ int set_nick(Group_Chat *chat, const uint8_t *nick, uint16_t nick_len) return 0; } -uint32_t group_newpeer(Group_Chat *chat, uint8_t *client_id) +uint32_t group_newpeer(Group_Chat *chat, const uint8_t *client_id) { addpeer(chat, client_id); return send_data(chat, client_id, crypto_box_PUBLICKEYBYTES, GROUP_CHAT_NEW_PEER); //TODO: better return values? } -void callback_groupmessage(Group_Chat *chat, void (*function)(Group_Chat *chat, int, uint8_t *, uint16_t, void *), +void callback_groupmessage(Group_Chat *chat, void (*function)(Group_Chat *chat, int, const uint8_t *, uint16_t, void *), void *userdata) { chat->group_message = function; chat->group_message_userdata = userdata; } -void callback_groupaction(Group_Chat *chat, void (*function)(Group_Chat *chat, int, uint8_t *, uint16_t, void *), +void callback_groupaction(Group_Chat *chat, void (*function)(Group_Chat *chat, int, const uint8_t *, uint16_t, void *), void *userdata) { chat->group_action = function; @@ -713,12 +713,12 @@ void callback_namelistchange(Group_Chat *chat, void (*function)(Group_Chat *chat chat->group_namelistchange_userdata = userdata; } -uint32_t group_numpeers(Group_Chat *chat) +uint32_t group_numpeers(const Group_Chat *chat) { return chat->numpeers; } -uint32_t group_client_names(Group_Chat *chat, uint8_t names[][MAX_NICK_BYTES], uint16_t lengths[], uint16_t length) +uint32_t group_client_names(const Group_Chat *chat, uint8_t names[][MAX_NICK_BYTES], uint16_t lengths[], uint16_t length) { uint32_t i; @@ -833,12 +833,12 @@ void kill_groupchat(Group_Chat *chat) free(chat); } -void chat_bootstrap(Group_Chat *chat, IP_Port ip_port, uint8_t *client_id) +void chat_bootstrap(Group_Chat *chat, IP_Port ip_port, const uint8_t *client_id) { send_getnodes(chat, ip_port, addpeer(chat, client_id)); } -void chat_bootstrap_nonlazy(Group_Chat *chat, IP_Port ip_port, uint8_t *client_id) +void chat_bootstrap_nonlazy(Group_Chat *chat, IP_Port ip_port, const uint8_t *client_id) { send_getnodes(chat, ip_port, addpeer(chat, client_id)); add_closepeer(chat, client_id, ip_port); diff --git a/toxcore/group_chats.h b/toxcore/group_chats.h index 49b83c81..802d345b 100644 --- a/toxcore/group_chats.h +++ b/toxcore/group_chats.h @@ -62,9 +62,9 @@ typedef struct Group_Chat { uint32_t numpeers; uint32_t message_number; - void (*group_message)(struct Group_Chat *m, int, uint8_t *, uint16_t, void *); + void (*group_message)(struct Group_Chat *m, int, const uint8_t *, uint16_t, void *); void *group_message_userdata; - void (*group_action)(struct Group_Chat *m, int, uint8_t *, uint16_t, void *); + void (*group_action)(struct Group_Chat *m, int, const uint8_t *, uint16_t, void *); void *group_action_userdata; void (*peer_namelistchange)(struct Group_Chat *m, int peer, uint8_t change, void *); void *group_namelistchange_userdata; @@ -91,14 +91,14 @@ typedef struct Group_Chat { * return length of name if success * return -1 if failure */ -int group_peername(Group_Chat *chat, int peernum, uint8_t *name); +int group_peername(const Group_Chat *chat, int peernum, uint8_t *name); /* * Set callback function for chat messages. * * format of function is: function(Group_Chat *chat, peer number, message, message length, userdata) */ -void callback_groupmessage(Group_Chat *chat, void (*function)(Group_Chat *chat, int, uint8_t *, uint16_t, void *), +void callback_groupmessage(Group_Chat *chat, void (*function)(Group_Chat *chat, int, const uint8_t *, uint16_t, void *), void *userdata); /* @@ -106,7 +106,7 @@ void callback_groupmessage(Group_Chat *chat, void (*function)(Group_Chat *chat, * * format of function is: function(Group_Chat *chat, peer number, action, action length, userdata) */ -void callback_groupaction(Group_Chat *chat, void (*function)(Group_Chat *chat, int, uint8_t *, uint16_t, void *), +void callback_groupaction(Group_Chat *chat, void (*function)(Group_Chat *chat, int, const uint8_t *, uint16_t, void *), void *userdata); /* @@ -130,14 +130,14 @@ void callback_namelistchange(Group_Chat *chat, void (*function)(Group_Chat *chat * * returns the number of peers it has sent it to. */ -uint32_t group_sendmessage(Group_Chat *chat, uint8_t *message, uint32_t length); +uint32_t group_sendmessage(Group_Chat *chat, const uint8_t *message, uint32_t length); /* * Send an action to the group. * * returns the number of peers it has sent it to. */ -uint32_t group_sendaction(Group_Chat *chat, uint8_t *action, uint32_t length); +uint32_t group_sendaction(Group_Chat *chat, const uint8_t *action, uint32_t length); /* * Set our nick for this group. @@ -150,7 +150,7 @@ int set_nick(Group_Chat *chat, const uint8_t *nick, uint16_t nick_len); * Tell everyone about a new peer (a person we are inviting for example.) * */ -uint32_t group_newpeer(Group_Chat *chat, uint8_t *client_id); +uint32_t group_newpeer(Group_Chat *chat, const uint8_t *client_id); /* Create a new group chat. @@ -164,7 +164,7 @@ Group_Chat *new_groupchat(Networking_Core *net); /* Return the number of peers in the group chat. */ -uint32_t group_numpeers(Group_Chat *chat); +uint32_t group_numpeers(const Group_Chat *chat); /* List all the peers in the group chat. * @@ -172,7 +172,7 @@ uint32_t group_numpeers(Group_Chat *chat); * * returns the number of peers. */ -uint32_t group_client_names(Group_Chat *chat, uint8_t names[][MAX_NICK_BYTES], uint16_t lengths[], uint16_t length); +uint32_t group_client_names(const Group_Chat *chat, uint8_t names[][MAX_NICK_BYTES], uint16_t lengths[], uint16_t length); /* Kill a group chat * @@ -188,11 +188,11 @@ void do_groupchat(Group_Chat *chat); /* if we receive a group chat packet we call this function so it can be handled. return 0 if packet is handled correctly. return 1 if it didn't handle the packet or if the packet was shit. */ -int handle_groupchatpacket(Group_Chat *chat, IP_Port source, uint8_t *packet, uint32_t length); +int handle_groupchatpacket(Group_Chat *chat, IP_Port source, const uint8_t *packet, uint32_t length); -void chat_bootstrap(Group_Chat *chat, IP_Port ip_port, uint8_t *client_id); -void chat_bootstrap_nonlazy(Group_Chat *chat, IP_Port ip_port, uint8_t *client_id); +void chat_bootstrap(Group_Chat *chat, IP_Port ip_port, const uint8_t *client_id); +void chat_bootstrap_nonlazy(Group_Chat *chat, IP_Port ip_port, const uint8_t *client_id); #endif