Common Lisp Package: CL-IRC

README:

FUNCTION

Public

CONNECT (&KEY (NICKNAME *DEFAULT-NICKNAME*) (USERNAME NIL) (REALNAME NIL) (PASSWORD NIL) (MODE 0) (SERVER *DEFAULT-IRC-SERVER*) (PORT DEFAULT) (CONNECTION-TYPE 'CONNECTION) (CONNECTION-SECURITY NONE) (LOGGING-STREAM T))

Connect to server and return a connection object. `port' and `connection-security' have a relation: when `port' equals `:default' `*default-irc-server-port*' is used to find which port to connect to. `connection-security' determines which port number is found. `connection-security' can be either `:none' or `:ssl'. When passing `:ssl', the cl+ssl library must have been loaded by the caller.

FIND-REPLY-NAME (REPLY-NUMBER &KEY (REPLY-NAMES *REPLY-NAMES*))

Numeric replies in the IRC RFCs have more meaningful names. Given a numeric reply (`reply-number') this function will either return the symbol representing the reply or raise a continuable error (`no-such-reply') which gives you the opportunity to ignore the situation.

MASK-MATCHES-P (MASK HOSTNAME)

Wildcard matching. Uses `*' to match any number of characters and `?' to match exactly any one character. The routine does not enforce hostmask matching patterns, but can be used for the purpose.

NORMALIZE-CHANNEL-NAME (CONNECTION STRING)

Normalize `string' so that it represents an all-downcased channel name.

NORMALIZE-NICKNAME (CONNECTION STRING)

Normalize `string' so that represents an all-downcased IRC nickname.

PARSE-MODE-ARGUMENTS (CONNECTION TARGET ARGUMENTS &KEY SERVER-P)

Create a list of mode changes with their arguments for `target' from `mode-string' and `arguments'. Throw nil to the UNKNOWN-MODE symbol if any of the mode chars are unknown.

PARSE-RAW-MESSAGE (STRING &KEY (START 0))

Assuming `string' is a valid IRC message, parse the message and return the values in the following order: - source - user - host - command - arguments - trailing-argument Any values not present will be represented as nil.

START-BACKGROUND-MESSAGE-HANDLER (CONNECTION)

Read messages from the `connection', parse them and dispatch irc-message-event on them. Returns background process ID if available. This function has been DEPRECATED. The function body is meant as an example for library users on handling connection input. Users are strongly encouraged to implement error handling (which is lacking from the prototype given here.

STOP-BACKGROUND-MESSAGE-HANDLER (PROCESS)

Stops a background message handler process returned by the start function. Just as its cousin START-BACKGROUND-MESSAGE-HANDLER, this function is DEPRECATED.

Undocumented

MAKE-CHANNEL (CONNECTION &KEY (NAME ) (TOPIC ) (MODES NIL) (USERS NIL) (USER-COUNT NIL))

MAKE-CONNECTION (&KEY (CONNECTION-TYPE 'CONNECTION) (USER NIL) (PASSWORD NIL) (SERVER-NAME ) (SERVER-PORT NIL) (SOCKET NIL) (NETWORK-STREAM NIL) (OUTGOING-EXTERNAL-FORMAT *DEFAULT-OUTGOING-EXTERNAL-FORMAT*) (CLIENT-STREAM T) (HOOKS NIL))

MAKE-DCC-CHAT-CONNECTION (&KEY (REMOTE-USER NIL) (CLIENT-STREAM NIL) (IRC-CONNECTION NIL) (CLOSE-ON-MAIN T) (SOCKET NIL) (NETWORK-STREAM NIL) (OUTGOING-EXTERNAL-FORMAT *DEFAULT-OUTGOING-EXTERNAL-FORMAT*) (HOOKS NIL))

MAKE-USER (CONNECTION &KEY (NICKNAME ) (USERNAME ) (HOSTNAME ) (REALNAME ))

Private

CHANMODE-DESCS-FROM-ISUPPORT (ISUPPORT-ARGUMENTS &OPTIONAL (MODE-SYMBOLS *DEFAULT-CHAR-TO-CHANNEL-MODES-MAP*))

Parses a string describing channel modes conforming to http://www.irc.org/tech_docs/draft-brocklesby-irc-isupport-03.txt paragraph 3.3. It returns a list of mode-description records.

CREATE-IRC-MESSAGE (STRING)

If `string' is a valid IRC message parse it and return an object of the correct type with its slots prefilled according to the information in the message.

CTCP-MESSAGE-TYPE (STRING)

If `string' is a CTCP message, return the type of the message or nil if this is a) not a CTCP message or b) a CTCP message we don't know about.

CTCP-TYPE-P (STRING TYPE)

Is the `string' actually a representation of the CTCP `type'?

CUT-BEFORE (STRING SUBSTRING END-CHARS &KEY (START 0) (CUT-EXTRA T) (CUT-TO-END NIL))

Cut `string' before `substring' or any of the `end-chars', from `start', if none of substring or end-chars are found, until the end of the string when `cut-to-end' is true. If `cut-extra' is t, we will cut from start + 1 instead of just `start'. When there is no string matching the input parameters `start' and nil will be returned, otherwise `end-position' and the string are returned.

CUT-BETWEEN (STRING START-CHAR END-CHARS &KEY (START 0) (CUT-EXTRA T) (CUT-TO-END NIL))

If `start-char' is not nil, cut string between `start-char' and any of the `end-chars', from `start'. If `start-char' is nil, cut from `start' until any of the `end-chars' (or sting-end when `cut-to-end' is true). If `cut-extra' is t, we will cut from start + 1 instead of just `start'. When there is no string matching the input parameters `start' and nil will be returned, otherwise `end-position' and the string are returned.

DCC-TYPE-P (STRING TYPE)

Is the `string' actually a representation of the DCC `type'?

GET-DAY-NAME (DAY-NUMBER)

Given a number, such as 1, return the appropriate day name, abbrevated, such as "Tue". Index 0 is Monday.

GET-MONTH-NAME (MONTH-NUMBER)

Index 1 is January.

HBO-TO-DOTTED-QUAD (INTEGER)

Host-byte-order integer to dotted-quad string conversion utility.

HBO-TO-VECTOR-QUAD (INTEGER)

Host-byte-order integer to dotted-quad string conversion utility.

HOST-BYTE-ORDER (STRING)

Convert a string, such as 192.168.1.1, to host-byte-order, such as 3232235777.

INTERN-MESSAGE-SYMBOL (PREFIX NAME)

Intern based on symbol-name to support case-sensitive mlisp

IRC-ERROR-REPLY-P (STRING)

Returns t if `string' is a string-representation of an IRC error reply message, nil otherwise.

LIST-OF-STRINGS-TO-INTEGERS (LIST)

Take a list of strings and return a new list of integers (from parse-integer) on each of the string elements.

MAKE-CTCP-MESSAGE (STRING)

Return a valid IRC CTCP message, as a string, composed by `string'.

MAKE-IRC-MESSAGE (COMMAND &REST ARGUMENTS)

Return a valid IRC message, as a string, composed of the input parameters.

MAKE-TIME-MESSAGE (SECOND MINUTE HOUR DATE MONTH YEAR DAY)

Returns a string composed of the input parameters so that it represents a time message as by the IRC protocol.

MODE-DESC-CHAR (INSTANCE)

@arg[extid]{A @class{extid}} @return[sytemid]{puri:uri or nil} Returns the System ID part of this External ID.

MODE-DESC-CLASS (INSTANCE)

@arg[extid]{A @class{extid}} @return[sytemid]{puri:uri or nil} Returns the System ID part of this External ID.

MODE-DESC-NICK-PARAM-P (INSTANCE)

@arg[extid]{A @class{extid}} @return[sytemid]{puri:uri or nil} Returns the System ID part of this External ID.

MODE-DESC-PARAM-ON-SET-P (INSTANCE)

@arg[extid]{A @class{extid}} @return[sytemid]{puri:uri or nil} Returns the System ID part of this External ID.

MODE-DESC-PARAM-ON-UNSET-P (INSTANCE)

@arg[extid]{A @class{extid}} @return[sytemid]{puri:uri or nil} Returns the System ID part of this External ID.

MODE-DESC-SYMBOL (INSTANCE)

@arg[extid]{A @class{extid}} @return[sytemid]{puri:uri or nil} Returns the System ID part of this External ID.

NICK-PREFIXES-FROM-ISUPPORT (ISUPPORT-ARGUMENTS)

Returns an assoc list associating prefix characters with mode characters.

NUMERIC-REPLY-P (STRING)

Returns t if `string' is a string-representation of an IRC number reply, nil otherwise.

READ-PROTOCOL-LINE (CONNECTION)

Reads a line from the input network stream, returning a character array with the input read.

READ-SEQUENCE-UNTIL (STREAM TARGET LIMIT &KEY NON-BLOCKING)

Reads data from `stream' into `target' until the subsequence `limit' is reached or `target' is not large enough to hold the data.

RETURN-ARGUMENTS (STRING &KEY (START 0))

Assuming `string' is a valid IRC message this function returns the arguments part of the message as a list. Returns nil if the arguments part is not present.

RETURN-COMMAND (STRING &KEY (START 0))

Assuming `string' is a valid IRC message this function returns the command part of the message. Returns nil if the command part is not present.

RETURN-HOST (STRING &KEY (START 0))

Assuming `string' is a valid IRC message this function returns the host part of the message. Returns nil if the host part is not present.

RETURN-SOURCE (STRING &KEY (START 0))

Assuming `string' is a valid IRC message this function returns the source part of the message. Returns nil if the source part is not present.

RETURN-TRAILING-ARGUMENT (STRING &KEY (START 0))

Assuming `string' is a valid IRC message this function returns the trailing-argument part of the message. Returns nil if the trailing-argument part is not present.

RETURN-USER (STRING &KEY (START 0))

Assuming `string' is a valid IRC message this function returns the user part of the message. Returns nil if the user part is not present.

START-PROCESS (FUNCTION NAME)

Internal helper for the DEPRECATED function START-BACKGROUND-MESSAGE-HANDLER and therefore DEPRECATED itself.

TOKENIZE-STRING (STRING &KEY (DELIMITERS '( )))

Split string into a list, splitting on `delimiters' and removing any empty subsequences.

Undocumented

CANONICALIZE-NICKNAME (CONNECTION NICKNAME)

COMBINE-ARGUMENTS-AND-TRAILING (STRING &KEY (START 0))

COPY-MODE-DESCRIPTION (INSTANCE)

CREATE-DCC-MESSAGE (STRING)

DEFINE-CTCP-MESSAGE (CTCP-COMMAND)

DEFINE-DCC-CTCP-MESSAGE (CTCP-COMMAND)

DEFINE-IRC-MESSAGE (COMMAND)

DO-MASK-MATCH (MASK HOSTNAME MASK-CONSUMED HOST-CONSUMED)

EXTERNAL-FORMAT-FIXUP (FORMAT)

MAKE-MODE-DESCRIPTION (&KEY ((CHAR DUM0) NIL) ((SYMBOL DUM1) NIL) ((PARAM-ON-SET-P DUM2) NIL) ((PARAM-ON-UNSET-P DUM3) NIL) ((NICK-PARAM-P DUM4) NIL) ((CLASS DUM5) 'SINGLE-VALUE-MODE))

MATCHES-OFFER-BY-TOKEN-P (OFFER TOKEN)

MATCHES-OFFER-BY-USER-P (OFFER USER)

SETFMODE-DESC-CHAR (NEW-VALUE INSTANCE)

SETFMODE-DESC-CLASS (NEW-VALUE INSTANCE)

SETFMODE-DESC-NICK-PARAM-P (NEW-VALUE INSTANCE)

SETFMODE-DESC-PARAM-ON-SET-P (NEW-VALUE INSTANCE)

SETFMODE-DESC-PARAM-ON-UNSET-P (NEW-VALUE INSTANCE)

SETFMODE-DESC-SYMBOL (NEW-VALUE INSTANCE)

MODE-DESCRIPTION-P (OBJECT)

OFFER-MATCHES-MESSAGE-P (OFFER MESSAGE-NICK MESSAGE-TYPE MESSAGE-TOKEN)

PARSE-ISUPPORT-MULTIVALUE-ARGUMENT (ARGUMENT)

PARSE-ISUPPORT-PREFIX-ARGUMENT (PREFIX)

READ-BYTE-NO-HANG

SUBSTRING (STRING START &OPTIONAL END)

TRY-DECODE-LINE (LINE EXTERNAL-FORMATS)

MACRO

Public

DESTRUCTURING-ARGUMENTS (LAMBDA-LIST MESSAGE &BODY BODY)

Destructures the `arguments' slot in `message' according to `lambda-list' and binds them in `body'. The lambda list syntax is as follows: wholevar::= &whole var reqvars::= var* optvars::= [&optional {var | (var [init-form [supplied-p-parameter]])}* ] restvar::= [&rest var] reqtrailingvars::= [&req var*] lambda-list::= (wholevar reqvars optvars restvar reqtrailingvars) With the exception of &req (which is new) and &rest, all lambda list keywords are analogous to a destructuring lambda list (see clhs 3.4.5). If &req is specified, these values are consumed off the end of the list before processing any preceeding &optional or &rest keywords. For any variable, the `:ignored' keyword can be passed instead, indicating the binding should be ignored in the `body'.

Private

Undocumented

CREATE-CTCP-MESSAGE-CLASSES (CLASS-LIST)

CREATE-IRC-MESSAGE-CLASSES (CLASS-LIST)

DO-PROPERTY-LIST ((PROP VAL LIST) &BODY BODY)

DYNFOUND-FUNCALL ((SYMBOL-NAME &OPTIONAL PACKAGE) &REST PARAMETERS)

GENERATE-MASKMODE-HOOKS (LISTMSG-CLASS ENDMSG-CLASS TMP-SYMBOL MODE-SYMBOL)

GENERIC-FUNCTION

Public

ADD-MODE (TARGET MODE-NAME MODE)

Add the mode-holding object `mode-value' to `target' under the access key `mode-name'. If mode-value is a subtype of irc-mode, it is added as-is. Otherwise, a mode-object will be generated from the

CTCP-CHAT-INITIATE (CONNECTION NICKNAME &KEY PASSIVE)

Initiate a DCC chat session with `nickname' associated with `connection'. If `passive' is non-NIL, the remote is requested to serve as a DCC host. Otherwise, the local system will serve as a DCC host. The latter may be a problem for firewalled or NATted hosts.

DCC-MESSAGE-EVENT (CONNECTION MESSAGE)

Upon receipt of an IRC message from the connection's stream, irc-message-event will be called with the message.

DCC-REQUEST-ACCEPT (MESSAGE)

DCC-REQUEST-CANCEL (CONNECTION TOKEN)

DCC-REQUEST-REJECT (MESSAGE &OPTIONAL REASON)

GET-MODE (TARGET MODE)

Get the value associated with `mode' for `target' or `nil' if no mode available.

HAS-MODE-P (TARGET MODE)

Return a generalised boolean indicating if `target' has a mode `mode' associated with it.

HAS-MODE-VALUE-P (TARGET MODE VALUE &KEY KEY TEST (KEY #'IDENTITY) (TEST #'EQUAL))

Return a generalised boolean indicating if `target' has a mode `mode' associated with the value `value' for given a `key' transform and `test' test.

IRC-MESSAGE-EVENT (CONNECTION MESSAGE)

Upon receipt of an IRC message from the connection's stream, irc-message-event will be called with the message.

REMOVE-MODE (TARGET MODE-NAME)

Remove the mode-holding object in the `mode-name' key from `target'.

SET-MODE (TARGET MODE &OPTIONAL PARAMETER)

Set the mode designated by the `mode' keyword to a value passed in `parameter' or T if `parameter' is absent.

UNSET-MODE (TARGET MODE &OPTIONAL PARAMETER)

Sets value of the mode designated by the `mode' keyword to nil. If the mode holds a list of values `parameter' is used to indicate which element to remove.

Undocumented

ADD-CHANNEL (CONNECTION CHANNEL)

ADD-DEFAULT-HOOKS (CONNECTION)

ADD-HOOK (CONNECTION CLASS HOOK)

ADD-USER (OBJECT USER)

ADMIN (CONNECTION &OPTIONAL TARGET)

AWAY (CONNECTION MESSAGE)

BAN (CONNECTION CHANNEL MASK)

CHANGE-NICKNAME (CONNECTION USER NEW-NICKNAME)

CLIENT-LOG (CONNECTION MESSAGE &OPTIONAL PREFIX)

DCC-CLOSE (CONNECTION)

DEOP (CONNECTION CHANNEL NICKNAME)

DEVOICE (CONNECTION CHANNEL NICKNAME)

DIE (CONNECTION)

ERROR- (CONNECTION MESSAGE)

FIND-CHANNEL (CONNECTION CHANNEL)

FIND-USER (CONNECTION NICKNAME)

GET-HOOKS (CONNECTION CLASS)

INFO (CONNECTION &OPTIONAL TARGET)

INVITE (CONNECTION USER CHANNEL)

ISON (CONNECTION USER)

JOIN (CONNECTION CHANNEL &KEY PASSWORD)

KICK (CONNECTION CHANNEL USER &OPTIONAL COMMENT)

KILL (CONNECTION USER &OPTIONAL COMMENT)

LIST- (CONNECTION &OPTIONAL CHANNEL TARGET)

LUSERS (CONNECTION &OPTIONAL MASK TARGET)

MODE (CONNECTION NICKNAME MODE)

MOTD- (CONNECTION &OPTIONAL TARGET)

NAMES (CONNECTION CHANNEL &OPTIONAL TARGET)

NICK (CONNECTION NEW-NICKNAME)

NOTICE (CONNECTION TARGET MESSAGE)

OP (CONNECTION CHANNEL NICKNAME)

OPER (CONNECTION NAME PASSWORD)

PART (CONNECTION CHANNEL &OPTIONAL REASON)

PART-ALL (CONNECTION &OPTIONAL REASON)

PASS (CONNECTION PASSWORD)

PING (CONNECTION SERVER)

PONG (CONNECTION SERVER &OPTIONAL SERVER2)

PRIVMSG (CONNECTION CHANNEL MESSAGE)

QUIT (CONNECTION &OPTIONAL MESSAGE)

READ-MESSAGE (CONNECTION)

READ-MESSAGE-LOOP (CONNECTION)

REHASH (CONNECTION)

REMOVE-ALL-CHANNELS (CONNECTION)

REMOVE-ALL-HOOKS (CONNECTION)

REMOVE-ALL-USERS (CONNECTION)

REMOVE-CHANNEL (CONNECTION CHANNEL)

REMOVE-HOOK (CONNECTION CLASS HOOK)

REMOVE-HOOKS (CONNECTION CLASS)

REMOVE-USER (OBJECT USER)

RESTART- (CONNECTION)

SELF-MESSAGE-P (MESSAGE)

SERVICE (CONNECTION NICKNAME DISTRIBUTION INFO)

SERVLIST (CONNECTION &OPTIONAL MASK TYPE)

SQUERY (CONNECTION SERVICE-NAME TEXT)

SQUIT (CONNECTION SERVER COMMENT)

STATS (CONNECTION &OPTIONAL QUERY TARGET)

SUMMON (CONNECTION NICKNAME &OPTIONAL TARGET CHANNEL)

TIME- (CONNECTION &OPTIONAL TARGET)

TOPIC- (CONNECTION CHANNEL TOPIC)

TRACE- (CONNECTION &OPTIONAL TARGET)

TRAILING-ARGUMENT (MESSAGE)

UNBAN (CONNECTION CHANNEL MASK)

USER- (CONNECTION USERNAME MODE &OPTIONAL REALNAME)

USER-EQ-ME-P (CONNECTION USER)

USERHOST (CONNECTION NICKNAME)

USERS- (CONNECTION &OPTIONAL TARGET)

VERSION (CONNECTION &OPTIONAL TARGET)

VOICE (CONNECTION CHANNEL USER)

WALLOPS (CONNECTION MESSAGE)

WHO (CONNECTION &OPTIONAL MASK O)

WHOIS (CONNECTION MASK &OPTIONAL TARGET)

WHOWAS (CONNECTION NICKNAME &OPTIONAL COUNT TARGET)

Private

DCC-ADD-OFFER (CONNECTION NICKNAME TYPE TOKEN &OPTIONAL PROTO)

Adds an offer to the list off outstanding offers list for `connection'.

DCC-REMOVE-OFFER (CONNECTION TOKEN)

Remove an offer from the list of outstanding offers for `connection'.

DEFAULT-HOOK (MESSAGE)

Minimum action to be executed upon reception of the IRC message to keep the connection, channel and user objects in sync.

MODE-DESCRIPTION (CONNECTION TARGET MODE-NAME)

Retrieve a `mode-description' structure for the given `mode-name' keyword.

MODE-NAME-FROM-CHAR (CONNECTION TARGET MODE-CHAR)

Map the mode character used in the MODE message to a symbol used internally to describe the mode given a `target'.

Undocumented

ACTION (CONNECTION TARGET MESSAGE)

APPLY-TO-HOOKS (MESSAGE)

CASE-MAP-NAME (CONNECTION)

CLIENT-RAW-LOG (CONNECTION MESSAGE)

CONNECTEDP (CONNECTION)

CTCP (CONNECTION TARGET MESSAGE)

CTCP-REPLY (CONNECTION TARGET MESSAGE)

CTCP-REPLY-P (MESSAGE)

CTCP-REQUEST-P (MESSAGE)

DCC-GET-OFFER (CONNECTION TOKEN)

DCC-GET-OFFERS (CONNECTION NICKNAME &KEY TYPE TOKEN)

FIND-CTCP-MESSAGE-CLASS (TYPE)

FIND-DCC-CTCP-MESSAGE-CLASS (TYPE)

FIND-DCC-MESSAGE-CLASS (TYPE)

FIND-IRC-MESSAGE-CLASS (TYPE)

FIND-OR-MAKE-USER (CONNECTION NICKNAME &KEY USERNAME HOSTNAME REALNAME (USERNAME ) (HOSTNAME ) (REALNAME ))

HAS-VALUE-P (MODE-OBJECT VALUE &KEY KEY TEST)

IRC-STRING-DOWNCASE (MAP-NAME STRING &KEY START END (START 0))

MAKE-MODE (CONNECTION TARGET MODE-ID)

MULTI-JOIN (CONNECTION CHANNELS)

RE-APPLY-CASE-MAPPING (CONNECTION)

READ-IRC-MESSAGE (CONNECTION)

REMOVE-USER-EVERYWHERE (CONNECTION USER)

REMOVE-USERS (CHANNEL)

REPLY-NUMBER (CONDITION)

RESET-MODE-VALUE (MODE-OBJECT)

SEND-DCC-MESSAGE (CONNECTION MESSAGE)

SEND-IRC-MESSAGE (CONNECTION COMMAND &REST ARGUMENTS)

SET-MODE-VALUE (MODE-OBJECT VALUE)

UNSET-MODE-VALUE (MODE-OBJECT VALUE)

SLOT-ACCESSOR

Public

ARGUMENTS (OBJECT)

SETFARGUMENTS (NEW-VALUE OBJECT)

CLIENT-STREAM (OBJECT)

Input from the remote is sent to this stream.

SETFCLIENT-STREAM (NEW-VALUE OBJECT)

Input from the remote is sent to this stream.

CLOSE-ON-MAIN (OBJECT)

Makes sure that the DCC connection is closed as soon as either the IRC connection is actively closed or when a lost connection is detected.

SETFCLOSE-ON-MAIN (NEW-VALUE OBJECT)

Makes sure that the DCC connection is closed as soon as either the IRC connection is actively closed or when a lost connection is detected.

CONNECTION (OBJECT)

SETFCONNECTION (NEW-VALUE OBJECT)

IRC-CONNECTION (OBJECT)

The associated IRC connection used to send CTCP control commands. When this connection is closed/lost, the DCC connection should be terminated too for security reasons.

SETFIRC-CONNECTION (NEW-VALUE OBJECT)

The associated IRC connection used to send CTCP control commands. When this connection is closed/lost, the DCC connection should be terminated too for security reasons.

NETWORK-STREAM (OBJECT)

Stream used to talk binary to the IRC server.

SETFNETWORK-STREAM (NEW-VALUE OBJECT)

Stream used to talk binary to the IRC server.

OUTPUT-STREAM (OBJECT)

Stream used to communicate with the other end of the network pipe.

SETFOUTPUT-STREAM (NEW-VALUE OBJECT)

Stream used to communicate with the other end of the network pipe.

REMOTE-USER (OBJECT)

The user at the other end of this connection. The user at this end can be reached via your normal connection object.

SETFREMOTE-USER (NEW-VALUE OBJECT)

The user at the other end of this connection. The user at this end can be reached via your normal connection object.

USER-COUNT (OBJECT)

May not represent the real number of users in the channel. Rather, the number returned from the LIST command gets stuck in there so the user of this library can use it for searching channels, for instance. If the value is NIL then the slot has not been populated by a LIST command.

SETFUSER-COUNT (NEW-VALUE OBJECT)

May not represent the real number of users in the channel. Rather, the number returned from the LIST command gets stuck in there so the user of this library can use it for searching channels, for instance. If the value is NIL then the slot has not been populated by a LIST command.

Undocumented

CHANNELS (OBJECT)

SETFCHANNELS (NEW-VALUE OBJECT)

COMMAND (OBJECT)

SETFCOMMAND (NEW-VALUE OBJECT)

HOST (OBJECT)

SETFHOST (NEW-VALUE OBJECT)

HOSTNAME (OBJECT)

SETFHOSTNAME (NEW-VALUE OBJECT)

MODES (OBJECT)

SETFMODES (NEW-VALUE OBJECT)

NAME (OBJECT)

SETFNAME (NEW-VALUE OBJECT)

NICKNAME (OBJECT)

SETFNICKNAME (NEW-VALUE OBJECT)

NORMALIZED-NAME (OBJECT)

SETFNORMALIZED-NAME (NEW-VALUE OBJECT)

NORMALIZED-NICKNAME (OBJECT)

SETFNORMALIZED-NICKNAME (NEW-VALUE OBJECT)

PASSWORD (OBJECT)

SETFPASSWORD (NEW-VALUE OBJECT)

RAW-MESSAGE-STRING (OBJECT)

SETFRAW-MESSAGE-STRING (NEW-VALUE OBJECT)

REALNAME (OBJECT)

SETFREALNAME (NEW-VALUE OBJECT)

RECEIVED-TIME (OBJECT)

SETFRECEIVED-TIME (NEW-VALUE OBJECT)

SERVER-NAME (OBJECT)

SETFSERVER-NAME (NEW-VALUE OBJECT)

SERVER-PORT (OBJECT)

SETFSERVER-PORT (NEW-VALUE OBJECT)

SOURCE (OBJECT)

SETFSOURCE (NEW-VALUE OBJECT)

TOPIC (OBJECT)

SETFTOPIC (NEW-VALUE OBJECT)

USER (OBJECT)

SETFUSER (NEW-VALUE OBJECT)

USERNAME (OBJECT)

SETFUSERNAME (NEW-VALUE OBJECT)

USERS (OBJECT)

SETFUSERS (NEW-VALUE OBJECT)

VISIBILITY (OBJECT)

SETFVISIBILITY (NEW-VALUE OBJECT)

Private

CHANNEL-MODE-DESCRIPTIONS (OBJECT)

Describes the modes an application intends to register with channels.

SETFCHANNEL-MODE-DESCRIPTIONS (NEW-VALUE OBJECT)

Describes the modes an application intends to register with channels.

DCC-CONNECTIONS (OBJECT)

The DCC connections associated with this IRC connection.

SETFDCC-CONNECTIONS (NEW-VALUE OBJECT)

The DCC connections associated with this IRC connection.

DCC-OFFERS (OBJECT)

The DCC offers sent out in association with this connection.

SETFDCC-OFFERS (NEW-VALUE OBJECT)

The DCC offers sent out in association with this connection.

SERVER-CAPABILITIES (OBJECT)

Assoc array for rpl_isupport message; see http://www.irc.org/tech_docs/draft-brocklesby-irc-isupport-03.txt

SETFSERVER-CAPABILITIES (NEW-VALUE OBJECT)

Assoc array for rpl_isupport message; see http://www.irc.org/tech_docs/draft-brocklesby-irc-isupport-03.txt

SOCKET (OBJECT)

Socket used to do the remote client.

SETFSOCKET (NEW-VALUE OBJECT)

Socket used to do the remote client.

USER-MODE-DESCRIPTIONS (OBJECT)

Describes the modes an application intends to register with channels.

SETFUSER-MODE-DESCRIPTIONS (NEW-VALUE OBJECT)

Describes the modes an application intends to register with channels.

VALUE-TYPE (OBJECT)

The framework sets this to `:user' or `:non-user'. Essentially, if it's `:user', the value(s) held must be derived from the user class.

SETFVALUE-TYPE (NEW-VALUE OBJECT)

The framework sets this to `:user' or `:non-user'. Essentially, if it's `:user', the value(s) held must be derived from the user class.

Undocumented

CTCP-COMMAND (OBJECT)

SETFCTCP-COMMAND (NEW-VALUE OBJECT)

HOOKS (OBJECT)

SETFHOOKS (NEW-VALUE OBJECT)

NICK-PREFIXES (OBJECT)

SETFNICK-PREFIXES (NEW-VALUE OBJECT)

VALUE (OBJECT)

SETFVALUE (NEW-VALUE OBJECT)

VARIABLE

Private

*DEFAULT-INCOMING-EXTERNAL-FORMATS*

The external-formats we use to decode incoming messages. This should be a list of external format specs that flexi-streams accepts. The external formats are tried in order, until one decodes the message without encoding errors. Note that the last external format should be a single-byte one with most or even all valid codepoints (such as latin-1). :eol-style will always be overridden to be :crlf as required by the IRC protocol.

*DEFAULT-OUTGOING-EXTERNAL-FORMAT*

The external-format we use to encode outgoing messages. This should be an external format spec that flexi-streams accepts. :eol-style will always be overridden to be :crlf as required by the IRC protocol.

*UNKNOWN-REPLY-HOOK*

A function of two arguments, called with the related irc connection object and the protocol message string upon detection of an unmappable response code. The function should return a valid IRC-MESSAGE class or NIL. The parameter can be NIL to disable the hook.

Undocumented

*CHAR-TO-USER-MODES-MAP*

*CTCP-VERSION*

*DCC-CONNECTIONS*

*DEBUG-P*

*DEBUG-STREAM*

*DEFAULT-CHAR-TO-CHANNEL-MODES-MAP*

*DEFAULT-IRC-SERVER*

*DEFAULT-IRC-SERVER-PORT*

*DEFAULT-ISUPPORT-CHANMODES*

*DEFAULT-ISUPPORT-PREFIX*

*DEFAULT-ISUPPORT-VALUES*

*DEFAULT-NICKNAME*

*DEFAULT-QUIT-MESSAGE*

*DOWNLOAD-DIRECTORY*

*DOWNLOAD-FILE*

*DOWNLOAD-HOST*

*PASSIVE-OFFER-SEQUENCE-TOKEN*

*PROCESS-COUNT*

*REPLY-NAMES*

*VERSION*

CLASS

Public

DCC-CHAT-CONNECTION

DCC-CONNECTION

Abstract superclass of all types of DCC connections. This class isn't meant to be instanciated. The different DCC subprotocols differ widely in the way they transmit their data, meaning there are relatively few methods which can be defined for this class. They do share a number of properties though.

DCC-MESSAGE

Undocumented

BOOLEAN-VALUE-MODE

CHANNEL

CONNECTION (OBJECT)

CTCP-ACTION-MESSAGE

CTCP-DCC-CHAT-REQUEST-MESSAGE

CTCP-DCC-SEND-REQUEST-MESSAGE

CTCP-FINGER-MESSAGE

CTCP-PING-MESSAGE

CTCP-SOURCE-MESSAGE

CTCP-TIME-MESSAGE

CTCP-USERINFO-MESSAGE

CTCP-VERSION-MESSAGE

DCC-CTCP-ACTION-MESSAGE

DCC-CTCP-DCC-CHAT-REQUEST-MESSAGE

DCC-CTCP-DCC-SEND-REQUEST-MESSAGE

DCC-CTCP-FINGER-MESSAGE

DCC-CTCP-PING-MESSAGE

DCC-CTCP-SOURCE-MESSAGE

DCC-CTCP-TIME-MESSAGE

DCC-CTCP-USERINFO-MESSAGE

DCC-CTCP-VERSION-MESSAGE

DCC-PRIVMSG-MESSAGE

IRC-ERR_ALREADYREGISTERED-MESSAGE

IRC-ERR_BADCHANMASK-MESSAGE

IRC-ERR_BADCHANNAME-MESSAGE

IRC-ERR_BADCHANNELKEY-MESSAGE

IRC-ERR_BADMASK-MESSAGE

IRC-ERR_BANLISTFULL-MESSAGE

IRC-ERR_BANNEDFROMCHAN-MESSAGE

IRC-ERR_BANNICKCHANGE-MESSAGE

IRC-ERR_BLOCKING_NOTID-MESSAGE

IRC-ERR_CANNOTSENDTOCHAN-MESSAGE

IRC-ERR_CANTKILLSERVER-MESSAGE

IRC-ERR_CHANNELISFULL-MESSAGE

IRC-ERR_CHANOPRIVSNEEDED-MESSAGE

IRC-ERR_ERRONEUSNICKNAME-MESSAGE

IRC-ERR_FILEERROR-MESSAGE

IRC-ERR_GHOSTEDCLIENT-MESSAGE

IRC-ERR_INVITEONLYCHAN-MESSAGE

IRC-ERR_KEYSET-MESSAGE

IRC-ERR_LAST_ERR_MSG-MESSAGE

IRC-ERR_MAXFORWARDING-MESSAGE

IRC-ERR_MAXMAPNODES-MESSAGE

IRC-ERR_NEED_UMODE-MESSAGE

IRC-ERR_NEEDMOREPARAMS-MESSAGE

IRC-ERR_NICKCOLLISION-MESSAGE

IRC-ERR_NICKNAMEINUSE-MESSAGE

IRC-ERR_NO_OP_SPLIT-MESSAGE

IRC-ERR_NOADMININFO-MESSAGE

IRC-ERR_NOCHANMODES-MESSAGE

IRC-ERR_NOFORWARDING-MESSAGE

IRC-ERR_NOLOGIN-MESSAGE

IRC-ERR_NOMOTD-MESSAGE

IRC-ERR_NONICKNAMEGIVEN-MESSAGE

IRC-ERR_NOOPERHOST-MESSAGE

IRC-ERR_NOORIGIN-MESSAGE

IRC-ERR_NOPERMFORHOST-MESSAGE

IRC-ERR_NOPRIVILEGES-MESSAGE

IRC-ERR_NORECIPIENT-MESSAGE

IRC-ERR_NOSUCHCHANNEL-MESSAGE

IRC-ERR_NOSUCHNICK-MESSAGE

IRC-ERR_NOSUCHSERVER-MESSAGE

IRC-ERR_NOSUCHSERVICE-MESSAGE

IRC-ERR_NOTEXTTOSEND-MESSAGE

IRC-ERR_NOTONCHANNEL-MESSAGE

IRC-ERR_NOTOPLEVEL-MESSAGE

IRC-ERR_NOTREGISTERED-MESSAGE

IRC-ERR_NOUNIDENTIFIED-MESSAGE

IRC-ERR_PASSWDMISMATCH-MESSAGE

IRC-ERR_RESTRICTED-MESSAGE

IRC-ERR_SERVICES_OFFLINE-MESSAGE

IRC-ERR_SITELISTFULL-MESSAGE

IRC-ERR_SOURCENINVITE-MESSAGE

IRC-ERR_SUMMONDISABLED-MESSAGE

IRC-ERR_TARGETNINVITE-MESSAGE

IRC-ERR_THROTTLED-MESSAGE

IRC-ERR_TOOMANYCHANNELS-MESSAGE

IRC-ERR_TOOMANYTARGETS-MESSAGE

IRC-ERR_UMODEUNKNOWNFLAG-MESSAGE

IRC-ERR_UNAVAILRESOURCE-MESSAGE

IRC-ERR_UNIQOPPRIVSNEEDED-MESSAGE

IRC-ERR_UNKNOWNCOMMAND-MESSAGE

IRC-ERR_UNKNOWNMODE-MESSAGE

IRC-ERR_USERDISABLED-MESSAGE

IRC-ERR_USERNOTINCHANNEL-MESSAGE

IRC-ERR_USERONCHANNEL-MESSAGE

IRC-ERR_USERSDONTMATCH-MESSAGE

IRC-ERR_WASNOSUCHNICK-MESSAGE

IRC-ERR_WILDTOPLEVEL-MESSAGE

IRC-ERR_YOUREBANNEDCREEP-MESSAGE

IRC-ERR_YOUWILLBEBANNED-MESSAGE

IRC-ERROR-MESSAGE

IRC-INVITE-MESSAGE

IRC-JOIN-MESSAGE

IRC-KICK-MESSAGE

IRC-KILL-MESSAGE

IRC-MESSAGE

IRC-MODE

IRC-MODE-MESSAGE

IRC-NICK-MESSAGE

IRC-NOTICE-MESSAGE

IRC-PART-MESSAGE

IRC-PING-MESSAGE

IRC-PONG-MESSAGE

IRC-PRIVMSG-MESSAGE

IRC-QUIT-MESSAGE

IRC-RPL_ADMINEMAIL-MESSAGE

IRC-RPL_ADMINLOC1-MESSAGE

IRC-RPL_ADMINLOC2-MESSAGE

IRC-RPL_ADMINME-MESSAGE

IRC-RPL_AWAY-MESSAGE

IRC-RPL_BANLIST-MESSAGE

IRC-RPL_BOUNCE-MESSAGE

IRC-RPL_CHANNEL_URL-MESSAGE

IRC-RPL_CHANNELMODEIS-MESSAGE

IRC-RPL_CLIENTCAPAB-MESSAGE

IRC-RPL_CLOSEEND-MESSAGE

IRC-RPL_CLOSING-MESSAGE

IRC-RPL_CREATED-MESSAGE

IRC-RPL_CREATIONTIME-MESSAGE

IRC-RPL_ENDMODE-MESSAGE

IRC-RPL_ENDOFBANLIST-MESSAGE

IRC-RPL_ENDOFEXCEPTLIST-MESSAGE

IRC-RPL_ENDOFINFO-MESSAGE

IRC-RPL_ENDOFINVITELIST-MESSAGE

IRC-RPL_ENDOFMAP-MESSAGE

IRC-RPL_ENDOFMOTD-MESSAGE

IRC-RPL_ENDOFNAMES-MESSAGE

IRC-RPL_ENDOFSERVICES-MESSAGE

IRC-RPL_ENDOFSTATS-MESSAGE

IRC-RPL_ENDOFUSERS-MESSAGE

IRC-RPL_ENDOFWHO-MESSAGE

IRC-RPL_ENDOFWHOIS-MESSAGE

IRC-RPL_ENDOFWHOWAS-MESSAGE

IRC-RPL_ENDOPTIONS-MESSAGE

IRC-RPL_ENDSITELIST-MESSAGE

IRC-RPL_EXCEPTLIST-MESSAGE

IRC-RPL_FORWARD-MESSAGE

IRC-RPL_GLOBALUSERS-MESSAGE

IRC-RPL_HELLO-MESSAGE

IRC-RPL_HIDDENHOST-MESSAGE

IRC-RPL_INFO-MESSAGE

IRC-RPL_INFOSTART-MESSAGE

IRC-RPL_INVITELIST-MESSAGE

IRC-RPL_INVITING-MESSAGE

IRC-RPL_ISON-MESSAGE

IRC-RPL_ISUPPORT-MESSAGE

IRC-RPL_KILLDONE-MESSAGE

IRC-RPL_LIST-MESSAGE

IRC-RPL_LISTEND-MESSAGE

IRC-RPL_LISTSTART-MESSAGE

IRC-RPL_LOCALUSERS-MESSAGE

IRC-RPL_LUSERCHANNELS-MESSAGE

IRC-RPL_LUSERCLIENT-MESSAGE

IRC-RPL_LUSERME-MESSAGE

IRC-RPL_LUSEROP-MESSAGE

IRC-RPL_LUSERUNKNOWN-MESSAGE

IRC-RPL_MAP-MESSAGE

IRC-RPL_MAPEND-MESSAGE

IRC-RPL_MAPSTART-MESSAGE

IRC-RPL_MESSAGE-MESSAGE

IRC-RPL_MODE-MESSAGE

IRC-RPL_MOTD-MESSAGE

IRC-RPL_MOTDSTART-MESSAGE

IRC-RPL_MYINFO-MESSAGE

IRC-RPL_MYPORTIS-MESSAGE

IRC-RPL_NAMREPLY-MESSAGE

IRC-RPL_NOAWAY-MESSAGE

IRC-RPL_NOIDEA-MESSAGE

IRC-RPL_NONE-MESSAGE

IRC-RPL_NOSERVICEHOST-MESSAGE

IRC-RPL_NOTOPIC-MESSAGE

IRC-RPL_NOUSERS-MESSAGE

IRC-RPL_OPTION-MESSAGE

IRC-RPL_REHASHING-MESSAGE

IRC-RPL_SAVENICK-MESSAGE

IRC-RPL_SECURECONNECTION-MESSAGE

IRC-RPL_SERVICE-MESSAGE

IRC-RPL_SERVICEINFO-MESSAGE

IRC-RPL_SERVLIST-MESSAGE

IRC-RPL_SERVLISTEND-MESSAGE

IRC-RPL_SITELIST-MESSAGE

IRC-RPL_STATSBLINE-MESSAGE

IRC-RPL_STATSCLINE-MESSAGE

IRC-RPL_STATSCOMMANDS-MESSAGE

IRC-RPL_STATSDEBUG-MESSAGE

IRC-RPL_STATSDLINE-MESSAGE

IRC-RPL_STATSHLINE-MESSAGE

IRC-RPL_STATSILINE-MESSAGE

IRC-RPL_STATSKLINE-MESSAGE

IRC-RPL_STATSLINKINFO-MESSAGE

IRC-RPL_STATSLLINE-MESSAGE

IRC-RPL_STATSNLINE-MESSAGE

IRC-RPL_STATSONLINE-MESSAGE

IRC-RPL_STATSPING-MESSAGE

IRC-RPL_STATSQLINE-MESSAGE

IRC-RPL_STATSSLINE-MESSAGE

IRC-RPL_STATSULINE-MESSAGE

IRC-RPL_STATSUPTIME-MESSAGE

IRC-RPL_STATSVLINE-MESSAGE

IRC-RPL_STATSYLINE-MESSAGE

IRC-RPL_SUMMONING-MESSAGE

IRC-RPL_TIME-MESSAGE

IRC-RPL_TOPIC-MESSAGE

IRC-RPL_TOPICWHOTIME-MESSAGE

IRC-RPL_TRACECLASS-MESSAGE

IRC-RPL_TRACECONNECTING-MESSAGE

IRC-RPL_TRACEEND-MESSAGE

IRC-RPL_TRACEHANDSHAKE-MESSAGE

IRC-RPL_TRACELOG-MESSAGE

IRC-RPL_TRACENEWTYPE-MESSAGE

IRC-RPL_TRACEOPERATOR-MESSAGE

IRC-RPL_TRACERECONNECT-MESSAGE

IRC-RPL_TRACESERVER-MESSAGE

IRC-RPL_TRACESERVICE-MESSAGE

IRC-RPL_TRACEUNKNOWN-MESSAGE

IRC-RPL_TRACEUSER-MESSAGE

IRC-RPL_TRYAGAIN-MESSAGE

IRC-RPL_UMODEIS-MESSAGE

IRC-RPL_UNAWAY-MESSAGE

IRC-RPL_UNIQOPIS-MESSAGE

IRC-RPL_USERHOST-MESSAGE

IRC-RPL_USERS-MESSAGE

IRC-RPL_USERSSTART-MESSAGE

IRC-RPL_VERSION-MESSAGE

IRC-RPL_WELCOME-MESSAGE

IRC-RPL_WHOISCHANNELS-MESSAGE

IRC-RPL_WHOISCHANOP-MESSAGE

IRC-RPL_WHOISIDENTIFIED-MESSAGE

IRC-RPL_WHOISIDLE-MESSAGE

IRC-RPL_WHOISOPERATOR-MESSAGE

IRC-RPL_WHOISOPERPRIVS-MESSAGE

IRC-RPL_WHOISREALHOST-MESSAGE

IRC-RPL_WHOISSERVER-MESSAGE

IRC-RPL_WHOISUSER-MESSAGE

IRC-RPL_WHOREPLY-MESSAGE

IRC-RPL_WHOWASUSER-MESSAGE

IRC-RPL_YOUREOPER-MESSAGE

IRC-RPL_YOURHOST-MESSAGE

IRC-RPL_YOURID-MESSAGE

IRC-RPL_YOURSERVICE-MESSAGE

IRC-TOPIC-MESSAGE

LIST-VALUE-MODE

SINGLE-VALUE-MODE

USER (OBJECT)

Private

Undocumented

CTCP-MIXIN

IRC-ERROR-REPLY

MODE-DESCRIPTION (CONNECTION TARGET MODE-NAME)

STANDARD-CTCP-MESSAGE

STANDARD-DCC-CTCP-MESSAGE

CONDITION

Public

Undocumented

NO-SUCH-REPLY

CONSTANT

Private

Undocumented

+SOH+