#$# client name version
was used by clients get the features they want from the server, for example
%recip_regexp.
This created a real problem for new clients connecting to older
servers: the server had to know your client's name in advance. As
a result, some clients simply masqueraded as a client with the
features they desired.
#$# options
was created to eliminate this problem, by allowing a client to add
and remove options at any time. At any point after the client is
connected to the server, it can send
#$# options ... to the server to register
its options. This event extends to transmitting before
the login prompt has been replied to. As a test, simply telnet to
the server, and at the login prompt do
#$# options. Whenever you set options
the server will reply to you with
%options
followed by +optionname for options successfully
or currently enabled, and -optionname for those
options unsupported by this server.To indicate support for an option use +optionname to remove support use -optionname.
%recip
%recip_regexp
%sender
%sendgroup
%recip_regexp
to be transmitted near the end of the login process. Any other
time this option is requested, it causes
%recip_regexp
to be transmitted immediately in response.
%connnected
to be transmitted on the completion of the login process.
If this command arrives after login has completed, it is ignored.
%info_size
to be transmitted near the end of the login process. Any other
time this option is requested, it causes
%info_size
to be transmitted immediately in response.
%user_type
to be transmitted near the end of the login process. Any other
time this option is requested, it causes
%user_type
to be transmitted immediately in response.
%beginmsg and
%endmsg
These data transmitted between these markers is not atomic or
labeled, and as such can be easily the victim of interleaving.
This weakness is one of the issues which gave rise to the development
of SimpleLilyClientProtocol. (As a historical note, this feature was built to be
similar to what XCONNECT used to parse CONNECT's messaging
output.)
%begin,
%command, and
%end.
This option is entirely compatible with the slcp option.
When leaf-cmd is enabled the token
"COMMAND=id" will be added to any SLCP events.
%prompt messages,
instead of just sending a line without a closing newline
character when the server wants the client to use some
special prompt for the next line it reads from the user.
%whoami
message whenever the name, blurb, or state of the user changes. Some more
advanced text mode clients, like clily use this to maintain an active
title bar in their window.
%prompt
by sending a
%prompt2
message whenever file-oriented input is required (e.g. /INFO).
This was implemented as a separate option to prevent existing
clients, which often use the %prompt command, from breaking.
See also the server message %prompt2. If a client has
both the prompt and prompt2 options set,
it should be true that it will never receive a "partial line" (one
without a closing newline character) as a prompt from the
server. This makes it easier to reliably-parse any of the
ServerMessages which may be sent to the client.
%server
%g prefixes on any line where
the user is expecting a "beep" (/signal).
NOTE: This option is
different from most other options, in that it is now usually
on by default. (Older versions of the
server had a build-in list of which clients wanted it on,
and which clients wanted it off). If anything, a client
would be more likely specify the -bell option
to turn this processing off. Also note that slcp
handles "bells" via a much better method, such that the
special %g prefixes will
never be sent to a client which has turned on the
slcp or slcp-name options.
Note: While this option has been documented
in various places, it looks like it was never implemented
on the server. I do plan to add it sometime, though.
Welcome to lilyCore release 2.2 login: #$# options +sender +sendgroup +recip_regexp +blat %options -blat +sender +sendgroup +recip_regexp
If you wanted to turn leafing on:
#$# options +leaf-all
Then turn it off:
#$# options -leaf-all
Keep in mind the user is working through the login process while all of this is going on. If you don't turn on the connected option quickly you may get past that point in the login process.
Revision 4, 24 September 2001, Webmaster
Revision 5, 22 September 2002, DD
Revision 6, 7 October 2002, CAR [PR#385, PR#429, PR#478]