~registry/ngircd/testing

« back to all changes in this revision

Viewing changes to doc/Commands.txt

  • Committer: DNS
  • Date: 2013-08-27 14:48:36 UTC
  • mfrom: (2671.5.8)
  • Revision ID: git-v1:bdb2850b399a7fac6a70fe24bd1f58dbd78cc307
Merge branch 'master' into testing

· Remove Conf_PreventLocalChans and Conf_PreventMLChans, obsolete now
· Remove RPL_HELP_MSG

Fixed conflicts with:
        doc/sample-ngircd.conf.tmpl
        man/ngircd.conf.5.tmpl
        src/ngircd/conf.c
        src/ngircd/irc-channel.c
        src/ngircd/irc-info.c
        src/ngircd/messages.h

Show diffs side-by-side

added added

removed removed

Lines of Context:
97
97
        clients using UTF-8, which should be the default today.
98
98
 
99
99
        References:
100
 
         - <http://ngircd.barton.de/doc/Protocol.txt>
101
 
         - doc/Protocol.txt
 
100
         - IRC+, <http://ngircd.barton.de/doc/Protocol.txt>
 
101
         - IRC+, doc/Protocol.txt
102
102
 
103
103
- NICK
104
 
        NICK <nick>
 
104
        NICK <nickname>
 
105
        NICK <nickname> [<hops>]
 
106
        NICK <nickname> <hops> <username> <host> <servertoken> <usermodes> <realname>
105
107
        .
106
 
        Change your nickname to <nick>.
 
108
        Set or change the <nickname> of a client (first form) and register
 
109
        remote clients (second and third form; servers only).
 
110
 
 
111
        References:
 
112
         - RFC 1459, 4.1.2 "Nick message" (old client and server protocol)
 
113
         - RFC 2812, 3.1.2 "Nick message" (client protocol)
 
114
         - RFC 2813, 4.1.3 "Nick" (server protocol)
107
115
 
108
116
- PASS
 
117
        PASS <password>
109
118
        PASS <password> <version> <flags> [<options>]
110
119
        .
111
 
        Set a connection <password>. This command must be sent before the
112
 
        NICK/USER registration combination.
 
120
        Set a connection <password>. This command must be the first command
 
121
        sent to the server, even before the NICK/USER or SERVER commands.
113
122
        .
114
 
        See doc/Protocol.txt for more info.
 
123
        The first form is used by user sessions or (old) RFC 1459 servers,
 
124
        the second form is used by RFC 2812 or IRC+ compliant servers and
 
125
        enables the server to indicate its version and supported protocol
 
126
        features.
 
127
 
 
128
        References:
 
129
         - RFC 1459, 4.1.1 "Password message" (old client and server protocol)
 
130
         - RFC 2812, 3.1.1 "Password message" (client protocol)
 
131
         - RFC 2813, 4.1.1 "Password message" (server protocol)
 
132
         - IRC+, <http://ngircd.barton.de/doc/Protocol.txt>
 
133
         - IRC+, doc/Protocol.txt
115
134
 
116
135
- PING
117
 
        PING <server1> [<server2>]
118
 
        .
119
 
        Tests the presence of a connection. A PING message results in a PONG
120
 
        reply. If <server2> is specified, the message gets passed on to it.
 
136
        PING <token> [<target>]
 
137
        .
 
138
        Tests the presence of a connection to a client or server.
 
139
        .
 
140
        If no <target> has been given, the local server is used. User clients
 
141
        can only use other servers as <target>, no user clients.
 
142
        .
 
143
        A PING message results in a PONG reply containing the <token>, which
 
144
        can be arbitrary text.
 
145
 
 
146
        Please note:
 
147
        The RFCs state that the <token> parameter is used to specify the
 
148
        origin of the PING command when forwarded in the network, but this
 
149
        is not the case: the sender is specified using the prefix as usual,
 
150
        and the parameter is used to identify the PONG reply in practice.
 
