C-toxcore: الإشارة إلى أن اسم مستخدم زميل الدردشة الجماعية غير معروف

تم إنشاؤها على ٦ فبراير ٢٠١٨  ·  4تعليقات  ·  مصدر: TokTok/c-toxcore

في الدردشة الجماعية عندما لا يكون اسم مستخدم الزميل المنضم معروفًا ، يتم إرجاع سلسلة "Tox User". بقدر ما أعرف ، لا يعطي Toxcore أي إشارة أخرى حول هذا الموضوع. هذا يعني أنه لا يمكن للعملاء الوثوق أبدًا إذا كان اسم الزائر الذي حصلوا عليه من Toxcore صحيحًا أم لا. يمكن أن يكون "Tox User" اسم مستخدم شرعيًا ، لذلك لا توجد طريقة للتمييز إذا كان الاسم صحيحًا أم لا. هذا يجعل إنشاء إشعارات الانضمام للمحادثات الجماعية أمرًا صعبًا.

عندما ينضم مستخدم إلى دردشة جماعية نحن فيها ، سنرى اسمه في البداية على أنه "مستخدم Tox". ثم من المحتمل أن يتم تغييره إلى اسمه الحقيقي الذي ينادي TOX_CONFERENCE_STATE_CHANGE_PEER_NAME_CHANGE. لا أعرف كيف يتغلب العملاء عليها ، لكن يجب تغيير ذلك.

في المجموعة ج:

/* 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

التعليق الأكثر فائدة

ماذا عن استخدام سلسلة فارغة بدلاً من استخدام Tox User ؟

ال 4 كومينتر

ماذا عن استخدام سلسلة فارغة بدلاً من استخدام Tox User ؟

ربما في مكان ما على طول هذا الخط:

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

يجب أن يكون هناك بعض الاسم الافتراضي. يمكننا تعيينه على سلسلة فارغة والسماح للعملاء بتحديد الاسم الافتراضي ، ولكن بعد ذلك سيكون مختلفًا في كل عميل.

هناك أيضا مشكلة أخرى. لماذا يتم إرجاع السلسلة "Tox User" لكل نظير ينضم وتغيير الاسم الحقيقي للمستخدم لاحقًا؟ يجب أن يعني أن اسم كل مستخدم انضم فارغًا في البداية. لماذا ا؟

يمكننا تعيينه على سلسلة فارغة والسماح للعملاء بتحديد الاسم الافتراضي ، ولكن بعد ذلك سيكون مختلفًا في كل عميل.

أعتقد أن السماح للعميل بتحديد الاسم الافتراضي لن يكون سيئًا ، لأن qTox له بالفعل اسم افتراضي عند إنشاء ملف تعريف ، ولن يكون هناك الكثير من العمل لإنشاء ملف تعريف للمجموعات.

لماذا يتم إرجاع السلسلة "Tox User" لكل نظير ينضم وتغيير الاسم الحقيقي للمستخدم لاحقًا؟

ربما تصل الحزمة التي تشير إلى اسم النظير بعد أن تشير إلى أن شخصًا ما انضم إلى المجموعة؟ لست متأكدًا مما يقوله البروتوكول هنا.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات