Corrigindo bug de data no comando radwho (FreeRADIUS)
Dica publicada em Linux / Miscelânea
Corrigindo bug de data no comando radwho (FreeRADIUS)
Para quem usa FreeRADIUS e usa o comando radwho, o qual mostra os usuários conectados, certamente já percebeu que a hora de login do usuário está faltando o último número, exemplo: 20:3 (o certo seria: 20:35).
Durante as três ultimas versões tenho acompanhado isso e sempre na esperança da correção. No entanto o bug ainda permanece, mesmo no CVS.
Eu já não agüentava mais isso, então resolvi ir direto no código fonte e arrumar, é muito simples e você mesmo pode fazer:
Abra o arquivo radwho.c que fica no diretório src/main, vá até a linha 225 onde encontrará isso:
strlcpy(s + 4, s + 11, 5);
Basta trocar o 5 por 6 assim:
Agora altere também logo abaixo na linha 228:
strlcpy(s + 4, s + 8, 8);
Trocar o último 8 por 9 assim:
Pronto! Pode compilar o FreeRADIUS, mas se você já tem o FreeRADIUS instalado basta compilar o diretório main:
De dentro do diretório main execute o comando make:
.../src/main# make
Agora, copie seu radwho corrigido para o onde deve ficar, se não sabe o local certo então localize o radwho bugado:
# whereis radwho
(isso mostra o caminho completo onde está o comando)
Agora copie o novo radwho para o local mostrado pelo whereis:
# cp radwho <caminho>
Ou se não estiver a fim de copiar então pode instalar:
# make install
(isso instala todos os outros comandos que estão dentro do diretório main)
Tentei mandar o bug no site do FreeRADIUS mas me apresentaram um formulário tão complexo que acabei desistindo. Certamente colocar a correção aqui vai surtir mais efeito.
De quebra fiz este script que ao executar radwho além de mostrar a lista de usuários, no final mostra o total da lista, para você não ficar contando linha por linha para saber quantos apareceram:
Obrigado por ler esta dica! Valeu galera.
Durante as três ultimas versões tenho acompanhado isso e sempre na esperança da correção. No entanto o bug ainda permanece, mesmo no CVS.
Eu já não agüentava mais isso, então resolvi ir direto no código fonte e arrumar, é muito simples e você mesmo pode fazer:
Abra o arquivo radwho.c que fica no diretório src/main, vá até a linha 225 onde encontrará isso:
strlcpy(s + 4, s + 11, 5);
Basta trocar o 5 por 6 assim:
strlcpy(s + 4, s + 11, 6);
Agora altere também logo abaixo na linha 228:
strlcpy(s + 4, s + 8, 8);
Trocar o último 8 por 9 assim:
strlcpy(s + 4, s + 8, 9);
Pronto! Pode compilar o FreeRADIUS, mas se você já tem o FreeRADIUS instalado basta compilar o diretório main:
De dentro do diretório main execute o comando make:
.../src/main# make
Agora, copie seu radwho corrigido para o onde deve ficar, se não sabe o local certo então localize o radwho bugado:
# whereis radwho
(isso mostra o caminho completo onde está o comando)
Agora copie o novo radwho para o local mostrado pelo whereis:
# cp radwho <caminho>
Ou se não estiver a fim de copiar então pode instalar:
# make install
(isso instala todos os outros comandos que estão dentro do diretório main)
Tentei mandar o bug no site do FreeRADIUS mas me apresentaram um formulário tão complexo que acabei desistindo. Certamente colocar a correção aqui vai surtir mais efeito.
De quebra fiz este script que ao executar radwho além de mostrar a lista de usuários, no final mostra o total da lista, para você não ficar contando linha por linha para saber quantos apareceram:
Obrigado por ler esta dica! Valeu galera.