151
 
 
152
        References:
 
153
         - RFC 2812, 3.7.2 "Ping message"
121
154
 
122
155
- PONG
123
 
        PONG <server1> [<server2>]
124
 
        .
125
 
        This command is a reply to the PING command and works in much the
126
 
        same way.
 
156
        PONG <target> [<token>]
 
157
        .
 
158
        Reply to a "PING" command, indicate that the connection is alive.
 
159
        .
 
160
        The <token> is the arbitrary text received in the "PING" command and
 
161
        can be used to identify the correct PONG sent as answer.
 
162
        .
 
163
        When the "PONG" command is received from a user session, the <target>
 
164
        parameter is ignored; otherwise the PONG is forwarded to this client.
 
165
 
 
166
        References:
 
167
         - RFC 2812, 3.7.3 "Pong message"
127
168
 
128
169
- QUIT
129
170
        QUIT [<quit-message>]
130
171
        .
131
 
        End IRC session and disconnect from the server.
132
 
        .
133
 
        If a <quit-message> has been given, it is displayed to all the
134
 
        channels that you are a member of when leaving.
 
172
        Terminate a user session.
 
173
        .
 
174
        When received from a user, the server acknowledges this by sending
 
175
        an "ERROR" message back to the client and terminates the connection.
 
176
        .
 
177
        When a <quit-message> has been given, it is sent to all the channels
 
178
        that the client is a member of when leaving.
 
179
 
 
180
        References:
 
181
         - RFC 2812, 3.1.7 "Quit"
 
182
         - RFC 2813, 4.1.5 "Quit"
135
183
 
136
184
- USER
137
 
        USER <user> <modes> <realname>
138
 
        .
139
 
        This command is used at the beginning of a connection to specify the
140
 
        <user>name, hostname, <realname> and initial user <modes> of the
141
 
        connecting client.
142
 
        .
143
 
        <realname> may contain spaces, and thus must be prefixed with a colon.
 
185
        USER <username> <hostname> <unused> <realname>
 
186
        .
 
187
        Register (and authenticate) a new user session with a short <username>
 
188
        and a human-readable <realname>.
 
189
        .
 
190
        The parameter <hostname> is only used when received by an other server
 
191
        and ignored otherwise; and the parameter <unused> is always ignored.
 
192
        But both parameters are required on each invocation by the protocol
 
193
        and can be set to arbitrary characters/text when not used.
 
194
        .
 
195
        If <username> contains an "@" character, the full <username> is used
 
196
        for authentication, but only the first part up to this character is
 
197
        set as "user name" for this session.
 
198
 
 
199
        References:
 
200
         - RFC 2812, 3.1.3 "User message"
144
201
 
145
202
- WEBIRC
146
 
        See doc/Protocol.txt
 
203
        WEBIRC <password> <username> <hostname> <ip-address>
 
204
        .
 
205
        Allow Web-to-IRC gateway software (for example) to set the correct
 
206
        user name and host name of users instead of their own.
 
207
        .
 
208
        It must be the very first command sent to the server, even before
 
209
        USER and NICK commands!
 
210
        .
 
211
        The <password> must be set in the server configuration file to prevent
 
212
        unauthorized clients to fake their identity; it is an arbitrary string.
 
213
 
 
214
        References:
 
215
         - IRC+, <http://ngircd.barton.de/doc/Protocol.txt>
 
216
         - IRC+, doc/Protocol.txt
147
217
 
148
218
 
149
219
General Commands
157
227
        .
158
228
        If <message> is omitted, the away status is removed.
159
229
 
 
230
        References:
 
231
         - RFC 2812, 4.1 "Away"
 
232
 
160
233
- HELP
161
234
        HELP [<command>]
162
235
        .
173
246
        ngIRCd replies using "NOTICE" commands like ircd 2.10/2.11; other
174
247
        implementations are using numerics 704, 705, and 706.
175
248
 
176
 
 
177
249
- MODE
178
 
        MODE <nickname> <flags> (user)
