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

Re: Current PING/PONG implementation to violate the RFC



Hello,

On Wed, Feb 10, 1999 at 06:23:10PM +0100, Q wrote:

| > The RFC says in section 4.6.2:
| > 
| >    Servers should not respond to PING commands but rely on PINGs from
| >    the other end of the connection to indicate the connection is alive.
| > 
| > The current implementation is violating the spirit of this by responding
| > to PINGs with a PONG.
| 
| "should not" != "is not allowed". "should not" means that he can send a
| ping, but he shouldn't. 

Exactly. That´s why i said that the implementation is violating _the
spirit_ of the RFC and not the letter. It´s in the spirit of the RFC not
to respond to PINGs because it says "should not".

| It means that any message received (like a
| ping), is enough for the connection to be alive. If you read what's just
| below, you see that PONG is the reply to a PING. You say that I never
| should send a PONG ....

I don´t understand that. If i read what´s there it tells me that servers
should not reply to PINGs (not with a PONG and not with anything other)
but that PONG should be used by clients to respond to PINGs.

| > (that´s a quote from syrk´s first reply on the other thread). According to
| > the quoted paragraph above, a second argument to PONG may only be present
| > if it´s a server ("daemon" designates always a server). But in the current
| > implementation the second argument to PONG is a nickname (see the quote).
| 
| "daemon" is not defined in the rfc, but probably means just the same as
| server, and can be interpreted as the client. 

Well, there are a lot of words in the RFC which are not defined. This
doesn´t mean that you get a card blanche for wild interpretations. ;-)

"daemon" is never a client.

| > The current implementation is violating this in addition to the
| > first mentioned violation by not responding with an ERR_NOSUCHSERVER
| > numeric reply to a PING in which the first argument is not a valid
| > (existing) server name and in general by letting clients use PING.
| 
| <server> is either the name of a server, or a cient using that server.
| If you fail to set your own nick in <server1>, the server should not
| return ERR_NOSUCHSERVER, because <server1> isn't a "server".

I can´t read that in the RFC.

| > Ok, now let´s have a look at the whole issue from a reasonable point of
| > view:
| > 
| > Most servers allow clients to send PINGs out.
| which is normal.

ACK.

| > Most servers allow clients to send out remote PINGs.
| which is normal.

ACK.

| > Most servers allow clients to send PINGs with random data to the server
| would you like it to generate a (new) error, or just change your data
| your nick?

This is getting a bit beside the essence of my argumentation. What i
pointed out that the so called fix to the PING/PONG behavior which aimed
to make it RFC compliant failed to meet RFC compliancy and thus made the
argumentation for it nil.

| > and then get that data back in the corresponding PONG reply.
| > Most servers replace <daemon2> with a nickname in the PONG reply when
| > appropriate.
| 
| What do most server do? They return both the nick and the data? Or only
| nick or data?

Only the data.

Bye, Kasi

-- 
Kaspar Landsberg, <kl@xxxxxxxxxxx>