C-toxcore: Indiquer que le nom d'utilisateur de l'homologue du chat de groupe n'est pas connu

Créé le 6 févr. 2018  ·  4Commentaires  ·  Source: TokTok/c-toxcore

Dans le chat de groupe, lorsque le nom d'utilisateur d'un pair n'est pas connu, une chaîne "Tox User" est renvoyée. Pour autant que je sache, toxcore ne donne aucune autre indication à ce sujet. Cela signifie que les clients ne peuvent jamais faire confiance si le nom du pair qu'ils ont obtenu de toxcore est correct ou non. "Tox User" peut être un nom d'utilisateur légitime, il n'y a donc aucun moyen de distinguer s'il s'agit d'un nom correct. Cela rend difficile la création de notifications de participation pour les discussions de groupe.

Lorsqu'un utilisateur rejoint une discussion de groupe dans laquelle nous sommes, nous verrons d'abord son nom en tant que "Tox User". Ensuite, il sera probablement remplacé par son vrai nom en appelant TOX_CONFERENCE_STATE_CHANGE_PEER_NAME_CHANGE. Je ne sais pas comment les clients s'y prennent, mais cela devrait être changé.

dans le groupe.c :

/* Copy the name of peer_index who is in groupnumber to name.
 * name must be at least MAX_NAME_LENGTH long.
 *
 * return length of name if success
 * return -1 if groupnumber is invalid.
 * return -2 if peer_index is invalid.
 */
int group_peername(const Group_Chats *g_c, int groupnumber, int peer_index, uint8_t *name)
{
    Group_c *g = get_group_c(g_c, groupnumber);

    if (!g) {
        return -1;
    }

    if (peer_index < 0 || (uint32_t)peer_index >= g->numpeers_in_list) {
        return -2;
    }

    if (g->peers_list[peer_index] == INVALID_PEER_INDEX) {
        return -2;
    }

    Group_Peer *peer = &g->peers[g->peers_list[peer_index]];

    peer->nick_changed = false;

    if (peer->nick_len == 0) {
        memcpy(name, "Tox User", 8);
        return 8;
    }

    memcpy(name, peer->nick, peer->nick_len);
    return peer->nick_len;
}
enhancement

Commentaire le plus utile

Et si vous utilisiez une chaîne vide au lieu d'utiliser Tox User ?

Tous les 4 commentaires

Et si vous utilisiez une chaîne vide au lieu d'utiliser Tox User ?

peut-être quelque part le long de cette ligne :

    if (peer->nick_len == 0) {
        name[0] = '\0';
        return 0;
    }

Il doit y avoir un nom par défaut. Nous pourrions le définir sur une chaîne vide et laisser les clients décider du nom par défaut, mais ce sera alors différent pour chaque client.

Il y a aussi un autre problème. Pourquoi la chaîne « Tox User » est-elle renvoyée pour chaque pair qui se joint et est ensuite remplacée par le vrai nom de l'utilisateur ? Cela doit signifier que le nom de chaque utilisateur qui rejoint est vide au début. Pourquoi?

Nous pourrions le définir sur une chaîne vide et laisser les clients décider du nom par défaut, mais ce sera alors différent pour chaque client.

Je pense que laisser le client décider du nom par défaut ne serait pas si mal, qTox a déjà un nom par défaut lorsque vous créez un profil, ce ne serait pas beaucoup de travail pour en créer un pour les groupes.

Pourquoi la chaîne « Tox User » est-elle renvoyée pour chaque pair qui se joint et est ensuite remplacée par le vrai nom de l'utilisateur ?

Peut-être que le paquet indiquant le nom du pair arrive après celui indiquant que quelqu'un a rejoint le groupe ? Je ne sais pas ce que dit le protocole ici.

Cette page vous a été utile?
0 / 5 - 0 notes

Questions connexes

zoff99 picture zoff99  ·  3Commentaires

tox-user picture tox-user  ·  9Commentaires

hkarel picture hkarel  ·  8Commentaires

zoff99 picture zoff99  ·  4Commentaires

zetok picture zetok  ·  3Commentaires