I'm a sysadmin at W3C, and we're looking at using ngIRCd to serve our
private staff IRC channel, requiring users to authenticate through PAM.
Our initial tests with this have been encouraging, and I really like
how clean ngIRCd is, but we have hit a couple of corner cases with
authentication I wanted to ask about.
First, users who have passwords with spaces in them can't connect. If
I've done my homework right, this seems to be a limitation of the IRC
protocol itself: when clients connect, they provide all their important
information (nick, username, password, etc.) on a space-separated line,
so the server has no choice but to parse a password with spaces as
multiple fields. Do I have that right? I'd be happy to be told I'm
wrong about this if it means I can accommodate these users better.
Second, ngIRCd allocates 21 bytes for the password buffer, which is too
short for some of our users' passwords. As far as I can tell, a maximum
password length isn't defined in the RFC or similar, so I'm guessing
this limitation is largely historical. I've patched ngIRCd locally to
#define CLIENT_PASS_LEN to 64, which seems to be working with no ill
effects. Would you be willing to consider a patch like this upstream?
We'd love to be running stock ngIRCd without any patches, even one as
trivial as this.