Add function to check if the peernumber is ours for group chats.

This commit is contained in:
irungentoo 2014-10-14 19:43:54 -04:00
parent b41eadf695
commit 97707a74fe
No known key found for this signature in database
GPG Key ID: 10349DC9BED89E98
4 changed files with 46 additions and 4 deletions

View File

@ -744,6 +744,25 @@ int group_number_peers(const Group_Chats *g_c, int groupnumber)
return g->numpeers; return g->numpeers;
} }
/* return 1 if the peernumber corresponds to ours.
* return 0 on failure.
*/
unsigned int group_peernumber_is_ours(const Group_Chats *g_c, int groupnumber, int peernumber)
{
Group_c *g = get_group_c(g_c, groupnumber);
if (!g)
return 0;
if (g->status != GROUPCHAT_STATUS_CONNECTED)
return 0;
if ((uint32_t)peernumber >= g->numpeers)
return 0;
return g->peer_number == g->group[peernumber].peer_number;
}
/* Send a group packet to friendcon_id. /* Send a group packet to friendcon_id.
* *
* return 1 on success * return 1 on success

View File

@ -190,6 +190,11 @@ int group_action_send(const Group_Chats *g_c, int groupnumber, const uint8_t *ac
*/ */
int group_number_peers(const Group_Chats *g_c, int groupnumber); int group_number_peers(const Group_Chats *g_c, int groupnumber);
/* return 1 if the peernumber corresponds to ours.
* return 0 on failure.
*/
unsigned int group_peernumber_is_ours(const Group_Chats *g_c, int groupnumber, int peernumber);
/* List all the peers in the group chat. /* List all the peers in the group chat.
* *
* Copies the names of the peers to the name[length][MAX_NAME_LENGTH] array. * Copies the names of the peers to the name[length][MAX_NAME_LENGTH] array.

View File

@ -564,7 +564,7 @@ void tox_callback_group_invite(Tox *tox, void (*function)(Messenger *tox, int32_
/* Set the callback for group messages. /* Set the callback for group messages.
* *
* Function(Tox *tox, int groupnumber, int friendgroupnumber, uint8_t * message, uint16_t length, void *userdata) * Function(Tox *tox, int groupnumber, int peernumber, uint8_t * message, uint16_t length, void *userdata)
*/ */
void tox_callback_group_message(Tox *tox, void (*function)(Messenger *tox, int, int, const uint8_t *, uint16_t, void *), void tox_callback_group_message(Tox *tox, void (*function)(Messenger *tox, int, int, const uint8_t *, uint16_t, void *),
void *userdata) void *userdata)
@ -575,7 +575,7 @@ void tox_callback_group_message(Tox *tox, void (*function)(Messenger *tox, int,
/* Set the callback for group actions. /* Set the callback for group actions.
* *
* Function(Tox *tox, int groupnumber, int friendgroupnumber, uint8_t * action, uint16_t length, void *userdata) * Function(Tox *tox, int groupnumber, int peernumber, uint8_t * action, uint16_t length, void *userdata)
*/ */
void tox_callback_group_action(Tox *tox, void (*function)(Messenger *tox, int, int, const uint8_t *, uint16_t, void *), void tox_callback_group_action(Tox *tox, void (*function)(Messenger *tox, int, int, const uint8_t *, uint16_t, void *),
void *userdata) void *userdata)
@ -672,6 +672,17 @@ int tox_group_action_send(Tox *tox, int groupnumber, const uint8_t *action, uint
return -1; return -1;
} }
/* Check if the current peernumber corresponds to ours.
*
* return 1 if the peernumber corresponds to ours.
* return 0 on failure.
*/
unsigned int tox_group_peernumber_is_ours(const Tox *tox, int groupnumber, int peernumber)
{
const Messenger *m = tox;
return group_peernumber_is_ours(m->group_chat_object, groupnumber, peernumber);
}
/* Return the number of peers in the group chat on success. /* Return the number of peers in the group chat on success.
* return -1 on failure * return -1 on failure
*/ */

View File

@ -428,14 +428,14 @@ void tox_callback_group_invite(Tox *tox, void (*function)(Tox *tox, int32_t, con
/* Set the callback for group messages. /* Set the callback for group messages.
* *
* Function(Tox *tox, int groupnumber, int friendgroupnumber, uint8_t * message, uint16_t length, void *userdata) * Function(Tox *tox, int groupnumber, int peernumber, uint8_t * message, uint16_t length, void *userdata)
*/ */
void tox_callback_group_message(Tox *tox, void (*function)(Tox *tox, int, int, const uint8_t *, uint16_t, void *), void tox_callback_group_message(Tox *tox, void (*function)(Tox *tox, int, int, const uint8_t *, uint16_t, void *),
void *userdata); void *userdata);
/* Set the callback for group actions. /* Set the callback for group actions.
* *
* Function(Tox *tox, int groupnumber, int friendgroupnumber, uint8_t * action, uint16_t length, void *userdata) * Function(Tox *tox, int groupnumber, int peernumber, uint8_t * action, uint16_t length, void *userdata)
*/ */
void tox_callback_group_action(Tox *tox, void (*function)(Tox *tox, int, int, const uint8_t *, uint16_t, void *), void tox_callback_group_action(Tox *tox, void (*function)(Tox *tox, int, int, const uint8_t *, uint16_t, void *),
void *userdata); void *userdata);
@ -502,6 +502,13 @@ int tox_group_message_send(Tox *tox, int groupnumber, const uint8_t *message, ui
*/ */
int tox_group_action_send(Tox *tox, int groupnumber, const uint8_t *action, uint16_t length); int tox_group_action_send(Tox *tox, int groupnumber, const uint8_t *action, uint16_t length);
/* Check if the current peernumber corresponds to ours.
*
* return 1 if the peernumber corresponds to ours.
* return 0 on failure.
*/
unsigned int tox_group_peernumber_is_ours(const Tox *tox, int groupnumber, int peernumber);
/* Return the number of peers in the group chat on success. /* Return the number of peers in the group chat on success.
* return -1 on failure * return -1 on failure
*/ */