cerberus 0.7.6 → 0.7.7

Sign up to get free protection for your applications and to get access to all the features.
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