[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: ircd i18n, suggested protocol extension



On Wed, Nov 15, 2000 at 03:21:25PM +0100, Per von Zweigbergk wrote:
> On Wed, Nov 15, 2000 at 02:32:10PM +0100, Kurt Roeckx wrote:
> > Sending a ping before the client is connected is a violation of
> > the RFC.  It can easely break a client.
> 
> True, but now, being a practical type person, many IRC server
> software, like that of Undernet already does send a PING before
> connected. This IMHO is a great thing protecting against floodbots
> from borken FTP servers or any other exploits that require a client
> only being able to write on a socket. So, IRC clients in use now
> support PING before connect.

I have no clue how to "exploit ftp", but it was only intended to
prevent someone from doing an ip spoof on a broken OS.

> > There just isn't any "clean" way of doing it that I can think of.
> > The best thing so far is that a client sends some command to the
> > server before it registers.  But then you can have the client
> > waiting for the answer of the server, before it continue's, if
> > the server doesn't know about it.
> 
> That's why I proposed sending it just before a PING command. Here
> are some examples. C is client, S is server.
> 
> C: USER jdoe host host :John Doe
> C: NICK DowJohn
> S: LANG         /* This could be some numeric. Might be better. */
> S: PING :somerandomnumber

I like that idea that the server sends it first, to say it
supports that.  It should be a numeric tho.

What about sending the numeric before it sends the USER or NICK
message? (Wonder how a server will react on that.)

You could send :server XXX * YYY

XXX being a numeric everybody should agree on.

No idea what that YYY should contain tho, maybe something like
":this server supports different languages.", or a list of the
languages it knows.

At that point the client has to wait again, so I don't like it.

I don't like sending a broken ping request at all.
"somerandomnumber" is not a name of a server (or client).

The easiest sollution I see for this problem is that the client
just sends a "LANG XXXX" request before sending either USER or
NICK.  It should always work. XXXX could be a list of languages
it likes, in that order.  If non found, use a default (English,
or some compile time option.)

> Oh, also. Without checking the RFC right now, does it actually
> prohibit a PING command in the handshaking sequence before the MOTD?

The strongest point against the PING is that it does not use the
name of the server sending the request.

Also, the RFC does not say anything about ping in section 4.1
Connection Registration.  It's put under section 4.6 Miscellaneous
messages.

> Ironically though, the reason for }, {, and \ to be the lowercase
> variants of ], [ and | is because of IRC's Finnish origin.

Don't forget ^ and ~, which weren't documented in rfc1459.

> I received some constructive comments from pht on #c on IRCnet, pointing
> out that the IRC server isn't the right place to i18nize. He pointed
> out that the IRC protocol is defined as a numeric, some arguments, and
> then some explanatory "garbage" text. This text is just there to speed
> up the development of "half-baked" IRC clients.
> 
> I reply that that most modern IRC clients are half-baked in that aspect. I
> see this as a good thing. Centralising i18n is always a good thing.

The RFC does define how the numerics should look, but with some
it depends on the error it gives, or what server you're connected
to what the error message is.

One thing you forget however is that you can get reply's from
remote servers.  We would have to change the server server
protocol to be able to support it fully.  I doubt this is going
to happen.


Kurt