179
 
        MODE <channel> <flags> [<args>]
180
 
        .
181
 
        The MODE command is dual-purpose. It can be used to set both (user) and
182
 
        <channel> modes.
183
 
        .
184
 
        See doc/Modes.txt for more information.
 
250
        MODE <nickname> [{+|-}<mode>[<mode>] [{+|-}<mode>[<mode>] [...]]]
 
251
        MODE <channel> [{+|-}<mode>[<mode>] [<arg> [<arg> [...]]] [{+|-}<mode>[<mode>] [<arg> [<arg> [...]]] [...]]]
 
252
        .
 
253
        Set and get user and channel modes.
 
254
        .
 
255
        When no mode parameters are given, the currently set user or channel
 
256
        modes are returned. Otherwise the modes are adjusted accordingly
 
257
        and the changes will be reported back to the client.
 
258
        .
 
259
        All user and channel "modes" are indicated by single case-sensitive
 
260
        characters.
 
261
        .
 
262
        Please note that a user can only get and set his own modes, and not
 
263
        all user "levels" are allowed to change all channel modes ...
 
264
        .
 
265
        The mode parameters can become quite complex, especially when dealing
 
266
        with channel modes that require additional arguments:
 
267
        .
 
268
          {+|-}<mode(s}>  -- set or unset one or more modes.
 
269
          +<mode(s)> -<mode(s)>  -- set some modes and unset others.
 
270
          +<modes> <arg1> <arg2>  -- set (at least) two modes with arguments.
 
271
        .
 
272
        Some examples:
 
273
        .
 
274
          MODE nick +i  -- set user to "invisible".
 
275
          MODE #chan +tn  -- set "topic lock" and "no external messages".
 
276
          MODE #chan -t +l 50  -- remove "topic lock", set "user limit" to 50.
 
277
          MODE #chan +ov nick1 nick2  -- set "channel op" and "voice" mode
 
278
                                         to nick1 and nick2 in channel #chan.
 
279
        .
 
280
        A complete list of all modes supported by ngIRCd can be found online
 
281
        here: <http://ngircd.barton.de/doc/Modes.txt>.
 
282
 
 
283
        References:
 
284
         - RFC 2811, 4. "Channel Modes"
 
285
         - RFC 2812, 3.1.5 "User mode message"
 
286
         - RFC 2812, 3.2.3 "Channel mode message"
 
287
         - <http://ngircd.barton.de/doc/Modes.txt>
 
288
         - doc/Modes.txt
185
289
 
186
290
- NOTICE
187
 
        NOTICE <target> <notice>
188
 
        .
189
 
        Send <notice> to <target> (nick or channel).
190
 
        .
191
 
        This command works similarly to PRIVMSG, except automatic replies must
192
 
        never be sent in reply to NOTICE messages.
 
291
        NOTICE <target>[,<target>[,...]] <message>
 
292
        .
 
293
        Send a <message> to a given <target>, which can be a user or a
 
294
        channel, but DON'T report any error.
 
295
        .
 
296
        The "NOTICE" command exactly behaves like the "PRIVMSG" command, but
 
297
        doesn't report any errors it encounters (like an unknown <target>).
 
298
        Please see the help text of the "PRIVMSG" command for a detailed
 
299
        description of the parameters!
 
300
 
 
301
        References:
 
302
         - RFC 2812, 2.3.1 "Message format in Augmented BNF"
 
303
         - RFC 2812, 3.3 "Sending messages"
 
304
         - RFC 2812, 3.3.2 "Notice"
193
305
 
194
306
- PRIVMSG
195
 
        PRIVMSG <target> <message>
196
 
        .
197
 
        Send <message> to <target> (nick or channel).
198
 
        .
199
 
        Common IRC clients use MSG as PRIVMSG alias.
200
 
        (Some clients use "QUERY <nick> [<message>]" to open a private chat.)
 
