/* * Verifica se ja existe o nick e permite a conexao */ short int permiteConexao( CLIENTES * pClientes , int indice , CHAT * chatMsg ) { char * novoNick = strV( chatMsg->nickOrigem ); char msgAviso[] = {"1;Novo;Server;Este nick ja esta sendo usado! voce sera desconectado...;"}; for(int i = 0; i < pClientes->qntClientes; i++) if( !strcmp( novoNick , pClientes->nick[i] ) ){ //---- Envia aviso ao cliente send( pClientes->sock[indice] , msgAviso , strlen(msgAviso) , 0); //---- Reorganiza os registros dos clientes if( indice == pClientes->qntClientes-1 ){ pClientes->qntClientes--; pClientes->sock = (SOCKET *)realloc( pClientes->sock , sizeof(SOCKET) * pClientes->qntClientes ); return 0; }else{ pClientes->sock[indice] = pClientes->sock[ pClientes->qntClientes-1 ]; free(pClientes->nick[indice]); pClientes->nick[indice] = strV(pClientes->nick[ pClientes->qntClientes-1 ]); pClientes->qntClientes--; pClientes->sock = (SOCKET *)realloc( pClientes->sock , sizeof(SOCKET) * pClientes->qntClientes ); return 0; } } return 1; }