cerberus 0.7.6 → 0.7.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (70) hide show
  1. data/Changelog.txt +21 -1
  2. data/Rakefile +2 -2
  3. data/lib/cerberus/cli.rb +1 -1
  4. data/lib/cerberus/constants.rb +1 -1
  5. data/lib/cerberus/manager.rb +5 -5
  6. data/lib/cerberus/publisher/base.rb +1 -1
  7. data/lib/cerberus/publisher/irc.rb +8 -13
  8. data/lib/cerberus/publisher/mail.rb +1 -0
  9. data/lib/cerberus/scm/git.rb +1 -1
  10. data/lib/vendor/addressable/CHANGELOG +88 -0
  11. data/lib/vendor/addressable/LICENSE +20 -0
  12. data/lib/vendor/addressable/README +50 -0
  13. data/lib/vendor/addressable/Rakefile +74 -0
  14. data/lib/vendor/addressable/addressable.gemspec +30 -0
  15. data/lib/vendor/addressable/lib/addressable/idna.rb +4871 -0
  16. data/lib/vendor/addressable/lib/addressable/template.rb +1049 -0
  17. data/lib/vendor/addressable/lib/addressable/uri.rb +2078 -0
  18. data/lib/vendor/addressable/lib/addressable/version.rb +36 -0
  19. data/lib/vendor/addressable/spec/addressable/idna_spec.rb +194 -0
  20. data/lib/vendor/addressable/spec/addressable/template_spec.rb +2152 -0
  21. data/lib/vendor/addressable/spec/addressable/uri_spec.rb +3914 -0
  22. data/lib/vendor/addressable/spec/data/rfc3986.txt +3419 -0
  23. data/lib/vendor/addressable/tasks/clobber.rake +2 -0
  24. data/lib/vendor/addressable/tasks/gem.rake +68 -0
  25. data/lib/vendor/addressable/tasks/git.rake +40 -0
  26. data/lib/vendor/addressable/tasks/metrics.rake +22 -0
  27. data/lib/vendor/addressable/tasks/rdoc.rake +29 -0
  28. data/lib/vendor/addressable/tasks/rubyforge.rake +89 -0
  29. data/lib/vendor/addressable/tasks/spec.rake +47 -0
  30. data/lib/vendor/addressable/website/index.html +110 -0
  31. data/lib/vendor/shout-bot/TODO +2 -0
  32. data/lib/vendor/shout-bot/lib/shout-bot.rb +76 -0
  33. data/lib/vendor/shout-bot/shout-bot.gemspec +13 -0
  34. data/lib/vendor/tinder/CHANGELOG.txt +39 -0
  35. data/lib/vendor/tinder/Manifest.txt +10 -0
  36. data/lib/vendor/tinder/README.txt +48 -0
  37. data/lib/vendor/tinder/Rakefile +45 -0
  38. data/lib/vendor/tinder/VERSION +1 -0
  39. data/lib/vendor/tinder/init.rb +1 -0
  40. data/lib/vendor/tinder/lib/tinder.rb +12 -0
  41. data/lib/vendor/tinder/lib/tinder/campfire.rb +75 -0
  42. data/lib/vendor/tinder/lib/tinder/connection.rb +74 -0
  43. data/lib/vendor/tinder/lib/tinder/multipart.rb +63 -0
  44. data/lib/vendor/tinder/lib/tinder/room.rb +225 -0
  45. data/lib/vendor/tinder/site/index.html +101 -0
  46. data/lib/vendor/tinder/site/stylesheets/style.css +77 -0
  47. data/lib/vendor/tinder/spec/fixtures/rooms.json +18 -0
  48. data/lib/vendor/tinder/spec/fixtures/rooms/room80749.json +21 -0
  49. data/lib/vendor/tinder/spec/fixtures/rooms/room80751.json +21 -0
  50. data/lib/vendor/tinder/spec/fixtures/rooms/show.json +21 -0
  51. data/lib/vendor/tinder/spec/fixtures/users/me.json +11 -0
  52. data/lib/vendor/tinder/spec/spec.opts +2 -0
  53. data/lib/vendor/tinder/spec/spec_helper.rb +12 -0
  54. data/lib/vendor/tinder/spec/tinder/campfire_spec.rb +53 -0
  55. data/lib/vendor/tinder/spec/tinder/connection_spec.rb +29 -0
  56. data/lib/vendor/tinder/spec/tinder/room_spec.rb +98 -0
  57. data/lib/vendor/tinder/tinder.gemspec +79 -0
  58. data/test/functional_test.rb +19 -4
  59. data/test/integration_test.rb +1 -1
  60. data/test/irc_publisher_test.rb +4 -4
  61. data/test/mock/manager.rb +1 -1
  62. metadata +58 -20
  63. data/lib/vendor/irc/README +0 -23
  64. data/lib/vendor/irc/lib/IRC.rb +0 -164
  65. data/lib/vendor/irc/lib/IRCChannel.rb +0 -33
  66. data/lib/vendor/irc/lib/IRCConnection.rb +0 -134
  67. data/lib/vendor/irc/lib/IRCEvent.rb +0 -91
  68. data/lib/vendor/irc/lib/IRCUser.rb +0 -23
  69. data/lib/vendor/irc/lib/IRCUtil.rb +0 -49
  70. data/lib/vendor/irc/lib/eventmap.yml +0 -247