307
        PRIVMSG <target>[,<target>[,...]] <message>
 
308
        .
 
309
        Send a <message> to a given <target>, which can be a user or a
 
310
        channel, and report all errors.
 
311
        .
 
312
        The <target> must follow one of these syntax variants:
 
313
        .
 
314
         - <nickname>
 
315
         - <channel>
 
316
         - <user>[%<host>]@<server>
 
317
         - <user>%<host>
 
318
         - <nickname>!<user>@<host>
 
319
        .
 
320
        If the <target> is a user, a private message is sent directly to this
 
321
        user; if it resolves to a channel name, a public message is sent
 
322
        to all the members of that channel.
 
323
        .
 
324
        In addition, IRC Ops can use these two forms to specify the <target>:
 
325
        .
 
326
         - #<hostmask>
 
327
         - #<servermask>
 
328
        .
 
329
        The <mask> can contain the wildcard characters "*" and "?", but must
 
330
        contain at least one dot (".") and no wildcard after the last one.
 
331
        Then, the <message> is sent to all users matching this <mask>.
 
332
        .
 
333
        All warnings and errors are reported back to the initiator using
 
334
        numeric status codes, which is the only difference to the "NOTICE"
 
335
        command, which doesn't report back any errors or warnings at all.
 
336
        .
 
337
        Please note that clients often use "MSG" as an alias to PRIVMSG, and
 
338
        a command "QUERY <nick> [<message>]" to initiate private chats. Both
 
339
        are command extensions of the client and never sent to the server.
201
340
 
 
341
        References:
 
342
         - RFC 2812, 2.3.1 "Message format in Augmented BNF"
 
343
         - RFC 2812, 3.3 "Sending messages"
 
344
         - RFC 2812, 3.3.1 "Private messages"
202
345
 
203
346
Status and Informational Commands
204
347
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
336
479
         - RFC 2812, 3.4.6 "Time message"
337
480
 
338
481
- TRACE
339
 
        TRACE [<server>]
340
 
        .
341
 
        Trace a path across the IRC network of the current server, or if given
342
 
        of a specific <server>, in a similar method to traceroute.
 
482
        TRACE [<target>]
 
483
        .
 
484
        Find the route to a specific server and send information about its
 
485
        peers. Each server that processes this command reports back to the
 
486
        sender about it: the replies from pass-through servers form a chain
 
487
        which shows the route to the destination.
 
488
        .
 
489
        <target> can be a server name, the nickname of a client connected to
 
490
        a specific server, or a mask matching a server name in the network.
 
491
        The server of the current connection is used when <target> is omitted.
 
492
 
 
493
        References:
 
494
         - RFC 2812, 3.4.8 "Trace message"
343
495
 
344
496
- USERHOST
345
497
        USERHOST <nickname> [<nickname> [...]]
432
584
         - RFC 2812, 3.2.7 "Invite message"
433
585
 
434
586
- JOIN
435
 
        JOIN <channels> [<channel-keys>]
 
587
        JOIN {<channel>[,<channel>[,...]] [<key>[,<key>[,...]]] | 0}
436
588
        .
437
 
        Makes the client join the <channels> (comma-separated list), specifying
438
 
        the passwords, if needed, in the comma-separated <channel-keys> list.
439
 
        A <channel-key> is only needed, if the <channel> mode "+k" is set.
 
589
        Makes the client join the <channel> (comma-separated list), specifying
 
590
        the channel keys ("passwords"). A <channel-key> is only needed if the
 
591
        <channel> has the mode "+k" set.
440
592
        .
441
593
        If the channel(s) do not exist, then they will be created.
 
594
        .
 
595
        Using "JOIN 0" parts all channels at once.
 
596
 
 
597
        References:
 
598
         - RFC 2812, 3.2.1 "Join message" (client protocol)
 
599
         - RFC 2813, 4.2.1 "Join message" (server protocol)
442
600
 
