Últimos Cambios |
||
Blog personal: El hilo del laberinto |
Última Actualización: 23 de Febrero de 1.999 - Martes
Message-ID: <3569FCF6.F6BB2F16@argo.es> Date: Mon, 25 May 1998 23:21:26 +0000 From: Jesús Cea Avión <jcea@argo.es> Organization: Argo Redes y Servicios Telematicos, S.A. To: clientserver@dal.net Subject: [CS] Protocol Proposal
I sent this text last March to Undernet Coding Mailing list. What do you think?
>>>>>
[...]
d) PROTOCOL. I was waiting to propose things like data compression
(at ESNET we are checking ideas using an experimental java client),
local client proxying (like clones but eliminating duplicate
messages like privmsg to common channels), nick authentication at
server level or encryption. PROTOCOL seems to be the correct
container.
Somebody suggests TELNET like negotiation, but WILL, WON'T, DO, DON'T telnet procedures (see RFCs) are a a bit cumbersome. I'd suggest something more in the PPP line (see RFCs, also). Simplified (and supposing that each "mode" negociated is bidirectional):
You can renegociate connections any time unless a negotiation phase is in progress.
Nodes don't require "advertise" its possible modes. And clients only "sees" modes that they support. You could see possible modes using a wilcard like "*" (server will "refuse" all its nodes :). You can check modes without activating them using an invalid mode in the string.
Check modes: (usually, manually issued by the user, just curious :)
C: Protocol (or "Protocol *")
S: Protocol nick-1, compress-zlib-1, undernet:compress-1, undernet:compress-2, esnet:channel_service-1
Another example:
C: Protocol nick-1, esnet:compress-1, undernet:compress-2, undernet:compress-2, compress-zlib-1, maxlen(65536)
S: Protocol !esnet:compress-1, !undernet:compress-2, !undernet:compress-2, maxlen(1024)
First option is refused, since it is not supported. Second and third are refused because they are mutually exclusive and zlib is prefered. Maxlen returns a suggested parameter.
So client continues:
C: Protocol nick-1, compress-zlib-1, maxlen(1024)
S: Protocol ACK
And new options are effective here.
Time later the user writes a new script (for example) which demands a new feature. He only wants to know if the server supports the feature, in order to display funny statistics on the screen.
C: Protocol nick-1, compress-zlib-1, maxlen(1024), fortune-1, DUMMY
S: Protocol !DUMMY
DUMMY is a false protocol to force the fail. In the example, server supports "fortune-1" but doesn't activate it since "DUMMY" is not supported.
If the client wants the feature:
C: Protocol nick-1, compress-zlib-1, maxlen(1024), fortune-1
S: Protocol ACK
And changes take effect here.
A server which don't support "protocol" sends a "unknown command".
In any case, clients can't send a "protocol" command if they issued one already and server hasn't replied yet.
<<<<<
-- Jesus Cea Avion _/_/ _/_/_/ _/_/_/ jcea@argo.es http://www.argo.es/~jcea/ _/_/ _/_/ _/_/ _/_/ _/_/ _/_/ _/_/ _/_/_/_/_/ PGP Key Available at KeyServ _/_/ _/_/ _/_/ _/_/ _/_/ "Things are not so easy" _/_/ _/_/ _/_/ _/_/ _/_/ _/_/ "My name is Dump, Core Dump" _/_/_/ _/_/_/ _/_/ _/_/ "El amor es poner tu felicidad en la felicidad de otro" - Leibnitz
Más información sobre los OpenBadges
Donación BitCoin: 19niBN42ac2pqDQFx6GJZxry2JQSFvwAfS