@@ -1,33 +0,0 @@
1
- require "IRCUser"
2
-
3
- # Represents an IRC Channel
4
- class IRCChannel
5
- def initialize(name)
6
- @name = name
7
- @users = Array.new(0)
8
- end
9
- attr_reader :name
10
-
11
- # set the topic on this channel
12
- def topic=(topic)
13
- @topic = topic
14
- end
15
-
16
- # get the topic on this channel
17
- def topic
18
- if @topic
19
- return @topic
20
- end
21
- return "No Topic set"
22
- end
23
-
24
- # add a user to this channel's userlist
25
- def add_user(username)
26
- @users.push(IRCUser.create_user(username))
27
- end
28
-
29
- # returns the current user list for this channel
30
- def users
31
- @users
32
- end
33
- end
@@ -1,134 +0,0 @@
1
-
2
- # Handles connection to IRC Server
3
- class IRCConnection
4
- @@quit = 0
5
- @@readsockets = Array.new(0)
6
- @@output_buffer = Array.new(0)
7
- @@events = Hash.new()
8
- @@last_send = Time.now.to_f
9
- @@message_delay = 0.2 # Default delay to 1 fifth of a second.
10
- # Creates a socket connection and then yields.
11
- def IRCConnection.handle_connection(server, port, nick='ChangeMe', realname='MeToo', options = nil)
12
- @server = server;
13
- @port = port
14
- @nick = nick
15
- @realname = realname
16
- @@options = options
17
- if options.nil?
18
- @@options = Array.new(0)
19
- end
20
- socket = create_tcp_socket(server, port)
21
- add_IO_socket(socket) {|sock|
22
- begin
23
- IRCEvent.new(sock.readline.chomp)
24
- rescue Errno::ECONNRESET
25
- # Catches connection reset by peer, attempts to reconnect
26
- # after sleeping for 10 second.
27
- remove_IO_socket(sock)
28
- sleep 10
29
- handle_connection(@server, @port, @nick, @realname, @@options)
30
- end
31
- }
32
- send_to_server "NICK #{nick}"
33
- send_to_server "USER #{nick} 8 * :#{realname}"
34
- if block_given?
35
- yield
36
- @@socket.close
37
- end
38
- end
39
-
40
- def IRCConnection.create_tcp_socket(server, port)
41
- # Now with SSL Support. Thanks to dominiek@digigen.nl for the idea on this.
42
- tcpsocket = TCPsocket.open(server, port)
43
- if @@options[:use_ssl]
44
- ssl_context = OpenSSL::SSL::SSLContext.new()
45
- ssl_context.verify_mode = OpenSSL::SSL::VERIFY_NONE
46
- @@socket = OpenSSL::SSL::SSLSocket.new(tcpsocket, ssl_context)
47
- @@socket.sync = true
48
- @@socket.connect
49
- else
50
- @@socket = tcpsocket
51
- end
52
-
53
- if block_given?
54
- yield
55
- @@socket.close
56
- return
57
- end
58
- return @@socket
59
- end
60
-
61
- # Sends a line of text to the server
62
- def IRCConnection.send_to_server(line)
63
- @@socket.write(line + "\n")
64
- end
65
-
66
- # Adds data an output buffer. This let's us keep a handle on how
67
- # fast we send things. Yay.
68
- def IRCConnection.output_push(line)
69
- @@output_buffer.push(line)
70
- end
71
-
72
- # This loop monitors all IO_Sockets IRCConnection controls
73
- # (including the IRC socket) and yields events to the IO_Sockets
74
- # event handler.
75
- def IRCConnection.main
76
- while(@@quit == 0)
77
- do_one_loop { |event|
78
- yield event
79
- }
80
- end
81
- end
82
-
83
- # Makes one single loop pass, checking all sockets for data to read,
84
- # and yields the data to the sockets event handler.
85
- def IRCConnection.do_one_loop
86
- read_sockets = select(@@readsockets, nil, nil, 0.1);
87
- if !read_sockets.nil?
88
- read_sockets[0].each {|sock|
89
- if sock.eof? && sock == @@socket
90
- remove_IO_socket(sock)
91
- sleep 10
92
- handle_connection(@server, @port, @nick, @realname)
93
- else
94
- yield @@events[sock.object_id.to_i].call(sock)
95
- end
96
- }
97
- end
98
- if @@output_buffer.length > 0
99
- timer = Time.now.to_f
100
- if (timer > @@last_send + @@message_delay)
101
- message = @@output_buffer.shift();
102
- if !message.nil?
103
- IRCConnection.send_to_server(message);
104
- @@last_send = timer
105
- end
106
- end
107
- end
108
- end
109
-
110
- # Ends connection to the irc server
111
- def IRCConnection.quit
112
- @@quit = 1
113
- end
114
- def IRCConnection.delay=(delay)
115
- @@message_delay = delay.to_f
116
- end
117
- # Retrieves user info from the server
118
- def IRCConnection.get_user_info(user)
119
- IRCConnection.send_to_server("WHOIS #{user}")
120
- end
121
-
122
- # Adds a new socket to the list of sockets to monitor for new data.
123
- def IRCConnection.add_IO_socket(socket, &event_generator)
124
- @@readsockets.push(socket)
125
- @@events[socket.object_id.to_i] = event_generator
126
- end
127
-
128
- def IRCConnection.remove_IO_socket(sock)
129
- sock.close
130
- @@readsockets.delete_if {|item| item == sock }
131
- end
132
- end
133
-
134
-
@@ -1,91 +0,0 @@
1
- require 'yaml'
2
-
3
- # This is a lookup class for IRC event name mapping
4
- class EventLookup
5
- @@lookup = YAML.load_file("#{File.dirname(__FILE__)}/eventmap.yml")
6
-
7
- # returns the event name, given a number
8
- def EventLookup::find_by_number(num)
9
- return @@lookup[num.to_i]
10
- end
11
- end
12
-
13
-
14
- # Handles an IRC generated event.
15
- # Handlers are for the IRC framework to use
16
- # Callbacks are for users to add.
17
- # Both handlers and callbacks can be called for the same event.
18
- class IRCEvent
19
- @@handlers = { 'ping' => lambda {|event| IRCConnection.send_to_server("PONG #{event.message}") } }
20
- @@callbacks = Hash.new()
21
- attr_reader :hostmask, :message, :event_type, :from, :channel, :target, :mode, :stats
22
- def initialize (line)
23
- line.sub!(/^:/, '')
24
- mess_parts = line.split(':', 2);
25
- # mess_parts[0] is server info
26
- # mess_parts[1] is the message that was sent
27
- @message = mess_parts[1]
28
- @stats = mess_parts[0].scan(/[-`\^\{\}\[\]\w.\#\@\+]+/)
29
- if @stats[0].match(/^PING/)
30
- @event_type = 'ping'
31
- elsif @stats[1] && @stats[1].match(/^\d+/)
32
- @event_type = EventLookup::find_by_number(@stats[1]);
33
- @channel = @stats[3]
34
- else
35
- @event_type = @stats[2].downcase if @stats[2]
36
- end
37
-
38
- if @event_type != 'ping'
39
- @from = @stats[0]
40
- @user = IRCUser.create_user(@from)
41
- end
42
- # FIXME: this list would probably be more accurate to exclude commands than to include them
43
- @hostmask = @stats[1] if %W(topic privmsg join).include? @event_type
44
- @channel = @stats[3] if @stats[3] && !@channel
45
- @target = @stats[5] if @stats[5]
46
- @mode = @stats[4] if @stats[4]
47
- if @mode.nil? && @event_type == 'mode'
48
- # Server modes (like +i) are sent in the 'message' part, and not
49
- # the 'stat' part of the message.
50
- @mode = @message
51
- end
52
-
53
- # Unfortunatly, not all messages are created equal. This is our
54
- # special exceptions section
55
- if @event_type == 'join'
56
- @channel = @message
57
- end
58
-
59
- end
60
-
61
- # Adds a callback for the specified irc message.
62
- def IRCEvent.add_callback(message_id, &callback)
63
- @@callbacks[message_id] = callback
64
- end
65
-
66
- # Adds a handler to the handler function hash.
67
- def IRCEvent.add_handler(message_id, proc=nil, &handler)
68
- if block_given?
69
- @@handlers[message_id] = handler
70
- elsif proc
71
- @@handlers[message_id] = proc
72
- end
73
- end
74
-
75
- # Process this event, preforming which ever handler and callback is specified
76
- # for this event.
77
- def process
78
- handled = nil
79
- if @@handlers[@event_type]
80
- @@handlers[@event_type].call(self)
81
- handled = 1
82
- end
83
- if @@callbacks[@event_type]
84
- @@callbacks[@event_type].call(self)
85
- handled = 1
86
- end
87
- if !handled
88
- end
89
- end
90
- end
91
-
@@ -1,23 +0,0 @@
1
- # Represents IRC Users
2
- class IRCUser
3
- @@users = Hash.new()
4
- @modes = Hash.new()
5
-
6
- def IRCUser.create_user(username)
7
- username.sub!(/^[\@\%]/,'')
8
-
9
- if @@users[username]
10
- return @@users[username]
11
- end
12
- @@users[username] = self.new(username)
13
- @@users[username]
14
- end
15
-
16
- attr_reader :username, :mask
17
- attr_writer :mask
18
-
19
- private
20
- def initialize (username)
21
- @username = username
22
- end
23
- end
@@ -1,49 +0,0 @@
1
- #
2
- # IRCUtil is a module that contains utility functions for use with the
3
- # rest of Ruby-IRC. There is nothing required of the user to know or
4
- # even use these functions, but they are useful for certain tasks
5
- # regarding IRC connections.
6
- #
7
-
8
- module IRCUtil
9
- #
10
- # Matches hostmasks against hosts. Returns t/f on success/fail.
11
- #
12
- # A hostmask consists of a simple wildcard that describes a
13
- # host or class of hosts.
14
- #
15
- # f.e., where the host is 'bar.example.com', a host mask
16
- # of '*.example.com' would assert.
17
- #
18
-
19
- def assert_hostmask(host, hostmask)
20
- return !!host.match(quote_regexp_for_mask(hostmask))
21
- end
22
-
23
- module_function :assert_hostmask
24
-
25
- #
26
- # A utility function used by assert_hostmask() to turn hostmasks
27
- # into regular expressions.
28
- #
29
- # Rarely, if ever, should be used by outside code. It's public
30
- # exposure is merely for those who are interested in it's
31
- # functionality.
32
- #
33
-
34
- def quote_regexp_for_mask(hostmask)
35
- # Big thanks to Jesse Williamson for his consultation while writing this.
36
- #
37
- # escape all other regexp specials except for . and *.
38
- # properly escape . and place an unescaped . before *.
39
- # confine the regexp to scan the whole line.
40
- # return the edited hostmask as a string.
41
- hostmask.gsub(/([\[\]\(\)\?\^\$])\\/, '\\1').
42
- gsub(/\./, '\.').
43
- gsub(/\*/, '.*').
44
- sub(/^/, '^').
45
- sub(/$/, '$')
46
- end
47
-
48
- module_function :quote_regexp_for_mask
49
- end
@@ -1,247 +0,0 @@
1
- # 001 ne 1 for the purpose of hash keying apparently.
2
- 001 : welcome
3
- 002 : yourhost
4
- 003 : created
5
- 004 : myinfo
6
- 005 : map # Undernet Extension, Kajetan@Hinner.com, 17/11/98
7
- 006 : mapmore # Undernet Extension, Kajetan@Hinner.com, 17/11/98
8
- 007 : mapend # Undernet Extension, Kajetan@Hinner.com, 17/11/98
9
- 008 : snomask # Undernet Extension, Kajetan@Hinner.com, 17/11/98
10
- 009 : statmemtot # Undernet Extension, Kajetan@Hinner.com, 17/11/98
11
- 010 : statmem # Undernet Extension, Kajetan@Hinner.com, 17/11/98
12
- 200 : tracelink
13
- 201 : traceconnecting
14
- 202 : tracehandshake
15
- 203 : traceunknown
16
- 204 : traceoperator
17
- 205 : traceuser
18
- 206 : traceserver
19
- 208 : tracenewtype
20
- 209 : traceclass
21
- 211 : statslinkinfo
22
- 212 : statscommands
23
- 213 : statscline
24
- 214 : statsnline
25
- 215 : statsiline
26
- 216 : statskline
27
- 217 : statsqline
28
- 218 : statsyline
29
- 219 : endofstats
30
- 220 : statsbline # UnrealIrcd, Hendrik Frenzel
31
- 221 : umodeis
32
- 222 : sqline_nick # UnrealIrcd, Hendrik Frenzel
33
- 223 : statsgline # UnrealIrcd, Hendrik Frenzel
34
- 224 : statstline # UnrealIrcd, Hendrik Frenzel
35
- 225 : statseline # UnrealIrcd, Hendrik Frenzel
36
- 226 : statsnline # UnrealIrcd, Hendrik Frenzel
37
- 227 : statsvline # UnrealIrcd, Hendrik Frenzel
38
- 231 : serviceinfo
39
- 232 : endofservices
40
- 233 : service
41
- 234 : servlist
42
- 235 : servlistend
43
- 241 : statslline
44
- 242 : statsuptime
45
- 243 : statsoline
46
- 244 : statshline
47
- 245 : statssline # Reserved, Kajetan@Hinner.com, 17/10/98
48
- 246 : statstline # Undernet Extension, Kajetan@Hinner.com, 17/10/98
49
- 247 : statsgline # Undernet Extension, Kajetan@Hinner.com, 17/10/98
50
- ### TODO: need numerics to be able to map to multiple strings
51
- ### 247 : statsxline # UnrealIrcd, Hendrik Frenzel
52
- 248 : statsuline # Undernet Extension, Kajetan@Hinner.com, 17/10/98
53
- 249 : statsdebug # Unspecific Extension, Kajetan@Hinner.com, 17/10/98
54
- 250 : luserconns # 1998-03-15 -- tkil
55
- 251 : luserclient
56
- 252 : luserop
57
- 253 : luserunknown
58
- 254 : luserchannels
59
- 255 : luserme
60
- 256 : adminme
61
- 257 : adminloc1
62
- 258 : adminloc2
63
- 259 : adminemail
64
- 261 : tracelog
65
- 262 : endoftrace # 1997-11-24 -- archon
66
- 265 : n_local # 1997-10-16 -- tkil
67
- 266 : n_global # 1997-10-16 -- tkil
68
- 271 : silelist # Undernet Extension, Kajetan@Hinner.com, 17/10/98
69
- 272 : endofsilelist # Undernet Extension, Kajetan@Hinner.com, 17/10/98
70
- 275 : statsdline # Undernet Extension, Kajetan@Hinner.com, 17/10/98
71
- 280 : glist # Undernet Extension, Kajetan@Hinner.com, 17/10/98
72
- 281 : endofglist # Undernet Extension, Kajetan@Hinner.com, 17/10/98
73
- 290 : helphdr # UnrealIrcd, Hendrik Frenzel
74
- 291 : helpop # UnrealIrcd, Hendrik Frenzel
75
- 292 : helptlr # UnrealIrcd, Hendrik Frenzel
76
- 293 : helphlp # UnrealIrcd, Hendrik Frenzel
77
- 294 : helpfwd # UnrealIrcd, Hendrik Frenzel
78
- 295 : helpign # UnrealIrcd, Hendrik Frenzel
79
- 300 : none
80
- 301 : away
81
- 302 : userhost
82
- 303 : ison
83
- 304 : rpl_text # Bahamut IRCD
84
- 305 : unaway
85
- 306 : nowaway
86
- 307 : userip # Undernet Extension, Kajetan@Hinner.com, 17/10/98
87
- 308 : rulesstart # UnrealIrcd, Hendrik Frenzel
88
- 309 : endofrules # UnrealIrcd, Hendrik Frenzel
89
- 310 : whoishelp # (July01-01)Austnet Extension, found by Andypoo <andypoo@secret.com.au>
90
- 311 : whoisuser
91
- 312 : whoisserver
92
- 313 : whoisoperator
93
- 314 : whowasuser
94
- 315 : endofwho
95
- 316 : whoischanop
96
- 317 : whoisidle
97
- 318 : endofwhois
98
- 319 : whoischannels
99
- 320 : whoisvworld # (July01-01)Austnet Extension, found by Andypoo <andypoo@secret.com.au>
100
- 321 : liststart
101
- 322 : list
102
- 323 : listend
103
- 324 : channelmodeis
104
- 329 : channelcreate # 1997-11-24 -- archon
105
- 331 : notopic
106
- 332 : topic
107
- 333 : topicinfo # 1997-11-24 -- archon
108
- 334 : listusage # Undernet Extension, Kajetan@Hinner.com, 17/10/98
109
- 335 : whoisbot # UnrealIrcd, Hendrik Frenzel
110
- 341 : inviting
111
- 342 : summoning
112
- 346 : invitelist # UnrealIrcd, Hendrik Frenzel
113
- 347 : endofinvitelist # UnrealIrcd, Hendrik Frenzel
114
- 348 : exlist # UnrealIrcd, Hendrik Frenzel
115
- 349 : endofexlist # UnrealIrcd, Hendrik Frenzel
116
- 351 : version
117
- 352 : whoreply
118
- 353 : namreply
119
- 354 : whospcrpl # Undernet Extension, Kajetan@Hinner.com, 17/10/98
120
- 361 : killdone
121
- 362 : closing
122
- 363 : closeend
123
- 364 : links
124
- 365 : endoflinks
125
- 366 : endofnames
126
- 367 : banlist
127
- 368 : endofbanlist
128
- 369 : endofwhowas
129
- 371 : info
130
- 372 : motd
131
- 373 : infostart
132
- 374 : endofinfo
133
- 375 : motdstart
134
- 376 : endofmotd
135
- 377 : motd2 # 1997-10-16 -- tkil
136
- 378 : austmotd # (July01-01)Austnet Extension, found by Andypoo <andypoo@secret.com.au>
137
- 379 : whoismodes # UnrealIrcd, Hendrik Frenzel
138
- 381 : youreoper
139
- 382 : rehashing
140
- 383 : youreservice # UnrealIrcd, Hendrik Frenzel
141
- 384 : myportis
142
- 385 : notoperanymore # Unspecific Extension, Kajetan@Hinner.com, 17/10/98
143
- 386 : qlist # UnrealIrcd, Hendrik Frenzel
144
- 387 : endofqlist # UnrealIrcd, Hendrik Frenzel
145
- 388 : alist # UnrealIrcd, Hendrik Frenzel
146
- 389 : endofalist # UnrealIrcd, Hendrik Frenzel
147
- 391 : time
148
- 392 : usersstart
149
- 393 : users
150
- 394 : endofusers
151
- 395 : nousers
152
- 401 : nosuchnick
153
- 402 : nosuchserver
154
- 403 : nosuchchannel
155
- 404 : cannotsendtochan
156
- 405 : toomanychannels
157
- 406 : wasnosuchnick
158
- 407 : toomanytargets
159
- 408 : nosuchservice # UnrealIrcd, Hendrik Frenzel
160
- 409 : noorigin
161
- 411 : norecipient
162
- 412 : notexttosend
163
- 413 : notoplevel
164
- 414 : wildtoplevel
165
- 416 : querytoolong # Undernet Extension, Kajetan@Hinner.com, 17/10/98
166
- 421 : unknowncommand
167
- 422 : nomotd
168
- 423 : noadmininfo
169
- 424 : fileerror
170
- 425 : noopermotd # UnrealIrcd, Hendrik Frenzel
171
- 431 : nonicknamegiven
172
- 432 : erroneusnickname # This iz how its speld in thee RFC.
173
- 433 : nicknameinuse
174
- 434 : norules # UnrealIrcd, Hendrik Frenzel
175
- 435 : serviceconfused # UnrealIrcd, Hendrik Frenzel
176
- 436 : nickcollision
177
- 437 : bannickchange # Undernet Extension, Kajetan@Hinner.com, 17/10/98
178
- 438 : nicktoofast # Undernet Extension, Kajetan@Hinner.com, 17/10/98
179
- 439 : targettoofast # Undernet Extension, Kajetan@Hinner.com, 17/10/98
180
- 440 : servicesdown # Bahamut IRCD
181
- 441 : usernotinchannel
182
- 442 : notonchannel
183
- 443 : useronchannel
184
- 444 : nologin
185
- 445 : summondisabled
186
- 446 : usersdisabled
187
- 447 : nonickchange # UnrealIrcd, Hendrik Frenzel
188
- 451 : notregistered
189
- 455 : hostilename # UnrealIrcd, Hendrik Frenzel
190
- 459 : nohiding # UnrealIrcd, Hendrik Frenzel
191
- 460 : notforhalfops # UnrealIrcd, Hendrik Frenzel
192
- 461 : needmoreparams
193
- 462 : alreadyregistered
194
- 463 : nopermforhost
195
- 464 : passwdmismatch
196
- 465 : yourebannedcreep # I love this one...
197
- 466 : youwillbebanned
198
- 467 : keyset
199
- 468 : invalidusername # Undernet Extension, Kajetan@Hinner.com, 17/10/98
200
- 469 : linkset # UnrealIrcd, Hendrik Frenzel
201
- 470 : linkchannel # UnrealIrcd, Hendrik Frenzel
202
- 471 : channelisfull
203
- 472 : unknownmode
204
- 473 : inviteonlychan
205
- 474 : bannedfromchan
206
- 475 : badchannelkey
207
- 476 : badchanmask
208
- 477 : needreggednick # Bahamut IRCD
209
- 478 : banlistfull # Undernet Extension, Kajetan@Hinner.com, 17/10/98
210
- 479 : secureonlychannel # pircd
211
- ### TODO: see above todo
212
- ### 479 : linkfail # UnrealIrcd, Hendrik Frenzel
213
- 480 : cannotknock # UnrealIrcd, Hendrik Frenzel
214
- 481 : noprivileges
215
- 482 : chanoprivsneeded
216
- 483 : cantkillserver
217
- 484 : ischanservice # Undernet Extension, Kajetan@Hinner.com, 17/10/98
218
- 485 : killdeny # UnrealIrcd, Hendrik Frenzel
219
- 486 : htmdisabled # UnrealIrcd, Hendrik Frenzel
220
- 489 : secureonlychan # UnrealIrcd, Hendrik Frenzel
221
- 491 : nooperhost
222
- 492 : noservicehost
223
- 501 : umodeunknownflag
224
- 502 : usersdontmatch
225
- 511 : silelistfull # Undernet Extension, Kajetan@Hinner.com, 17/10/98
226
- 513 : nosuchgline # Undernet Extension, Kajetan@Hinner.com, 17/10/98
227
- 513 : badping # Undernet Extension, Kajetan@Hinner.com, 17/10/98
228
- 518 : noinvite # UnrealIrcd, Hendrik Frenzel
229
- 519 : admonly # UnrealIrcd, Hendrik Frenzel
230
- 520 : operonly # UnrealIrcd, Hendrik Frenzel
231
- 521 : listsyntax # UnrealIrcd, Hendrik Frenzel
232
- 524 : operspverify # UnrealIrcd, Hendrik Frenzel
233
-
234
- 600 : rpl_logon # Bahamut IRCD
235
- 601 : rpl_logoff # Bahamut IRCD
236
- 602 : rpl_watchoff # UnrealIrcd, Hendrik Frenzel
237
- 603 : rpl_watchstat # UnrealIrcd, Hendrik Frenzel
238
- 604 : rpl_nowon # Bahamut IRCD
239
- 605 : rpl_nowoff # Bahamut IRCD
240
- 606 : rpl_watchlist # UnrealIrcd, Hendrik Frenzel
241
- 607 : rpl_endofwatchlist # UnrealIrcd, Hendrik Frenzel
242
- 610 : mapmore # UnrealIrcd, Hendrik Frenzel
243
- 640 : rpl_dumping # UnrealIrcd, Hendrik Frenzel
244
- 641 : rpl_dumprpl # UnrealIrcd, Hendrik Frenzel
245
- 642 : rpl_eodump # UnrealIrcd, Hendrik Frenzel
246
-
247
- 999 : numericerror # Bahamut IRCD