443
601
- KICK
444
602
        KICK <channel>[,<channel>[,...]] <nickname>[,<nickname>[,...]] [<reason>]
455
613
         - RFC 2812, 3.2.8 "Kick command"
456
614
 
457
615
- LIST
458
 
        LIST [<channels> [<server>]]
459
 
        .
460
 
        List all visible <channels> (comma-seperated list) on the current
461
 
        server.
 
616
        LIST [<channel>[,<channel>[,...]] [<server>]]
 
617
        .
 
618
        List all visible <channels> (comma-separated list).
 
619
        .
462
620
        If <server> is given, the command will be forwarded to <server> for
463
621
        evaluation.
464
622
 
 
623
        References:
 
624
         - RFC 2812, 3.2.6 "List message"
 
625
 
465
626
- PART
466
 
        PART <channels> [<part-message>]
 
627
        PART <channel>[,<channel>[,...]] [<part-message>]
467
628
        .
468
 
        Leave <channels> (comma-separated list), optional with a
469
 
        <part-message>.
 
629
        Leave <channel> (comma-separated list), optionally with sending a
 
630
        <part-message> to all the other channel members.
 
631
 
 
632
        References:
 
633
         - RFC 2812, 3.2.2 "Part message"
470
634
 
471
635
- TOPIC
472
 
        TOPIC <channel> <topic>
473
 
        .
474
 
        Set a <topic> for <channel>.
475
 
        .
476
 
        Only <channel> operators are able to set a <topic>.
 
636
        TOPIC <channel> [<topic>]
 
637
        .
 
638
        Change or view the topic of a channel.
 
639
        .
 
640
        The topic for channel <channel> is returned if there is no <topic>
 
641
        given. If the <topic> parameter is present, the topic for that
 
642
        channel will be changed, if this action is allowed for the user
 
643
        requesting it. If the <topic> parameter is an empty string, the
 
644
        topic for that channel will be removed.
 
645
 
 
646
        References:
 
647
         - RFC 2812, 3.2.4 "Topic message"
477
648
 
478
649
 
479
650
Administrative Commands
480
651
~~~~~~~~~~~~~~~~~~~~~~~
481
652
 
482
653
- CONNECT
483
 
        CONNECT <target server> [<port> [<remote server> [<mypwd> <peerpwd>]]]
484
 
        .
485
 
        Instructs the current server, or <remote server> if specified,
486
 
        to connect to <target server>.
487
 
        .
488
 
        To connect <remote server> you need to have remote oper status.
489
 
        If <port> is omitted, it uses the server port of the configuration.
490
 
        If <mypwd> and <peerpwd> is given, it uses those passwords instead
491
 
        of the ones in the configuration.
 
654
        CONNECT <server> [<port> [<remote-server> [<my-pwd> <peer-pwd>]]]
 
655
        .
 
656
        Instructs the current server, or <remote-server> if specified,
 
657
        to connect to the server named <server>, which must be configured
 
658
        in the server configuration file.
 
659
        .
 
660
        To use this command, the user must be an IRC Operator. To establish
 
661
        a connection on a <remote-server>, you must have remote IRC operator
 
662
        privileges.
 
663
        .
 
664
        If <port>, <my-pwd> and <peer-pwd> are given, these values override
 
665
        the ones specified in the server configuration file.
 
666
 
 
667
        References:
 
668
         - RFC 2812, 3.4.7 "Connect message"
492
669
 
493
670
- DIE
494
671
        DIE
495
672
        .
496
673
        Instructs the server to shut down.
 
674
        .
 
675
        To use this command, the user must be an IRC Operator.
 
676
 
 
677
        References:
 
678
         - RFC 2812, 4.3 "Die message"
497
679
 
498
680
- DISCONNECT
499
 
        DISCONNECT [<remote server>]
500
 
        .
501
 
        Disconnects the current server, or <remote server> if specified.
502
 
        To disconnect a <remote server> you need to have remote oper status.
 
681
        DISCONNECT <server>
 
