source: tags/0.8.0/variable.lisp

Last change on this file was 175, checked in by Erik Huelsmann, 18 years ago

Create tag for 0.8.0 release.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision URL
File size: 9.7 KB
Line 
1;;;; $Id: variable.lisp 175 2007-01-06 22:06:27Z ehuelsmann $
2;;;; $URL: tags/0.8.0/variable.lisp $
3
4;;;; See the LICENSE file for licensing information.
5
6(in-package :irc)
7
8(defvar *debug-p* nil)
9(defvar *debug-stream* t)
10
11(defconstant +soh+ #.(code-char 1))
12
13(defparameter *version* "0.8.0")
14(defparameter *ctcp-version*
15  (format nil "CL IRC library, cl-irc:~A:~A ~A"
16          *version* (machine-type) (machine-version)))
17
18(defparameter *download-host* "ftp://common-lisp.net/")
19(defparameter *download-directory* "/pub/project/cl-irc/")
20(defparameter *download-file*
21  (format nil "cl-irc-~A.tar.gz" *version*))
22
23(defvar *default-nickname* "cl-irc")
24(defvar *default-irc-server* "irc.freenode.net")
25(defvar *default-irc-server-port* 6667)
26(defvar *default-quit-message*
27  "Common Lisp IRC library - http://common-lisp.net/project/cl-irc")
28
29(defparameter *default-isupport-CHANMODES*
30  "beI,kO,l,aimnpqsrt")
31(defparameter *default-isupport-PREFIX*
32  "(ov)@+")
33
34(defparameter *default-isupport-values*
35  `(("CASEMAPPING" "rfc1459")
36    ("CHANMODES" ,*default-isupport-CHANMODES*)
37    ("CHANNELLEN" "200")
38    ("CHANTYPES" "#&")
39    ("MODES" "3")
40    ("NICKLEN" "9")
41    ("PREFIX" ,*default-isupport-PREFIX*)
42    ("TARGMAX")))
43
44(defparameter *default-outgoing-external-format* '(:utf-8)
45  "The external-format we use to encode outgoing messages. This
46  should be an external format spec that flexi-streams accepts.
47
48  :eol-style will always be overridden to be :crlf as required
49  by the IRC protocol.")
50
51(defparameter *default-incoming-external-formats* '((:utf-8 :eol-style :crlf)
52                                                    (:latin1 :eol-style :crlf))
53  "The external-formats we use to decode incoming messages. This should
54  be a list of external format specs that flexi-streams accepts.
55
56  The external formats are tried in order, until one decodes the
57  message without encoding errors. Note that the last external
58  format should be a single-byte one with most or even all valid
59  codepoints (such as latin-1).
60
61  :eol-style will always be overridden to be :crlf as required by the
62  IRC protocol.")
63
64(defvar *dcc-connections* nil)
65
66(defstruct (mode-description (:conc-name "MODE-DESC-"))
67  (char nil)
68  (symbol nil)
69  (param-on-set-p nil)
70  (param-on-unset-p nil)
71  (nick-param-p nil)
72  (class 'single-value-mode))
73
74
75(defparameter *default-char-to-channel-modes-map*
76  '(
77    ;; these modes don't take parameters
78    (#\a . :anonymous)
79    (#\i . :invite-only)
80    (#\m . :moderated)
81    (#\n . :no-external)
82    (#\q . :quiet)
83    (#\s . :secret)
84    (#\r . :reop)
85    (#\t . :op-only-topic)
86
87    ;; these modes take a user parameter
88    (#\O . :channel-creator)
89    (#\o . :channel-operator)
90    (#\v . :voice)
91
92    ;; these modes take a parameter other than a user
93    (#\l . :limit)
94    (#\k . :key)
95    (#\b . :ban)
96    (#\e . :except)
97    (#\I . :invite)))
98
99(defparameter *char-to-user-modes-map*
100  '((#\a . :away)
101    (#\i . :invisible)
102    (#\w . :receive-wallops)
103    (#\s . :server-notices)
104    (#\r . :restricted-connection)
105    (#\o . :remote-operator)
106    (#\O . :local-operator)))
107
108(defparameter *reply-names*
109  '((1 :rpl_welcome)
110    (2 :rpl_yourhost)
111    (3 :rpl_created)
112    (4 :rpl_myinfo)
113    (5 :rpl_isupport) ;; The RFC was wrong to define RPL_BOUNCE here,
114     ;; see http://www.irc.org/tech_docs/draft-brocklesby-irc-isupport-03.txt
115    (10 :rpl_bounce)
116    (15 :rpl_map) ; From ircd 2.11 source
117    (17 :rpl_mapend) ; From ircd 2.11 source
118    (18 :rpl_mapstart) ; From ircd 2.11 source
119    (20 :rpl_hello) ; From ircd 2.11 source
120    (42 :rpl_yourid) ; From ircd 2.11 source
121    (43 :rpl_savenick) ; From ircd 2.11 source
122    (200 :rpl_tracelink)
123    (201 :rpl_traceconnecting)
124    (202 :rpl_tracehandshake)
125    (203 :rpl_traceunknown)
126    (204 :rpl_traceoperator)
127    (205 :rpl_traceuser)
128    (206 :rpl_traceserver)
129    (207 :rpl_traceservice)
130    (208 :rpl_tracenewtype)
131    (209 :rpl_traceclass)
132    (210 :rpl_tracereconnect)
133    (211 :rpl_statslinkinfo)
134    (212 :rpl_statscommands)
135    (213 :rpl_statscline)
136    (214 :rpl_statsnline)
137    (215 :rpl_statsiline)
138    (216 :rpl_statskline)
139    (217 :rpl_statsqline)
140    (218 :rpl_statsyline)
141    (219 :rpl_endofstats)
142    (221 :rpl_umodeis)
143    (225 :rpl_statsdline) ; Seen in dancer ircd source
144    (227 :rpl_option) ; Seen in dancer ircd source
145    (228 :rpl_endoptions) ; Seen in dancer ircd source
146    (231 :rpl_serviceinfo)
147    (232 :rpl_endofservices)
148    (233 :rpl_service)
149    (234 :rpl_servlist)
150    (235 :rpl_servlistend)
151    (240 :rpl_statsvline)
152    (241 :rpl_statslline)
153    (242 :rpl_statsuptime)
154    (243 :rpl_statsonline)
155    (244 :rpl_statshline)
156    (245 :rpl_statssline) ; The RFC says 244 but I believe that was a typo.
157    (246 :rpl_statsping)
158    (247 :rpl_statsbline)
159    (248 :rpl_statsuline) ; Seen in dancer ircd source
160    (249 :rpl_statsdebug) ; Seen in dancer ircd source
161    (250 :rpl_statsdline)
162    (251 :rpl_luserclient)
163    (252 :rpl_luserop)
164    (253 :rpl_luserunknown)
165    (254 :rpl_luserchannels)
166    (255 :rpl_luserme)
167    (256 :rpl_adminme)
168    (257 :rpl_adminloc1)
169    (258 :rpl_adminloc2)
170    (259 :rpl_adminemail)
171    (261 :rpl_tracelog)
172    (262 :rpl_traceend)
173    (263 :rpl_tryagain)
174    (265 :rpl_localusers) ; Seen in dancer ircd source
175    (266 :rpl_globalusers) ; Seen in dancer ircd source
176    (268 :rpl_mode) ; Seen in dancer ircd source
177    (269 :rpl_endmode) ; Seen in dancer ircd source
178    (271 :rpl_sitelist) ; Seen in dancer ircd source
179    (272 :rpl_endsitelist) ; Seen in dancer ircd source
180    (290 :rpl_clientcapab) ; Seen in dancer ircd source
181    (292 :rpl_noservicehost)
182    (300 :rpl_none)
183    (301 :rpl_away)
184    (302 :rpl_userhost)
185    (303 :rpl_ison)
186    (304 :rpl_away)
187    (305 :rpl_unaway)
188    (306 :rpl_noaway)
189    (311 :rpl_whoisuser)
190    (312 :rpl_whoisserver)
191    (313 :rpl_whoisoperator)
192    (314 :rpl_whowasuser)
193    (315 :rpl_endofwho)
194    (316 :rpl_whoischanop)
195    (317 :rpl_whoisidle)
196    (318 :rpl_endofwhois)
197    (319 :rpl_whoischannels)
198    (320 :rpl_whoisidentified) ; Seen in dancer ircd source
199    (321 :rpl_liststart)
200    (322 :rpl_list)
201    (323 :rpl_listend)
202    (324 :rpl_channelmodeis)
203    (325 :rpl_uniqopis)
204    (326 :rpl_whoisoperprivs) ; Seen in dancer ircd source
205    (327 :rpl_whoisrealhost) ; Seen in dancer ircd source
206    (329 :rpl_creationtime) ; Seen in dancer ircd source
207    (331 :rpl_notopic)
208    (332 :rpl_topic)
209    (333 :rpl_topicwhotime) ; Seen in dancer ircd source
210    (341 :rpl_inviting)
211    (342 :rpl_summoning)
212    (346 :rpl_invitelist)
213    (347 :rpl_endofinvitelist)
214    (348 :rpl_exceptlist)
215    (349 :rpl_endofexceptlist)
216    (351 :rpl_version)
217    (352 :rpl_whoreply)
218    (353 :rpl_namreply)
219    (361 :rpl_killdone)
220    (362 :rpl_closing)
221    (363 :rpl_closeend)
222    (366 :rpl_endofnames)
223    (364 :rpl_links)
224    (365 :rpl_endoflinks)
225    (367 :rpl_banlist)
226    (368 :rpl_endofbanlist)
227    (369 :rpl_endofwhowas)
228    (371 :rpl_info)
229    (372 :rpl_motd)
230    (373 :rpl_infostart)
231    (374 :rpl_endofinfo)
232    (375 :rpl_motdstart)
233    (376 :rpl_endofmotd)
234    (377 :rpl_map) ; Seen in dancer ircd source
235    (378 :rpl_endofmap) ; Seen in dancer ircd source
236    (379 :rpl_forward) ; Seen in dancer ircd source
237    (381 :rpl_youreoper)
238    (382 :rpl_rehashing)
239    (383 :rpl_yourservice)
240    (384 :rpl_myportis)
241    (391 :rpl_time)
242    (392 :rpl_usersstart)
243    (393 :rpl_users)
244    (394 :rpl_endofusers)
245    (395 :rpl_nousers)
246    (399 :rpl_message) ; Seen in dancer ircd source
247    (401 :err_nosuchnick)
248    (402 :err_nosuchserver)
249    (403 :err_nosuchchannel)
250    (404 :err_cannotsendtochan)
251    (405 :err_toomanychannels)
252    (406 :err_wasnosuchnick)
253    (407 :err_toomanytargets)
254    (408 :err_nosuchservice)
255    (409 :err_noorigin)
256    (410 :err_services_offline) ; Seen in dancer ircd source
257    (411 :err_norecipient)
258    (412 :err_notexttosend)
259    (413 :err_notoplevel)
260    (414 :err_wildtoplevel)
261    (415 :err_badmask)
262    (421 :err_unknowncommand)
263    (422 :err_nomotd)
264    (423 :err_noadmininfo)
265    (424 :err_fileerror)
266    (431 :err_nonicknamegiven)
267    (432 :err_erroneusnickname)
268    (433 :err_nicknameinuse)
269    (436 :err_nickcollision)
270    (437 :err_unavailresource)
271    (438 :err_bannickchange) ; Seen in dancer ircd source
272    (441 :err_usernotinchannel)
273    (442 :err_notonchannel)
274    (443 :err_useronchannel)
275    (444 :err_nologin)
276    (445 :err_summondisabled)
277    (446 :err_userdisabled)
278    (447 :err_targetninvite) ; Seen in dancer ircd source
279    (448 :err_sourceninvite) ; Seen in dancer ircd source
280    (451 :err_notregistered)
281    (461 :err_needmoreparams)
282    (462 :err_alreadyregistered)
283    (463 :err_nopermforhost)
284    (464 :err_passwdmismatch)
285    (465 :err_yourebannedcreep)
286    (466 :err_youwillbebanned)
287    (467 :err_keyset)
288    (471 :err_channelisfull)
289    (472 :err_unknownmode)
290    (473 :err_inviteonlychan)
291    (474 :err_bannedfromchan)
292    (475 :err_badchannelkey)
293    (476 :err_badchanmask)
294    (477 :err_nochanmodes)
295    (478 :err_banlistfull)
296    (479 :err_badchanname) ; Seen in dancer ircd source
297    (480 :err_throttled) ; Seen in dancer ircd source
298    (481 :err_noprivileges)
299    (482 :err_chanoprivsneeded)
300    (483 :err_cantkillserver)
301    (484 :err_restricted)
302    (485 :err_uniqopprivsneeded)
303    (486 :err_restricted) ; Seen in dancer ircd source
304    (487 :err_no_op_split) ; Seen in dancer ircd source
305    (488 :err_need_umode) ; Seen in dancer ircd source
306    (491 :err_nooperhost)
307    (501 :err_umodeunknownflag)
308    (502 :err_usersdontmatch)
309    (503 :err_ghostedclient) ; Seen in dancer ircd source
310    (505 :err_blocking_notid) ; Seen in dancer ircd source
311    (511 :err_sitelistfull) ; Seen in dancer ircd source
312    (512 :err_maxmapnodes) ; Seen in dancer ircd source
313    (513 :err_maxforwarding) ; Seen in dancer ircd source
314    (514 :err_noforwarding) ; Seen in dancer ircd source
315    (515 :err_nounidentified) ; Seen in dancer ircd source
316    (516 :err_last_err_msg))) ; Seen in dancer ircd source
317
Note: See TracBrowser for help on using the repository browser.