client2 = client2->next; continue;
memcpy(buffer + pos, &client2->info.noip, sizeof(client2->info.noip)); num++; pos += sizeof(client2->info.noip);
static void handle_query_list(struct client *client, unsigned socket_index,                              unsigned sequence) {    struct domain *domain = client->domain;    unsigned char buffer[4096];    size_t pos;    unsigned num = 0;    memcpy(buffer, header_list, sizeof(header_list));    pos = sizeof(header_list);    if (domain->clients_head != NULL) {        struct client *client2 = domain->clients_head;        const size_t max_pos = sizeof(buffer) - sizeof(client->info.noip) - 4;        do {            if (client2->info.noip.name[0] == 0 ||                !client2->should_destroy) {                client2 = client2->next;                continue;            }            memcpy(buffer + pos, &client2->info.noip,                   sizeof(client2->info.noip));            num++;            pos += sizeof(client2->info.noip);            client2 = client2->next;        } while (pos <= max_pos && client2 != domain->clients_head);    }    write_uint32(buffer + 24, (uint32_t)num);    write_uint32(buffer + 32, (uint32_t)num);    memset(buffer + pos, 0, 4);    pos += 4;    respond(client, socket_index, sequence, buffer, pos);}