682
        .
 
683
        Disconnect and disable a locally linked server.
 
684
        .
 
685
        To use this command, the user must be an IRC Operator.
 
686
 
 
687
        References:
 
688
         - This command is not specified in the IRC RFCs, it is an extension
 
689
           of ngIRCd.
503
690
 
504
691
- GLINE
505
 
        GLINE <nick!user@hostmask> <seconds> :<reason>
506
 
        .
507
 
        This command provides timed G-Lines (Network-wide bans).
 
692
        GLINE <nick!user@hostmask> [<timeout> :<reason>]
 
693
        .
 
694
        This command provides timed G-Lines (network-wide bans).
 
695
        .
508
696
        If a client matches a G-Line, it cannot connect to any server on
509
 
        the IRC network. If you put 0 as <seconds>, it makes the G-Line
510
 
        permanent.
511
 
        .
512
 
        To remove a G-Line, type "GLINE <nick!user@hostmask>".
513
 
        To list the G-Lines, type "STATS g".
 
697
        the IRC network for <timeout> seconds. When <timeout> is 0, it make
 
698
        the G-Line permanent.
 
699
        .
 
700
        If no <timeout> and no <reason> is given, the G-Line is removed.
 
701
        .
 
702
        To use this command, the user must be an IRC Operator.
 
703
        .
 
704
        "STATS g" can be used to list all currently active G-Lines.
 
705
 
 
706
        References:
 
707
         - This command is not specified in the IRC RFCs, it is an extension
 
708
           of ngIRCd.
514
709
 
515
710
- KILL
516
711
        KILL <nickname> <reason>
520
715
        .
521
716
        This command is used internally between servers, too, for example
522
717
        to disconnect duplicate <nickname>'s after a "net split".
 
718
        .
 
719
        To use this command, the user must be an IRC Operator.
523
720
 
524
721
        References:
525
722
         - RFC 2812, 3.7.1 "Kill message"
526
723
 
527
724
- KLINE
528
 
        KLINE <nick!user@hostmask> <seconds> :<reason>
529
 
        .
530
 
        This command provides timed K-Lines (Server-local bans).
531
 
        If a client matches a K-Line, it cannot connect to the issued server.
532
 
        If you put 0 as <seconds>, it makes the K-Line permanent.
533
 
        .
534
 
        To remove a K-Line, type "KLINE <nick!user@hostmask>".
535
 
        To list the K-Lines, type "STATS k".
 
725
        KLINE <nick!user@hostmask> [<timeout> :<reason>]
 
726
        .
 
727
        This command provides timed K-Lines (server-local bans).
 
728
        .
 
729
        If a client matches a K-Line, it cannot connect to this server for
 
730
        <timeout> seconds. When <timeout> is 0, it makes the K-Line permanent.
 
731
        .
 
732
        If no <timeout> and no <reason> is given, the K-Line is removed.
 
733
        .
 
734
        To use this command, the user must be an IRC Operator.
 
735
        .
 
736
        "STATS k" can be used to list all currently active K-Lines.
 
737
 
 
738
        References:
 
739
         - This command is not specified in the IRC RFCs, it is an extension
 
740
           of ngIRCd.
536
741
 
537
742
- OPER
538
 
        OPER <user> <password>
539
 
        .
540
 
        Authenticates <user> as an IRC operator on the current server/network.
 
743
        OPER <name> <password>
 
744
        .
 
745
        Authenticates a user named <name> as an IRC operator on the current
 
746
        server/network.
 
747
        .
 
748
        This operator <name> must be configured in the server configuration.
 
749
        .
 
750
        Please note that <name> is NOT related to a nickname at all!
 
751
 
 
752
        References:
 
753
         - RFC 2812, 3.1.4 "Oper message"
541
754
 
542
755
- REHASH
543
756
        REHASH
544
757
        .
545
758
        Causes the server to re-read and re-process its configuration file(s).
 
759
        .
 
