why is this code never adding to client_list?
        if (client_fd > max_fd)
            { // this is a new socket
                

                write(client_fd, "What is your user name?\n", 24);
                check_and_add_user(user_list, client_fd, client_list);

                // add client_fd into client_list
                Client *new_client = (Client *)malloc(sizeof(Client));
                if (new_client == NULL){
                    perror("malloc");
                    exit(1);
                }
                new_client->fd = client_fd;
                // new_client->user = user;
                new_client->user = NULL;
                new_client->username = NULL;
                new_client->next = NULL;
                if (client_list == NULL)
                {
                    client_list = new_client;
                }
                else
                {
                    Client *temp_client = client_list;
                    while (temp_client->next != NULL)
                    {
                        temp_client = temp_client->next;
                    }
                    temp_client->next = new_client;
                }
                max_fd = client_fd;
            }