static void nickname_changed (GConfClient *client, guint cnxn_id, GConfEntry *entry, gpointer data) { gchar *text = gconf_client_get_string (client, entry->key, NULL); set_nickname (text); g_free (text); }
void MainWindow::connect_clicked() { ui->actionConnect->setEnabled(false); ui->actionDisconnect->setEnabled(true); m_connected_clicked = true; //TODO: Чтение из гуи m_server_address = QHostAddress::LocalHost; m_server_port = 10000; QTime midnight(0,0,0); qsrand(midnight.secsTo(QTime::currentTime())); QString nickname = "User" + QString::number(qrand() % 10000); set_nickname(nickname); try_to_connect(m_server_address, m_server_port); QTimer *timer = new QTimer(this); QObject::connect(timer, SIGNAL(timeout()), this, SLOT(repeat_connect())); timer->start(2000); }
static void nickname_sendline(u_char *data, u_char *nick) { int new_server, server; new_server = my_atoi(data); server = parsing_server(); set_from_server(new_server); if (nick && *nick) { send_to_server("NICK %s", nick); if (new_server == get_primary_server()) set_nickname(nick); server_set_nickname(new_server, nick); } set_from_server(server); already_doing_reset_nickname = 0; update_all_status(); }
/* * === FUNCTION ====================================================================== * Name: tcp_read * Description: Read characters from tcp socket. * ===================================================================================== */ void tcp_read ( struct chat_client *chat_client_p ){ char buffer[MAX_BUFFER_LEN]; char message[MAX_MESSAGE_LEN]; int retval; int retval_command; int nsfd; char *hello = "Bitte gib deinen Nickname ein: "; int len; int message_terminated; nsfd = chat_client_p->socket; // Tell client that he has to enter his nickname first send(nsfd, hello, strlen(hello), 0); for(;;){ // clean memory memset(&buffer[0], 0, sizeof(buffer)); memset(&message[0], 0, sizeof(message)); // read message from socket retval = read(nsfd, buffer, sizeof(buffer)); //if a client disconnectes, we leave the function and the threads ends if(retval == 0){ close_connection(chat_client_p); return; } // Use strnpy and strncat, since we don't send binary data that's ok if (retval != -1){ if(strlen(chat_client_p->nickname)==0){ set_nickname(chat_client_p, buffer); strncpy(message, chat_client_p->nickname, MAX_BUFFER_LEN); strncat(message, " joined chat\n", MAX_BUFFER_LEN); write_message( chat_client_p, message); } else{ retval_command = handle_command(chat_client_p, buffer); // command found and handled if(retval_command == 0){ continue; } // command found, but we want to exit this function else if(retval_command == -1){ return; } // write nickname, if the last message was terminated by \n if(message_terminated){ strncpy(message, chat_client_p->nickname, MAX_NICK_LEN); strncat(message, ": ", 2); strncat(message, buffer, MAX_BUFFER_LEN); } else{ strncpy(message, buffer, MAX_BUFFER_LEN); } write_message(chat_client_p, message); } // check if the message is \n terminated len = strlen(message); if(message[len-1] == '\n'){ message_terminated = 1; } else{ message_terminated = 0; } } } }