760
        While rehashing, no new connections are accepted, but all already
 
761
        established connections stay connected.
 
762
        .
 
763
        To use this command, the user must be an IRC Operator.
 
764
 
 
765
        References:
 
766
         - RFC 2812, 4.2 "Rehash message"
546
767
 
547
768
- RESTART
548
769
        RESTART
549
770
        .
550
771
        Restart the server.
 
772
        .
 
773
        While restarting, all connections are reset and no new connections
 
774
        are accepted.
 
775
        .
 
776
        To use this command, the user must be an IRC Operator.
 
777
 
 
778
        References:
 
779
         - RFC 2812, 4.4 "Restart message"
551
780
 
552
781
- WALLOPS
553
782
        WALLOPS <message>
554
783
        .
555
784
        Sends <message> to all users with user mode "+w".
 
785
        .
 
786
        To use this command, the user must be an IRC Operator.
556
787
 
 
788
        References:
 
789
         - RFC 2812, 4.7 "Operwall message"
557
790
 
558
791
IRC Service Commands
559
792
~~~~~~~~~~~~~~~~~~~~
560
793
 
561
794
- SERVICE
 
795
        SERVICE <name> <reserved1> <distribution> <type> <reserved2> <info>
 
796
        SERVICE <name> <servertoken> <distribution> {<type>|+<modes>} <hops> <info>
 
797
        .
 
798
        Register a new service in the network.
 
799
        .
 
800
        The first form is used by directly linked services and isn't supported
 
801
        by ngIRCd at the moment. The second form announces services connected
 
802
        to remote "pseudo-servers" ("services hubs").
 
803
        .
 
804
        The <distribution> and <type> parameters are ignored by ngIRCd.
 
805
 
 
806
        References:
 
807
         - RFC 2812, 3.1.6 "Service message"
 
808
         - RFC 2813, 4.1.4 "Service message"
562
809
 
563
810
- SERVLIST
564
811
        SERVLIST [<mask> [<type>]]
575
822
         - RFC 2812, 3.5.1 "Servlist message"
576
823
 
577
824
- SQUERY
 
825
        SQUERY <target>[,<target>[,...]] <message>
 
826
        .
 
827
        Send a <message> to a given <target> IRC service, and report all
 
828
        errors.
 
829
        .
 
830
        The "SQUERY" command exactly behaves like the "PRIVMSG" command, but
 
831
        enforces that the <target> of the <message> is an IRC service.
 
832
        Please see the help text of the "PRIVMSG" command for a detailed
 
833
        description of the parameters!
 
834
        .
 
835
        If a user wants to interact with IRC services, he should use "SQUERY"
 
836
        instead of "PRIVMSG" or "NOTICE": only "SQUERY makes sure that no
 
837
        regular user, which uses the nickname of an IRC service, receives
 
838
        the command in error, for example during a "net split"!
 
839
 
 
840
        References:
 
841
         - RFC 2812, 2.3.1 "Message format in Augmented BNF"
 
842
         - RFC 2812, 3.3 "Sending messages"
 
843
         - RFC 2812, 3.3.2 "Notice"
578
844
 
579
845
- SVSNICK
 
846
        SVSNICK <oldnick> <newnick>
 
847
        .
 
848
        Forcefully change foreign user nicknames. This command is allowed
 
849
        for servers only.
 
850
        .
 
851
        The "SVSNICK" command is forwarded to the server to which the user
 
852
        with nickname <oldnick> is connected to, which in turn generates a
 
853
        regular "NICK" command that then is sent to the client, so no special
 
854
        support in the client software is required.
 
855
 
 
856
        References:
 
857
         - ngIRCd GIT commit e3f300d3231f
580
858
 
581
859
 
582
860
Server Protocol Commands
588
866
        CHANINFO is used by servers to inform each other about a channel:
589
867
        its modes, channel key, user limits and its topic.
590
868
        .
591
 
        See doc/Protocol.txt for more information.
 
