ZNC è un IRC Bouncer open source; è compatibile con diversi sistemi operativi, è scritto in C++ e può essere esteso tramite moduli in C++, Perl e TCL.
ZNC rimane connesso quando ci disconnettiamo, e permette di salvare i messaggi che ci vengono lasciati in privato, o eventualmente di loggare interi canali. Naturalmente ha moltissime altre funzioni.

FUNZIONALITÀ

  • Moduli: sono presenti molti moduli;
  • Utenti multipli: è possibile concedere l’accesso a più utenti in un unico processo (utile per chi ha limiti di processi eseguibili);
  • Client multipli: uno stesso utente può connettersi con più client;
  • Playback: rimani aggiornato su ciò che è accaduto mentre eri offline;
  • SSL: per connetterti in tutta sicurezza, sia a ZNC, che alla rete;
  • DCC e DCC Bouncing;
  • IPv6;
  • Partyline;
  • Supporto al protocollo UHNAMES, introdotto recentemente (che mi ha costretto ad abbandonare PsyBNC);
  • Pannello di amministrazione web: tramite una semplice interfaccia puoi gestire la maggioranza delle opzioni globali e dei singoli utenti.

IMPRESSIONI
Dopo più di un mese di test, devo dire che funziona molto bene, anche se alcuni aspetti possono certamente essere migliorati (finestra singola per le query). L’uso delle risorse è maggiore a quello di PsyBNC, ma conforme, se consideriamo le innumerevoli funzionalità a disposizione.

PROBLEMA
Un problema fastidioso in cui mi sono imbattuto è il buffering dei Server Notice. Quando mi collegavo a ZNC, trovavo solo le query recenti, le vecchie sparivano misteriosamente.
Il buffer dedicato alle query, (o ai messaggi privati in generale) è limitato a 250 righe e se ZNC fa il buffer dei Server Notice, rischiamo di perdere i messaggi più vecchi per fare spazio ai nuovi (visto che alla riga 251, viene eliminata la riga 1), che, se sono snotice, generalmente non ci interessa leggere 10 ore dopo.

Parlandone con psychon (il quale ringrazio), abbiamo ideato e creato questo modulo, dissnoticemod, che è utile soprattutto per IRCop e superiori e permette di fare ignorare a ZNC gli Snotice mentre siamo disconnessi dallo stesso.

AGGIORNAMENTO
Il modulo è stato aggiunto al sito, di conseguenza non è necessario leggere il resto dell’articolo: http://en.znc.in/wiki/Dissnoticemod

Il modulo è molto semplice e sarà aggiunto sul sito di ZNC (znc.in), nel frattempo lo incollo qui:

/* INIZIO */
#include "main.h"
#include "Modules.h"
#include "User.h"
#include "Nick.h"

class CSNoticeMod : public CModule {
public:
MODCONSTRUCTOR(CSNoticeMod) {}
virtual ~CSNoticeMod() {}

EModRet OnPrivNotice(CNick& Nick, CString& sMessage)
{
if (m_pUser->IsUserAttached()) return CONTINUE;
if (!Nick.GetIdent().empty()) return CONTINUE;
return HALT;
}
};

MODULEDEFS(CSNoticeMod, "This module disable server notice from being buffered, solving the problem of query buffer being filled up by SNOTICEs.")
/* FINE */

Salvare il file come dissnoticemod.cpp e seguire le istruzioni per compilarlo da qui: http://en.znc.in/wiki/Compiling_modules

Alla prossima!