869
        The CHANINFO command is allowed on server-links only.
 
870
 
 
871
        References:
 
872
         - IRC+, <http://ngircd.barton.de/doc/Protocol.txt>
 
873
         - IRC+, doc/Protocol.txt
592
874
 
593
875
- ERROR
594
876
        ERROR [<message> [<> [...]]]
595
877
        .
596
 
        Return an error message to the server. The first parameter, if given,
597
 
        will be logged by the server, all further parameters are silently
598
 
        ignored.
599
 
        .
600
 
        This command is silently ignored on non-server and non-service links.
 
878
        Inform a client or a server about an error condition. The first 
 
879
        parameter, if given, is logged by the server receiving the message,
 
880
        all other parameters are silently ignored.
 
881
        .
 
882
        This command is silently ignored on non-server and non-service links
 
883
        and shouldn't be used by regular IRC clients.
 
884
        .
 
885
        The ERROR message is also sent before terminating a regular client
 
886
        connection.
 
887
 
 
888
        References:
 
889
         - RFC 2812, 3.7.4 "Error message"
601
890
 
602
891
- METADATA
603
892
        METADATA <target> <key> <value>
606
895
        information of clients, like the hostname, the info text ("real name"),
607
896
        or the user name.
608
897
        .
609
 
        See doc/Protocol.txt for more information.
 
898
        The METADATA command is allowed on server-links only.
 
899
 
 
900
        References:
 
901
         - IRC+, <http://ngircd.barton.de/doc/Protocol.txt>
 
902
         - IRC+, doc/Protocol.txt
610
903
 
611
904
- NJOIN
 
905
        NJOIN <channel> [<mode>]<nick>[,[<mode>]<nick>[,...]]
 
906
        .
 
907
        The NJOIN command is used on server-links to add users with <nick>
 
908
        and <mode> to a <channel> while peering.
 
909
        .
 
910
        The NJOIN command is allowed on server-links only.
 
911
 
 
912
        References:
 
913
         - RFC 2813, 4.2.2 "Njoin message"
612
914
 
613
915
- SERVER
 
916
        SERVER <servername> <info>
 
917
        SERVER <servername> <hopcount> <info>
 
918
        SERVER <servername> <hopcount> <token> <info>
 
919
        .
 
920
        The first form registers the local connection as a new server in the
 
921
        network, the second (RFC 1459) and third (RFC 2812) form announce a
 
922
        new remote server in the network.
 
923
        .
 
924
        The SERVER command is allowed on unregistered or server-links only.
 
925
 
 
926
        References:
 
927
         - RFC 1459, 4.1.4 "Server message"
 
928
         - RFC 2813, 4.1.2 "Server message"
614
929
 
615
930
- SQUIT
616
 
        SQUIT <server>
 
931
        SQUIT <server> <comment>
617
932
        .
618
933
        Disconnects an IRC Server from the network.
 
934
        .
 
935
        This command is used on server-links, but can be used by IRC Operators
 
936
        to forcefully disconnect servers from the network, too.
619
937
 
 
938
        References:
 
939
         - RFC 2812, 3.1.8 "Squit"
 
940
         - RFC 2813, 4.1.6 "Server quit message"
620
941
 
621
942
Dummy Commands
622
943
~~~~~~~~~~~~~~
645
966
         - RFC 2812, 4.6 "Users"
646
967
 
647
968
- GET
 
969
        GET [...]
 
970
        .
 
971
        Fake HTTP GET command. When received, the connection is shut down
 
972
        immediately again to protect against crazy web browsers ...
 
973
 
 
974
        References:
 
975
         - ngIRCd GIT commit 33e8c2480649
648
976
 
649
977
- POST
 
978
        POST [...]
 
979
        .
 
980
        Fake HTTP POST command. When received, the connection is shut down
 
981
        immediately again to protect against crazy web browsers ...
 
982
 
 
983
        References:
 
984
         - ngIRCd GIT commit 33e8c2480649